Android生成和内置一个系统App

内置一个App到系统目录
生成系统应用和配置

系统签名的前提是现在AndroidManifest文件的manifest标签下添加
android:sharedUserId=“android.uid.system”。

1.Android系统签名,两种方式

  • 对Apk重新签名
    libconscrypt_openjdk_jni.dylib 是signapk.jar执行需要的动态库,是编译安卓源码生成的 mac环境在Android/aosp/out/host/darwin-x86/lib64/目录下,重新签名需要用到。

platform.x509.pem 和 platform.pk8 为rom的证书,秘钥等信息,如果不一致会安装不了。

使用signapk.jar和系统签名信息重新签名apk:

java -Djava.library.path=. -jar signapk.jar keys/platform.x509.pem keys/platform.pk8 xxx.apk xxx.apk
  • 生成一个新的系统签名
    下载工具keytool-importkeypair
    然后把keytool-importkeypair工具,platform.x509.pem, platform.pk8放在同一文件夹下:
    如果之前不存在xxx.jks,执行:
keytool-importkeypair -k ./xxx.jks -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

他会生成一个xxx.jks的新签名 密码为android 别名为platform
如果之前有了签名xxx.jks,执行:

keytool-importkeypair -k ./xxx.jks -p xxx.jks的密码 -pk8 platform.pk8 -cert platform.x509.pem -alias xxx

他会导入并覆盖之前签名的pk8和x509,-alias别名最好和之前的保持一致他会提示:存在现有条目别名 xxx, 是否覆盖? [否]: 输入 是
提示导入成功
两种方式区别不大但是完全重新生成的那种不会有之前的信息的干扰更纯净一些建议使用重新生成的方式。
可以通过以下命令查看签名信息:

keytool -v -list -keystore xxx.jks

2.需要在AndroidManifest文件manifest标签下添加

android:sharedUserId="android.uid.system"
将系统APP放到系统目录下
adb shell

重新挂在系统文件夹

mount -o rw,remount /system

把普通的安装好的apk文件夹移动到系统文件夹下(mv cp命令查看 常用命令 标题结尾处的链接)

mv  /data/app/com.xxx.xxx-c_6g96hdmjaMzppiPTIPyg\=\=/*  /system/priv-app/XXXAPP

或者

cp -r /data/app/com.xxx.xxx-c_6g96hdmjaMzppiPTIPyg\=\=/*  /system/priv-app/XXXAPP

重启

adb reboot

应用移动至系统目录下

你可能感兴趣的:(Android)