1. \build\make\target\product\security 源码路径下取得文件platform.pk8 platform.x509.pem
2. 写以下bat脚本文件,与上述两个文件放在同目录下,执行脚本文件
@echo off
echo 开始执行!
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
echo 生成 platform.pem
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:android -name androiddebugkey
echo 生成 platform.p12
keytool -importkeystore -deststorepass android -destkeystore ./platform.keystore -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass android
echo 生成 platform.keystore 成功
pause
3. 生成 platform.keystore 系统签名文件(storePassword "android" keyAlias "androiddebugkey" keyPassword "android")
4. Android Studio 中使用系统签名:
在模块的build.gradle 中 添加(注意platform.keystore 的位置)
signingConfigs {
debug {
storeFile file('../platform.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
AndroidManifest.xml 中添加
android:sharedUserId="android.uid.system"
5. 用系统签名给apk签名
脚本如下(修改下面的apksigner_path 为自己的sdk 路径,修改keystore_path 为platform.keystore路径)
@echo off
set apksigner_path=D:\Android\SDK\build-tools\28.0.3\apksigner.bat
set keystore_path=D:\Tool\platformkey\platform.keystore
set apk=%1
set name=%~n1%~x1
set path=%~dp1
set signed_name_pre=signed_
echo android|(%apksigner_path% sign --ks %keystore_path% --out %path%%signed_name_pre%%name% %apk%)
echo signed success
pause
例如,将以上写为sign.bat, 把要签名的apk 拖动到该bat文件上,会开始签名,生成的签名apk 后在原始apk 同目录下,文件名为原始文件名加前缀signed_