adb将Apk内置到系统中(system/priv-app)
有时候我们在Android 系统内置自己的应用,在测试时,Android Studio 默认的安装方式是将我们开发的应用作为普通应用安装到系统中的。本文提供一种方式,在开发过程中,将apk内置到系统中,而不需要系统源代码。
adb 将apk内置到系统的方法很多人已经提到过了,但是大多都过时了,或者叙述不详细。下面的方式在我在 Android 7.1.1 测试通过
内置Apk的特权
Android 内置 apk 有如下特权:
1. 不能被普通用户卸载
2. 具有比普通应用更高的权限,可以使用受限的系统 API,
3. 结合某些 Manifest.xml
声明,可以实现更多效果,例如系统级保活
4. 可以声明 priority > 0 的 组件
(其他特权有待发现..)
准备apk
点击Android Studio 的 Build
-> Build Apk(s)
,生成我们测试用的 apk。
如果你的 apk 带有 .so库,需要同时准备对应目标系统平台的 .so。我的测试机是 arm64-v8a
,则我需要的 .so库 在工程的 app/build/intermediates/cmake/debug/obj/arm64-v8a/
下。
清理旧的安装
之前测试过程中,你可能已经安装过apk到系统中,需要先卸载,不然有可能影响我们之后内置方式安装的apk的执行。
卸载方式一
通过手机自带软件管理卸载。这种比较简单了,不多说。
卸载方式二
通过adb卸载。
打开控制台,输入下面的命令卸载旧的安装
> adb uninstall <your package name>
例如我的报名是 com.star.test
,我的完整卸载命令是
> adb uninstall com.star.test
看到控制台输出 SUCCESS
即表示卸载完成。
签名(可跳过)
如果我们的应用需要某些系统权限,可能需要使用系统签名,参考这篇文章为应用打上系统签名。
将应用Push到系统目录下
注: 以下命令运行可能报错 Read-only file system
,解决该问题请参看 获取Android System 写入权限
推送apk到系统目录
输入如下名命令
> adb push <your apk path> /system/priv-app
Android 4.4 之后,系统核心apk安装在 /system/priv-app
中,以前是安装在 /system/app
中。
推送 .so 到系统库目录下
如果apk带有 .so 库,.so 库也需要单独push到 /system/lib
或者 /system/lib64
中,具体看你的系统有哪个目录。当然,.so 的ABI需要和系统ABI符合。
安装应用
在 Android 5.0 以前,推送到系统应用目录中的apk会被自动安装,Android 5.0 之后,只在系统启动时,系统会自动安装它。
确认有没有被实际安装,可以通过如下命令
> adb shell //进入adb shell 模式
# pm list packages | grep <your package name>//在所有已安装的apk中,查找指定的apk有没有安装
如果安装成功,则会有一行输出,显示自己的应用包名,否则不会有任何输出提示。
可以通过重启系统来使刚刚push进入的apk安装到系统中。如果完全重启系统的话,花费时间较长,可以通过部分重启来节省时间。在cmd中执行如下命令。
> abd shell//进入adb shell 模式
# am restart //重启系统(非完全重启)
重启之后正常情况下应用应该已经安装了,接下来测试下应用是否能能够工作。
adb将Apk内置到系统中(system/priv-app)相关推荐
- 将第三方apk内置到rom中的方法
前提工作是:(1) 安卓SDK环境的搭建,百度上搜一搜就可以了.(2$ 表示不需要root,#表示需要root 1.打开CMD命令 2.查看连接的设备:adb devices 3.命令的操作: (1) ...
- android内置t卡中预制资源,[FAQ17514][Recovery]Recovery mode FAQ搜寻指南
[DESCRIPTION] Recovery mode 依据不同问题归类为几个属性标签如下 [Debug/Log] :debug log , adb 相关问题 [OTAError] :升 ...
- 手把手教你使用ADB卸载手机内置App软件
[一.前言] 不知道你们有没有那么一段黑暗时期,刚买个手机,手机上内置一堆app,还卸载不掉,然后每天各种广告,手机一共1G的运行内存,那些流氓app还要再占走一些内存,真是让人欲哭无泪啊,后来我就学 ...
- 华为鸿蒙内置,内置鸿蒙系统,华为生态产品海雀智能摄像头Pro体验
提起华为鸿蒙系统,估计很多人都不陌生,作为一款分布式操作系统,目前已经在华为智慧屏.华为手表.九阳.美的等产品中内置了鸿蒙系统,手机鸿蒙系统目前正在内测,估计很快大多数华为荣耀手机都可以升级鸿蒙系统了 ...
- w10系统自带linux系统,win10下,内置linux系统的安装和体验,你造吗?
原标题:win10下,内置linux系统的安装和体验,你造吗? 众所周知,windows系统和linux系统一直是水火不容,而在最新的win10系统却完美兼容了linux系统,但是在默认情况下是关闭的 ...
- 鸿蒙系统摄像头,内置鸿蒙系统,华为生态产品海雀智能摄像头Pro体验
提起华为鸿蒙系统,估计很多人都不陌生,作为一款分布式操作系统,目前已经在华为智慧屏.华为手表.九阳.美的等产品中内置了鸿蒙系统,手机鸿蒙系统目前正在内测,估计很快大多数华为荣耀手机都可以升级鸿蒙系统了 ...
- python sort函数返回值_lambda函数与箭头函数在集合内置函数应用中的对照学习
Python语言中有一个定义轻量级规则的lambda函数,其语法格式为: Lambda 参数列表:返回值表达式 简单的例子如:定义func=lambda x,y:x+y,则调用func(10,20)的 ...
- 华为手机鸿蒙系统自带吗,内置鸿蒙系统的四款华为手机,实力都很强,可惜都有一点瑕疵!...
随着鸿蒙系统的正式公布,华为手机的热度也升高了不少,尽管华为机型的供货速度以及供货量都不算特别出色,但对于想购买的用户来说,经过一轮又一轮的抢购之后,还是有很大的几率可以买到.而且,华为除了如今已经发 ...
- adb 卸载 Anroid 内置应用
adb 卸载 Anroid 内置应用 B站视频 博客链接
最新文章
- 6.1.1 验证注解的使用
- 我去,你写的 switch 语句也太老土了吧
- java web hello world(一)
- 理解统计信息(3/6):谁创建和管理统计信息?在性能调优中,统计信息的作用。...
- Spring常用的的注解对应xml配置详解
- 图像分类中混淆矩阵精度验证法中的几个指标说明
- 通过asm动态构造class文件
- 《天天数学》连载21:一月二十一日
- centos 6.4扩展挂载点磁盘空间
- Per-class allocator 2
- 锁机制,信号机制,事件机制
- 磁盘不见了只剩一个c盘_电脑硬盘分区不见了怎么恢复数据?
- C# Spire操作Word文档生成PDF或JPG格式
- 北京家庭摇号计算机,北京摇号积分计算|2021北京家庭摇号积分怎么算? 北京家庭积分摇号计算 - 有车一族汽车网...
- Windows下实用工具汇总(更新……)
- (九)统计学习方法 | 隐马尔可夫模型
- error:jump to case label [-fpermissive]
- Melanopic EDI(简称m-EDI) 计算软件
- 机器人李继红_电力设备
- java学习2022-6-7