APK安装到手机之后的目录结构
$APP_INSTALL/oat/*.odex //优化之后的dex文件
$APP_INSTALL/oat/*.vdex //包含*.dex文件
$APP_INSTALL/*.apk
查看APK包名
apkanalyzer apk summary [apk]
aapt dump badging [apk]
APK系统签名
系统签名类型:
1. testkey
2. platform
3. shared
4. media
应用程序的Android.mk中有一个LOCAL_CERTIFICATE字段指定签名类型,未指定默认使用testkey.
signapk.jar
1.签名文件位置
$ALPS/build/target/product/security/
Android.mk
media.pk8
media.x509.pem
platform.pk8
platform.x509.pem
README
shared.pk8
shared.x509.pem
testkey.pk8
testkey.x509.pem
verity_key
verity.pk8
verity.x509.pem
2.工具位置
$ALPS/out/host/linux-x86/framework/signapk.jar
3.签名
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
命令报错
Failed to load any of the given libraries: [
conscrypt_openjdk_jni-linux-x86_,
conscrypt_openjdk_jni-linux-x86_-fedora,
conscrypt_openjdk_jni
]
执行:
java -Djava.library.path=$LIB_PATH -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
Android Studio签名
1.把pkcs8格式的私钥转化成pkcs12格式
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
2.把x509.pem公钥转换成pkcs12格式
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey
这里会提示输入密码,默认密码是android,如是自己制作的key,输入对应的密码
3.生成platform.keystore
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
android为密码