APK重签系统签名

系统签名方法:

java -Xmx2048m -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk

使用这个方法签名的时候有可能出现下图的一些问题:

问题1
问题2

解决方法:

1.首先要确保signapk.jar , platform.x509.pem , platform.pk8 这三个文件来必须来源于同一份源码(重要),如果使用了不同源码的文件,有可能导致各种问题;signapk.jar包可以在源码的/out/host/linux-x86/framework/signapk.jar或是./prebuilts/sdk/tools/lib/signapk.jar找到;platform.x509.pem , platform.pk8 位于源码的/build/target/product/security;将这三个文件拉出来,放在同一个文件内.

2.找到/out/host/linux-x86/lib64目录下的文件,将他们复制到上面那三个文件的目录里

3.使用这三个指令配置环境:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

确保/usr/lib/jvm/java-8-openjdk-amd64路径是对的

查看手机系统的签名信息:

可以把手机系统的system/framework/framework-res.apk拉出来,这个需要有root权限,然后把framework-res.apk解压出来,

通过keytool -printcert -file framework-res/META-INF/CERT.RSA 命令查看签名信息

查看key的签名信息方法有两种:

第一种:

keytool -list -v -keystore [/路径/key]

第二种,但是这个方法只能查看开发版的签名信息

可以直接通过Android studio获取


Facebook的获取方式不一样:

keytool -exportcert -alias [key] -keystore [key的路径] | openssl sha1 -binary | openssl base64

你可能感兴趣的:(APK重签系统签名)