制作Android系统App
1. 推至指定目录
如何让一个第三方apk成为系统apk呢?传统的办法是连上adb线,push到系统指定目录下:
$ adb push 'demo.apk' /system/priv-app/
然后reboot安卓终端达到重启,重启后会自动安装第三方apk为系统apk。
$ adb reboot
需要说明的是,如果demo.apk有第三方lib库依赖,需要添加lib下的库文件至/system/lib-64中。否则app运行会报缺少库文件依赖的异常。
$ adb push '/Face/libnative-lib-vcc.so' /system/lib-64
如果你需要卸载系统apk就略微有些麻烦,你需要remove掉这些目录下的文件。而且容易残留碎片。(比如,最容易犯的错是你只删了system/priv-app下的apk文件,却没有去/system/lib-64下删除依赖)。
$ adb rm -rf /system/priv-app/demo.apk
$ adb reboot #需要重启才能生效.
2. 制作系统签名
上述方法因为要频繁reboot,且容易产生大量碎片实在不可取。另一种方法是使第三方apk取得系统签名,就可以像安装/卸载第三方apk一样达到制作系统apk的目标。
这个过程需要得到目标安卓终端的系统源代码编译出来的文件。首先,在Android源代码目录下找到该编译文件:
两个平台签名文件的地址分别为:
android/build/target/product/security/platform.pk8 ;
android/build/target/product/security/platform.x509.pem
需要在Shell终端中,把platform.pk8文件从pkcs8格式私钥转化为pkcs12格式:
$ openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
同理,把platform.x509.pem转化为pkcs12格式:
$ openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey
文件设置私钥名称为androiddebugkey, 然后会弹出设置私钥密码,输入“android”.
key store password:androidkey alias:androiddebugkeykey password: android
利用Linux自带的keytool制作platform.keystore签名文件:
$ keytool -importkeystore -deststorepass android -destkeypass android -destkeystore platform.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
3. Android Studio导入签名文件
首先,保证项目Make Project通过。接着,Build > Generate Signed Apk:
选择.keystore签名文件所在目录,分别输入key store password等参数(同之前Shell终端输入)
然后点击Next按钮,选择v2 Full APK Signature。然后,你的app只要遵循第三方apk安装方式即可!系统apk制作至此步完成。
当然你也可以用adb install和adb uninstall命令来安装指定路径下的apk。
$ adb install 'Face/app-debug.apk' # install参数后接的是apk路径
$ adb uninstall 'com.example.helloworld' # uninstall参数后接的是已安装apk的packageName.
如有任何问题和疑问,欢迎大家关注我的微信公众号:
制作Android系统App相关推荐
- android 监控行为,一种针对Android系统App行为的监控方法
主权项: 1.一种针对Android系统App行为的监控方法,通过安全内核实现方法在Android内核层添加模块,实现对整个Android系统的系统调用的拦截与监控:包括如下步骤:S1.编写内核模块: ...
- 利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示
利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示 原理讲解 ESP8266读取各种传感器数值 传感器数据推送到云端 app inventor 制作app 接收实时数据 ...
- Android系统APP安装流程
更多内容,欢迎关注公众号:tmac_lover 这篇文章介绍一下Android里安装一个apk文件的完整流程,我们以pm install安装一个新的app为例介绍. 1. pm命令 当我们使用 pm ...
- android 系统app指定加载32-bit/64-bit so库
系统app 要求指定使用 32bit的so库,但是android Sudio 编译出来的app,使用 System.loadLibrary() 加载库的时候,硬是要去 加载 64bit的库, 把 /s ...
- 卸载 android 系统app
☆1.下载一键安全root软件,安装后运行,选择获取临时root权限. ☆2.下载系统程序卸载器SystemAppRemover,安装后运行,进入界面后会提示已获得root权限,选择点击右下角Syst ...
- pc版android系统 app,掏空国产App,这国产系统究竟想干啥?
大家好,欢迎来到黑马公社. 就在这几天,整个数码圈子都被华为的鸿蒙系统刷屏了! 别的不说,单就华为对鸿蒙系统的后台应用优化就足以让黑马眼馋. 可惜的是,黑马空有设备却没有通过审核.不得已,鸿蒙系统的这 ...
- 基于单片机的北斗定位无人机救火系统(两种程序:单片机与android系统app程序源码)
功能: 本次设计是一个基于北斗定位的无人机灭火系统,本次设计主要通过北斗系统定位,能够将获取到的位置信息通过无线通讯技术传输到无人机上,进行火灾救援.本次设计需求主要为一下几点: 北斗定位获取火灾位置 ...
- android系统app打开蓝牙+设置可见性
BluetoothAdapter blue = BluetoothAdapter.getDefaultAdapter(); 这两个方法足矣满足你的需求(需要system权限): blue.enable ...
- QT应用编程: 编写低功耗BLE蓝牙调试助手(Android系统APP)
一.环境介绍 QT版本: 5.12.6 编译环境: win10 64位 目标系统: Android 完整工程源码下载地址(包含APK文件): https://download.csdn.net/do ...
最新文章
- 平面设计中的网格系统pdf_全面掌握版式设计中的网格系统
- 那些年我用过的SAP IDE
- springboot项目启动优化
- ROW_NUMBER、RANK、DENSE_RANK的用法
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.19 使用bcp实施批量导出...
- CF1580C Train Maintenance(分块)
- React中父子组件之间的通信
- 【CSS3】将截断的文字可选的显示出来
- springmvc java中转发_springmvc实现转发和重定向
- php获取当前页面select的值,关于JS获取select的值
- python文本编辑器下载_海龟编辑器官方下载|海龟编辑器(Python编辑器)下载 v1.3.4 官方版 - 绿点软件站...
- B 站 Up 主自制秃头生成器,圆你秃头梦想可好?
- mongodb 高可用分布式原理 ---------搭建高可用mongo集群前需要温习的知识-火
- 调试技巧之调用堆栈 - Call stack
- 伪随机生成器具体实现——ANSI X9.17
- 如何做好谷牛期权短线交易
- 【转载】快速入门(完整):Python实例100个(基于最新Python3.7版本)
- 关于Mysql出现1045错误的方法
- 混沌工程之ChaosBlade(一):建立混沌工程思想
- 普吉岛泡酒店浮潜攻略——我住过的普吉岛的8个酒店
热门文章
- 双月数据生成及其常见算法(一)
- tab标签页-选项卡后边+后端所返数据的数量
- 计算机文化基础——计算机基础知识
- FiveThirtyEight Comic Characters Dataset(五分之八漫画人物数据集)
- hbase和es在搜索场景的应用
- revit模型怎么在手机上看_e建筑手机版下载-e建筑(轻松查看CAD图纸和BIM模型)1.2.4 官方苹果版-东坡下载...
- 空字符串和len()函数
- 【绿色版软件】出现应用程序无法启动,并行配置不正确
- 人工智能(AI)和机器学习——未来的发展趋势
- 从多个Word文档中批量取值,整理到Excel表中。