如何预置apk(MTK6589)
[DESCRIPTION]
1, 如何将带源码的 APK 预置进系统?
2, 如何将无源码的APK预置进系统?
3, 如何预置APK使得用户可以卸载,恢复出厂设置时不能恢复?
4, 如何预置APK使得用户可以卸载,并且恢复出厂设置时能够恢复?
[SOLUTION]
一、如何将带源码的APK预置进系统?
1) 在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预置一个名为Test的APK 为例
2) 将 Test APK的Source code 拷贝到 Test 文件夹下,删除 /bin 和 /gen 目录
3) 在 Test 目录下创建一个名为 Android.mk的文件,内容如下:
LOCAL_SRC_FILES := $(call all-subdir-java-files)
4) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)
将 Test 添加到 PRODUCT_PACKAGES 里面。
1) 在 packages/apps 下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例
2) 将 Test.apk 放到 packages/apps/Test 下面
3) 在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下:
# Module name should match apk name to be installed
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
4) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)
将 Test 添加到 PRODUCT_PACKAGES 里面。
注:Google在KK上修改protection Level为System的permission控管机制
如果App使用System Level的permission,需要預置到/system/priv-app底下 (原在/system/app)。
关于获取副SD卡的写入权限的案例,App需要在AndroidManifest.xml宣告WRITE_MEDIA_STORAGE permission获取副卡的写入权限
(Ref: KK/alps/frameworks/base/core/res/AndroidManifest.xml)
已知android.permission.WRITE_MEDIA_STORAGE属于SystemOrSignature level的permission,定义如下:
修改Android.mk,增加LOCAL_PRIVILEGED_MODULE := true,以声明app需要放在/system/priv-app下。
三、如何预置APK使得用户可以卸载,恢复出厂设置时不能恢复?
1) 在 packages/apps 下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例
2) 将 Test.apk 放到 packages/apps/Test 下面;
3) 在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下:
# Module name should match apk name to be installed
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
4) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)
将 Test 添加到 PRODUCT_PACKAGES 里面。
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
四、如何预置APK使得用户可以卸载,并且恢复出厂设置时能够恢复?
方法一:预置apk到system/vendor/operator下面
在packages/apps下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例:
1) 将Test.apk 放到 packages/apps/Test 下面;
2) 在packages/apps/Test下面创建文件 Android.mk,文件内容如下:
# Module name should match apk name to be installed
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
3) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名), 将 Test 添加到 PRODUCT_PACKAGES 里面
方法二:使用MTK_SPECIAL_FACTORY_RESET,再配合.keep_list / .restore_list
如何预置apk(MTK6589)相关推荐
- Android系统(274)---如何预置APK
1, 如何将带源码的 APK 预置进系统? 2, 如何将无源码的APK预置进系统? 3, 如何预置APK使得用户可以卸载,恢复出厂设置时不能恢复? 4, 如何预置APK使得用户可以卸载,并且恢复出厂设 ...
- Android: android 如何预置APK
转自:http://blog.csdn.net/sergeycao/article/details/8198205 一.如何将带源码的APK预置进系统? 1) 在 packages/apps 下面以需 ...
- android预置app可卸载实现,Android 8.1预置apk为可卸载
在MTK Android O1平台预置apk为可卸载时.预置到旧的路径system/vendor/operator/app会编译报错,"You cannot install files to ...
- android 内置apk方法,Android预置Apk方法
因为工作需要,经常要开发和合入系统App,所以在此开篇作为收集和记录Android合入系统应用的方法,以备日后查阅. 一.预置apk方法 Case 1:如何将带源码的APK预置进系统 在 packag ...
- android源码预置apk
本次实践基于android N原生代码,其实没有多大卵用,因为基本每个ROM厂商都有自己的定制方式,但话又说回来,会了总归是好的. 这里我们可以预置包含源码的应用,也可以直接预置第三方apk 增加有源 ...
- Android-如何预置APK使得用户可以卸载,并且恢复出厂设置时能够恢复?
方案: 第一步:把apk编译到/system/preloadapp/ 第二步:在系统启动时将其安装到/data/app/ 第三步:配置各种相关权限 -------------------------- ...
- RK3588S Android预置apk
在/device/rockchip/rk3588/rk3588s_s下面, 将可卸载(卸载后恢复出厂设置可恢复)的apk拷贝到preinstall_del目录下, 将可卸载(卸载后恢复出厂设置不可恢复 ...
- 如何预置Android 手机 APK
一.如何将带源码的APK预置进系统? 1) 在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预置一个名为Test的APK 为例 2) 将 Test APK的Sour ...
- 工作笔记 - Android make文件学习(主要是编译Android apk)
1.MyTest编译到package/apps下(预置带有源码的apk) □在alps/device/qcom/common/base.mk(这里用的是高通机子,其他的系统,如mtk,mk文件的位置视 ...
- 以Tethering.apk为例看APEX的搭建过程
由于系统模块无法像应用软件apk的方式进行更新,在更新系统模块时,往往需要重新烧录整个image才可以完成,所以Android引入的APEX文件格式. 详细概念可参考https://blog.csdn ...
最新文章
- C#中自定义属性的例子
- 人工智能是如何改变IT运维和DevOps的?
- 解决FusionCharts联动的中文乱码.
- 线程安全退出 VS PostMessage,SendMessage的区别
- python脚本:判断字符是否为中文
- 如何才能成为优秀的测试工程师?
- 设计模式(十三): 命令模式
- word图片嵌入式为何只能看到一部分_如何巧妙选择打印Word文档内容?
- sap期初导资产代码_SAP S/4固定资产导入期初科目设置
- linux中grep命令,Linux下grep命令详解
- iOS 让CoreData更简单些
- flex和blazeds_使用BlazeDS和AMF构建Web和桌面应用程序
- 文化袁探索专栏——React Native启动流程
- Google 镜像站IP地址
- 终于有人把 p 值讲明白了!
- 模拟调制—DSB信号及生物电信号特性测量分析实验报告
- Binding几种绑定方式
- 【vue3】 vue3 几款值得推荐的UI组件库
- 项目3-2-----多肉
- matlab计算特征多项式
热门文章
- 横向合计代码 锐浪报表_锐浪报表合并明细网络
- android 远程控制工具,安卓版远程协助软件
- canoco5主成分分析步骤_主成分分析(PCA)统计与MATLAB函数实现
- Ansys APDL的超声换能器的模态分析(更新中)
- 批发零售进销存 批发零售管理软件 批发零售店铺管理软件
- 【逆向JS】调用网易云音乐搜歌功能并爬取评论Python/Java
- pythonlinux安装 pandas_linux pandas安装
- 多个安卓设备投屏到电脑_如何将多个安卓手机投屏到电脑端
- 凯恩帝串口通信怎么设置_北京凯恩帝(KND)-100M数控系统操作经验与技巧
- linux下visual studio code安装cpptools-linux.vsix插件