android系统签名,jks签名以及adb安装卸载

一、adb卸载和安装系统应用

卸载系统应用

1.先把原来已经存在的相同包名的APK删除
adb root
adb disable-verity
adb reboot 重启设备
adb root
adb remount 提示remount succeeded 表示成功
adb shell
su
cd /system/app
rm -r test.apk 注释:(test 对应相应的apk文件夹 或者是test.apk对应的apk)

2.将data/data/目录下该应用的包名的目录删除掉
adb shell rm -rf data/data/com.example.test/ 注释:如果已经进入adb shell 前面不再需要输入adb shell

3.重启
reboot或者 adb reboot 注释:需要有root权限才可以删除系统应用,如果不开始输入adb root 和adb disable-verity和adb remount 在删除应用包或者文件时会提示Read-only file system 无法删除app下的apk对应的文件和文件夹

安装系统应用

adb root
adb remount 提示remount succeeded 表示成功
adb push test.apk /system/app
adb reboot 重启后会自动安装你上次的应用 (系统应用需要系统签名 )
安装成系统应用后在运行时不会需要再去弹出申请权限,桌面无法卸载 ,系统应用有静默安装权限

二、android系统签名

准备signapk.jar 、platform.x509.pem 、platform.pk8、libconscrypt_openjdk_jni.so文件和需要签名apk放到同级目录下。命令行进入到此目录下。
签名命令:
java -jar signapk.jar platform.x509.pem platform.pk8 unsign.apk signed.apk
例如:
java -jar signapk.jar platform.x509.pem platform.pk8 D:\test_unsign.apk D:\test_signed.apk
可以在自己签名文件已签名的情况下再次系统签名。
记得在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。
安装成系统应用后在运行时不会需要再去弹出申请权限,桌面无法卸载 ,系统应用有静默安装权限
PS:
关于Android中的sharedUserId的概念这里就简单介绍一下:
Android给每个APK进程分配一个单独的空间,manifest中的userid就是对应一个分配的Linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID 在应用程序安装到设备中时被分配,并且在这个设备中保持它的永久性。
通常,不同的APK会具有不同的userId,因此运行时属于不同的进程中,而不同进程中的资源是不共享的,在保障了程序运行的稳定。然后在有些时候,我们自己开发了多个APK并且需要他们之间互相共享资源,那么就需要通过设置shareUserId来实现这一目的。
通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的数据库和文件.就像访问本程序的数据一样。
用法也很简单:
在需要共享资源的项目的每个AndroidMainfest.xml中添加shareuserId的标签。
android:sharedUserId=“com.example”
id名自由设置,但必须保证每个项目都使用了相同的sharedUserId。一个mainfest只能有一个Shareuserid标签。

三、使用jks或keystore签名apk

jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
例如
D:>jarsigner -verbose -keystore D:\test.jks -signedjar D:\test_signed.apk D:\unsign.apk testAlias
如何签名:
jarsgner -verbose -keystore [keystorePath] -singnedjar [apkOut] [apkln] [alias]
jarsgner命令格式:-verbose输出详细信息-keystore密钥库位置-alias demo.keystore 别名 alias
-keyalg RSA 使用RSA算法对签名加密
-validity 40000 有效期限4000天
-keystore demo.keystore

/* 说明:-verbose 输出签名的详细信息 */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

material_无机化学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值