1.获取系统签名
把以下所有文件放入同一个文件夹
在Android系统源码中的\build\target\product\security目录下找到platform.x509.pem 和platform.pk8两个文件;
在out/host/Linux-x86/framework目录下找到signapk.jar文件
找到 libconscrypt_openjdk_jni库
prebuilts/sdk/tools/linux/lib64/libconscrypt_openjdk_jni.so
需要进行系统签名的app_unsigned.apk
2.在linux环境下,进入该文件夹目录执行以下命令即可完成签名即可
java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 app_unsigned.apk app_signed.apk
3.linux下可能出现问题,jdk环境不对,缺失jdk-8环境
java.lang.UnsupportedClassVersionError: *******: Unsupported major.minor version 52.0
4.编译安装jdk-8环境
$ sudo apt-get install openjdk-8-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openjdk-8-jdk
(1)解决办法:
查看当前java环境
$ update-java-alternatives -l
java
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
安装jdk-8
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
查看当前的jdk环境
$ update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
切换不同版本的jdk
$ sudo update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode * 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 manual mode Press enter to keep the current choice[*], or type selection number:
$ sudo update-alternatives --config javac $ sudo update-alternatives --config javap $ sudo update-alternatives --config javadoc