在开发中,有些应用的代码不参与系统编译,而是在IDE工具中编译,然后apk参与系统编译并被签名(需要系统签名权限),在调试中时常需要替换系统中编译出来的apk,签名不同会导致安装失败。
1.在程序代码中添加系统权限
androidManifest.xml中添加 android:sharedUserId="android.uid.system"
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx.xxx.xxx"
android:sharedUserId="android.uid.system" >
2.在源码中提取签名文件
源码的签名文件各部相同,由定制系统的厂商来提供,文件在:build\target\product\security目录下
定制源码不同目录结果会有差异,可以将目录整个拷贝出来,或将上图箭头所指的文件拷贝出;
3.签名工具SignApk.jar
下载好SignApk.jar签名工具后,与apk和签名文件放在同一目录(比较方便)
编辑签名脚本例如:
红色箭头为原APK文件名,蓝色箭头为签名后的APK文件名,可随意编辑名称
运行编辑好的bat脚本,就会在同目录下生成签名后的apk