linux CentOS7.2 shell脚本签名apk文件(8核CPU)

这篇博客介绍了如何在Linux CentOS7.2环境下使用shell脚本进行apk文件的签名操作。首先,安装了jdk1.8.0_144,然后安装了android-sdk。接着,提供了shell脚本`signapk.sh`,该脚本根据CPU核心数动态调整签名进程,避免过多进程导致的问题。脚本中包含了签名、删除META-INF文件、验证签名和zipalign优化等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1).安装jdk1.8.0_144

首先检索包含java的列表

yum list java*

检索1.8的列表

yum list java-1.8*

安装1.8.0的所有文件

yum install java-1.8.0-openjdk* -y
java -version 查看是否安装成功

2).安装android-sdk_r24.4.1-linux.tgz
3).上传签名文件android.keystore
4).写shell脚本signapk.sh

 

signapk.sh

#!/bin/bash  
# param1, APK file: Calculator_debug.apk
# param2, keystore location: ~/.android/debug.keystore
# param3, key storepass: android
# param4, key alias: androiddebugkey

USER_HOME=$(eval echo ~${SUDO_USER})

查询CPU数量,返回的是CPU核数
CPUNUM=` cat /proc/cpuinfo | grep "cpu cores"|wc -l`

定义CPU的总数
let CPUNUM=CPUNUM-1

统计签名文件的个数
JARSIGNERNUM=`ps ax|grep jarsigner|wc -l`

如果正在签名的文件大于定义的CPU的总数那么退出。
if [ $JARSIGNERNUM -gt $CPUNUM ] ;then
        echo "too many"
        exit 0;
fi

# use my debug key default
APK=$1
KEYSTORE="签名文件路径"
STOREPASS="签名文件密码"
ALIAS="别名"


if [ $# -ne 2  ]; then
        echo "usage:"
        echo "jarsigner source_apk  desnation_apk"
APK_BASENAME=$(basename $APK)
#SIGNED_APK="signed_"$APK_BASENAME
SIGNED_APK=$2

#debug
#echo apk: $APK
#echo keystore: $KEYSTORE
#echo storepass: $STOREPASS
#echo alias: $ALIAS
#!/bin/bash  
# param1, APK file: Calculator_debug.apk
# param2, keystore location: ~/.android/debug.keystore
# param3, key storepass: android
# param4, key alias: androiddebugkey

USER_HOME=$(eval echo ~${SUDO_USER})
CPUNUM=` cat /proc/cpuinfo | grep "cpu cores"|wc -l`
let CPUNUM=CPUNUM-1
JARSIGNERNUM=`ps ax|grep jarsigner|wc -l`
if [ $JARSIGNERNUM -gt $CPUNUM ] ;then
        echo "too many"
        exit 0;
fi

# use my debug key default
APK=$1
KEYSTORE="/usr/java/android.keystore"
STOREPASS="xxx"
ALIAS="android"


if [ $# -ne 2  ]; then
        echo "usage:"
        echo "jarsigner source_apk  desnation_apk"
APK_BASENAME=$(basename $APK)
#SIGNED_APK="signed_"$APK_BASENAME
SIGNED_APK=$2

#debug
#echo apk: $APK
#echo keystore: $KEYSTORE
#echo storepass: $STOREPASS
#echo alias: $ALIAS
#echo $APK_BASENAME


# delete META-INF folder
#zip -d $APK META-INF/\*

$STOREPASS $APK $ALIAS
/usr/java/jdk1.8.0_131/bin/jarsigner   -sigalg SHA256withRSA -digestalg SHA1 -keystore $KEYSTORE -storepass $STOREPASS $APK $ALIAS  1>/dev/null 2>&1

#verify
#/usr/java/jdk1.8.0_131/bin/jarsigner  -verify -verbose -certs $APK

#zipalign
/usr/android-sdk-linux/build-tools/23.0.2/zipalign  -v 4 $APK $SIGNED_APK  1>/dev/null 2>&1

echo "ok"
exit 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值