具有系统权限的Android App(AndroidManifest.xml中设置android:sharedUserId="android.uid.system")需要经过系统签名后才能运行。以下方法三能快速调试开发系统App,其他方法费时费力。
方法一:
App直接加入系统编译,编译系统过程中完成App编译及系统签名。
方法二:
使用Eclipse或AS编译,生成的apk再经过系统签名(签名命令:java -jar signapk.jar platform.x509.pem platform.pk8 A.apk B.apk)即可生成系统apk。
方法三:
Eclipse导入系统签名文件debug.keystore,直接编译生成系统apk。具体实现如下:
1、android 源码目录build\target\product\security 取platform.pk8 platform.x509.pem放到一个目录下
2、生成shared.priv.pem,命令如下:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
3、生成pkcs12,命令如下:
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey
Enter Export Password: (输入密码android,默认是android,如是自己制作的key,输入对应的密码)
Verifying - Enter Export Password:(输入密码android)
4、生成debug.keystore,命令如下:
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
5、Eclipse的Windows/Preferences/Android/Build中设置"Custom debug keystore"为刚才生成的debug.keystore,即可实现直接调试系统App。
附:Ubuntu安装openssl,命令如下:
apt-get update
apt-get install openssl
apt-get install libssl-dev