对于第三方apk预装入系统时如果将apk装入system/app目录下,由于第三方apk带有自己的.so文件,此时会出现apk无法打开的情况。
解决方法:
1:解压apk,将里面的.so文件放入device某个文件夹下,例如我们4.2box的平台:\rk3066box_4.2.2_r1\device\rockchip\rk30sdk\apk目录下新建一个目录realtoplib,在此目录下放入所有需要的.so文件。然后在\rk3066box_4.2.2_r1\device\rockchip\rk30sdk\devices.mk中加入
#########################################################
# Copy proprietary so
#########################################################define all-so-files-under$(patsubst ./%,%, \$(shell cd $(LOCAL_PATH)/$(1) ; \find ./ -maxdepth 1  -name "*.apk" -and -not -name ".*") \)
endefCOPY_APK_TARGET := $(call all-so-files-under,apk/realtoplib)
PRODUCT_COPY_FILES += $(foreach soName, $(COPY_APK_TARGET), \
$(addprefix $(LOCAL_PATH)/apk/realtoplib/, $(soName)):$(addprefix system/lib/, $(soName)))
此去脚本的的意思是遍历目录下的.so文件copy至system/lib下。
这样就可以正常启动apk 了。2:将apk装入data/app目录下,此目录下的apk 相对system/app来说,用户是可以删除的。例如我们4.2box的平台:\rk3066box_4.2.2_r1\device\rockchip\rk30sdk目录下建一个realtopapk目录将需要放入data/app目录下的(也就是可供用户卸载的apk )放入realtopapk目录下同样修改devices.mk
#########################################################
# Copy proprietary apk to system/usr/app
#########################################################
define all-data-files-under
$(patsubst ./%,%, \$(shell cd $(LOCAL_PATH)/$(1) ; \find ./ -maxdepth 1  -name "*.apk" -and -not -name ".*") \)
endefCOPY_APK_TARGET := $(call all-data-files-under,realtopapk)
PRODUCT_COPY_FILES += $(foreach apkName, $(COPY_APK_TARGET), \
$(addprefix $(LOCAL_PATH)/realtopapk/, $(apkName)):$(addprefix system/usr/app/, $(apkName)))
此去脚本的的意思是遍历目录下的.apk文件copy至system/usr/app/下。
然后在\rk3066box_4.2.2_r1\device\rockchip\rk30sdk目录下添加一个脚本文件
例如run_apk.sh
#!/system/bin/shbusybox cp /system/usr/app/AngryBirds.apk data/appbusybox cp /system/usr/app/Skype.apk data/appbusybox cp /system/usr/app/Twitter.apk data/appchmod 777 data/app/AngryBirds.apkchmod 777 data/app/Skype.apkchmod 777 data/app/Twitter.apk
修改devices.mk将此脚本复制到system/bin下
PRODUCT_COPY_FILES += \
device/rockchip/$(TARGET_PRODUCT)/run_apk.sh:system/bin/run_apk.sh
同时修改init.rk30board.rc文件添加启动服务
service run_apk /system/bin/run_apk.shclass mainoneshot
重新编译系统,系统启动后就会安装data/app目录下的apk,用户可自行卸载。

Android 系统预装添加第三方apk到data/app相关推荐

  1. 在Android系统中添加一款新铃声

    想在Android系统中添加铃声,可以通过adb push 的方法,但如果要多次修改系统,每次push进去就显得太费劲了,这里有个简单的方法,就是把铃声编译进android 的system.img文件 ...

  2. 安卓system镜像分区_如何完全备份android系统上的system分区和data分区

    安卓的系统备份在很多场合下可能会用到,下面这个python的脚本,可以用来备份整个的data分区:将所有data分区的文件和目录打包到data.zip,并生成recovery的专用edify脚本到up ...

  3. 关于如何正确地在android项目中添加第三方jar包

                  在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception ...

  4. android 安装第三方app,Android识别预装的第三方App方法实例

    前言 新买一台手机,里面会有很多App,有的属于系统App,不可卸载,有的属于第三方App,厂商会预装一些常用的或者给了他们广告费的App,这些是可以卸载的. 如果要详细划分,系统App还可根据其路径 ...

  5. android系统定制添加分辨率,density设置

    本文基于qcom msm8909 android5.1平台,因为客户需求以及实际使用,主板接入的显示屏有各种尺寸,这样对屏幕的显示造成了极大的影响,因此着手开发了一个设置功能,主要针对屏幕分辨率和de ...

  6. android系统源代码添加新产品的支持

    不同项目共用一个CPU等核心平台,项目外围有些差异,需要共用绝大部分代码,比如我们基于高通msm8937 64位CPU开发3款产品(每款产品定义为一个项目的体现形式),我们用DEVELOP_PROJE ...

  7. 向Android系统中添加模块及产品流程

     添加Android模块  一.基础知识: (1)在Android系统中,编译都是以模块(而不是文件)作为单位的,每个模块都有一个唯一的名称: (2)为了将模块编译到Android系统中,每个模块都需 ...

  8. 飞利浦dicom_如何在飞利浦色相系统中添加第三方智能灯泡

    飞利浦dicom The Philips Hue system was one of the first unified smart bulb systems on the market and re ...

  9. android修改默认遥控器键值,RK3128平台android系统修改添加遥控器键值码值

    本帖最后由 微笑,一路向前 于 2017-1-4 15:34 编辑 最近帮客户定制RK3128平台的固件,涉及到定制新的遥控器,需要添加或修改遥控码值.RK3128平台Android系统修改遥控器码值 ...

最新文章

  1. thymeleaf : input/select/radio回显
  2. Java多线程系列--“基础篇”10之 线程优先级和守护线程
  3. Python 任意中文文本生成词云 最终版本
  4. 深度揭秘“蚂蚁双链通” 1
  5. iptable防火墙流程图
  6. python微框架Bottle(http)
  7. 2018 CodeM初赛B轮:D.神奇盘子
  8. Caffe + Ubuntu 14.04 64bit + CUDA6.5 + 无GPU 配置
  9. RouterOS 端口映射与回流
  10. 【ant项目构建学习点滴】--(3)打包及运行jar文件
  11. 卷积神经网络(CNN)实现手写体识别
  12. Kubernetes crictl管理命令详解
  13. 奥维kml文件制作工具_工具和在线制作中国象棋GIF动图文件
  14. Mac brew更新国内源或重置官方源
  15. C++输入和输出:控制台I/O(键盘和屏幕)及文件I/O详细笔记
  16. 【AVD】【转载翻译】NVDEC_VideoDecoder_API_ProgGuide
  17. 很实用的应用,推荐一下http://static.apk.hiapk.com/html/2012/06/625213.html?module=256info=MQA2ADMA
  18. 作为面试官,我是如何面试嵌入式工程师的?
  19. 【海康威视实习总结收获】
  20. [The Java8 Virtual Machine Specification述]Chapter2

热门文章

  1. 【转】snmpwalk命令常用方法
  2. ORACLE中Like与Instr模糊查询性能大比拼
  3. Unsupported major.minor version (jdk版本错误)解决方案办法
  4. linux安装mpich
  5. SFB 项目经验-45-用培训课件当运维文档,聪明
  6. 基于Fork/Join框架实现对大型浮点数数组排序(归并算法和插入排序算法) 1
  7. 关于 httpUrlConnection 的 setDoOutput 与 setDoInput的区别
  8. 技术简报 2014-1-27
  9. go 时间格式风格详解
  10. ACL限制vlan间的访问