android系统APK签名生成大全

最近要做一个重复开关机的专项测试,发现需要系统权限才能实现

   1.需要SYSTEM USER 
     1> android:sharedUserId="android.uid.system
     2> <uses-permission android:name="android.permission.SHUTDOWN" />
   2. 系统签名
   
系统签名方法:
1. 直接用android studio生成的APK用signapk.jar进行签名,注意window和UBUNTU环境的签名jar文件是不一样的。

   1> linux下面签名:
      在UBUNTU环境下,signapk.jar有两个地方获取到,分别是:
     /prebuilts/sdk/tools/lib有signapk.jar文件
     out/host/linux-x86/framework/signapk.jar
    
    linux下面签名命令为:
   java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk app-release-sign.apk  
     
     有时会碰到如下报错信息
   如下报错为JAVA版本不对
   Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk : Unsupported major.minor version 52.0
   
   这个错误是由于找不到 libconscrypt_openjdk_jni.so 文件导致的
   路径:prebuilts/sdk/tools/linux/lib64/libconscrypt_openjdk_jni.so
   Exception in thread "main" java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path
   
   
   如果WINDOWS环境下有 Cygwin64 Terminal,可以直接用
   java -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk app-release-sign.apk签名
   执行命令的目录为安装目录,如安装在D:\cygwin64,即把相应的APK及密钥文件放到D:\cygwin64\home\windows登录用户名\目录下执行以上命令。
   cywin下载安装页面  http://www.cygwin.com/  点周 setup-x86_64.exe即可安装,选择网络安装时间会较长。
   由于百度网盘不能创建共享链接,可以百度cygwin64.zip这个离线安装包,越大越好(支持的一些工具就越全),安装的时候选择本地包安装即可。 
   安装完成后的执行命令和UBUNTU一样。
   
   windows下面签名
      java -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk flashtest-sign.apk
      
      
  
2. 用平台的.pem .pk8文件生成key.store,进行导入android studio这样,可以直接生成相应的系统签名APK  
   
   .pem这种文件就是一个X.509的数字证书,里面有用户的公钥等信息,是用来解密的。但是由上文可知,这种文件格式里面不仅可以存储数字证书,还能存各种key。

   .pk8为扩展名的文件,应该和PKCS #8是对应的,用来保存private key。
   
   
    用android OS源码工程的私钥和公钥行成keysotre
    https://github.com/getfatday/keytool-importkeypair
    keytool-importkeypair -k ~/.android/debug.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
    -k 表示要生成的 keystore 文件的名字,这里命名为 platform.keystore
    -p 表示要生成的 keystore 的密码,这里是 android
    -pk8 表示要导入的 platform.pk8 文件
    -cert 表示要导入的platform.x509.pem
    -alias 表示给生成的 platform.keystore 取一个别名,这是命名为 platform
    用如下命令生成的keystore就是系统APK的签名文件。直接在android studio里面设置即可。具体怎么设置请自行百度。
    
    注: .pk8,.pem文件不能从网上下载,因为这些公钥,私钥文件有些项目需要过谷歌认证,为安全起见要求重新生成,所以要直接从项目代码里面获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值