大家好,又见面了,我是你们的朋友全栈君。
一、来源
有时候我们开发一个apk需要系统权限,于是我们便会在apk的AndroidManifest.xml中添加如下属性:
android:sharedUserId="android.uid.system"
这个时候我们去安装apk,会提示:
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
这个时候就是需要给apk一个系统签名。
二、如何给apk进行系统签名
1.找到源码目录签名文件和签名工具
签名文件
build\target\product\security
签名工具
out/host/linux-x86/framework/signapk.jar
2.将签名文件和签名工具、签名apk放置同一目录,定位到该目录,使用如下命令:
java -jar signapk.jar platform.x509.pem platform.pk8 unsign.apk signed.apk
signed.apk就是生成已经拥有系统签名的apk
除了直接使用signapk.jar签名外,还可以将签名文件生成keystore文件,然后给apk进行签名。
定位到签名文件和apk目录,然后输入如下命令:
1.
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey
这里会输入密码和确认密码,密码是
android
Enter Export Password:
Verifying – Enter Export Password:
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
最后和eclipse或者as签名文件路径关联即可。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152001.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...