请选择 进入手机版 | 继续访问电脑版

雨滴科技技术论坛

 找回密码
 立即注册
查看: 55|回复: 0

Android7.0 预置第三方库文件,使其可访问系统库。

[复制链接]

345

主题

1513

帖子

6365

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6365
QQ
扫一扫,手机访问本帖
发表于 2019-8-4 16:58:56 | 显示全部楼层 |阅读模式
问题描述:
在Android7.0 上做软解码功能时,测试Demo必须要内置到system/priv-app才可运行。
直接安装则会出现系统camera库无权限访问的问题。
由于量产时为了日后在线升级维护的方便,软解码的条码服务需要作为第三方APP安装。

解决办法:
将条码头供应商斑马提供的解码库文件内置到系统中。


1,内置so
device/raindi/ap7370/device.mk
  1. diff --git a/device/raindi/ap7370/device.mk b/device/raindi/ap7370/device.mk
  2. index ead8594..f5ddee0 100644
  3. --- a/device/raindi/ap7370/device.mk
  4. +++ b/device/raindi/ap7370/device.mk
  5. @@ -169,6 +171,10 @@ PRODUCT_COPY_FILES += device/raindi/ap7370/audio_policy.conf:$(TARGET_COPY_OUT_V

  6. # android lib
  7. PRODUCT_COPY_FILES += device/raindi/ap7370/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt:mtk
  8. +PRODUCT_COPY_FILES += \
  9. +       device/raindi/ap7370/lib/libIAL.so:system/lib/libIAL.so \
  10. +       device/raindi/ap7370/lib/libSDL.so:system/lib/libSDL.so \
  11. +       device/raindi/ap7370/lib/libbarcodereader44.so:system/lib/libbarcodereader44.so


  12. #Images for LCD test in factory mode
复制代码
2,将system/lib添加到 kWhitelistedDirectories
system/core/libnativeloader/native_loader.cpp
  1. diff --git a/system/core/libnativeloader/native_loader.cpp b/system/core/libnativeloader/native_loader.cpp
  2. index 6484743..723f57d 100644
  3. --- a/system/core/libnativeloader/native_loader.cpp
  4. +++ b/system/core/libnativeloader/native_loader.cpp
  5. @@ -43,7 +43,7 @@ static constexpr const char* kPublicNativeLibrariesVendorConfig = "/vendor/etc/p
  6. // (http://b/27588281) This is a workaround for apps using custom classloaders and calling
  7. // System.load() with an absolute path which is outside of the classloader library search path.
  8. // This list includes all directories app is allowed to access this way.
  9. -static constexpr const char* kWhitelistedDirectories = "/data:/mnt/expand";
  10. +static constexpr const char* kWhitelistedDirectories = "/data:/mnt/expand:/sytem/lib";

  11. static bool is_debuggable() {
  12.    char debuggable[PROP_VALUE_MAX];
复制代码
3,将新加的库添加到 public.libraries.txt
device/raindi/ap7370/public.libraries.txt
  1. diff --git a/device/raindi/ap7370/public.libraries.txt b/device/raindi/ap7370/public.libraries.txt
  2. index 4abad4d..df98dc4 100644
  3. --- a/device/raindi/ap7370/public.libraries.txt
  4. +++ b/device/raindi/ap7370/public.libraries.txt
  5. @@ -1,2 +1,5 @@
  6. libutils.so
  7. +libIAL.so
  8. +libSDL.so
  9. +libbarcodereader44.so
复制代码


参考文章:
https://blog.csdn.net/yang542397/article/details/88103951
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
在线咨询
咨询热线
0755-26787502-8006/8016
扫一扫二维码
直接访问本站

QQ|Archiver|手机版|小黑屋|雨滴科技  

GMT+8, 2019-8-24 05:55 , Processed in 0.068256 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表