前言
有时候我们的应用需要系统级的权限来实现一些功能(如静默安装),这时候需要给应用打上系统签名,常规操作打包apk,解压apk,删除META-INF中CERT.RSA和
CERT.SF,然后压缩,用系统签名工具签名,一顿操作后可能十分钟过去了,实在太过繁琐,因此我们做了一些简化,用gradle+shell帮我们实现自动化。
准备
1.android studio
2.系统签名文件(signapk.jar、platform.x509.pem、platform.pk8)
3.如果是mac系统,还需要libconscrypt_openjdk_jni.dylib这个文件
4.platform.x509.pem和platform.pk8是对应系统的签名,不同厂家可能有不同的
签名文件,我这里的是Google原生的签名文件。
5.文件在百度网盘
链接: https://pan.baidu.com/s/1_wGxfZcpmfmvCGPLSU-XWw 提取码: d46k
6.本文以mac系统为例,windows的按着这思路,也差不多
编写系统签名脚本
#解压 unzip -q app-release.apk -d ./release #删除cert rm -f ./release/META-INF/CERT.RSA rm -f ./release/META-INF/CERT.SF #压缩 cd ./release for file in $(ls) do zip -r -q app-release-tmp.apk -xi $file; done mv app-release-tmp.apk ../ cd .. #系统签名 java -jar signapk.jar platform.x509.pem platform.pk8 app-release-tmp.apk app-sign.apk #清理临时文件 rm -f app-release-tmp.apk rm -rf ./release
保存为sign.sh,与signapk.jar、platform.x509.pem、platform.pk8、libconscrypt_openjdk_jni.dylib放在同一目录下,我这里是放在项目的
app/release/sign/目录下
编写打包和调用系统签名脚本
#需注意配置一下路径 #home 本shell放置绝对路径 #debugDir assembleDebug 输出路径 #releaseDir assembleRelease 输出路径 #signDir 系统签名文件路径 home=/Volumes/Samsung_T5/android/Demo/ debugDir=$home/app/build/outputs/apk/debug/ releaseDir=$home/app/build/outputs/apk/release/ signDir=$home/app/release/sign/ #进入工作目录 cd $home #创建签名后的输出目录$home/out if [ ! -d out ];then echo "create directory out..." mkdir out echo "create directory out success" fi #打release包 echo "assembleRelease..." ./gradlew assembleRelease echo "assembleRelease success" #把release包移动到系统签名目录 mv -f $releaseDir/app-release.apk $signDir/app-release.apk echo "system sign apk..." #进入系统签名目录,执行系统签名 cd $signDir ./sign.sh #把签名好的包移动到$home/out中,并用时间重命名 cd $home mv $quanyuyueSignDir/app-sign.apk ./out/app-sign-`date +%Y%m%d%H%M`.apk echo "sign success"
保存上面代码为package.sh,并放在工程目录下,我的是$home目录下。
ps:要打release包还需要配置下app/build.gradle
android { ... //配置签名文件 signingConfigs { release { storeFile file("你的签名文件") storePassword "你的密码" keyAlias "你的keyAlias" keyPassword "你的keyPassword" } } buildTypes { release { signingConfigs.release ... } }
编写task调用package.sh脚本
在app/build.gradle中输入
task getPackage(type: Exec) { executable "sh" args "-c", "../packge.sh" }
这样,我们只要执行下这个task,就可以获得系统签名的apk了。
总结
以上所述是小编给大家介绍的gradle+shell实现自动系统签名,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]