apk签名
1、tools_sign_apk.sh
#!/bin/bash
SIGN_APK_KEY_DIR="${HOME}/sign_apk/key"
function __help() {
echo --------------------------------------
echo 'Usage: ./sign_apk.sh apk'
echo
echo 'example: signed apk is placed in directory where command is executed'
echo ' ./sign_apk.sh bleutooth.apk'
echo 'example: signed apk is placed in directory pointed'
echo ' ./sign_apk.sh bleutooth.apk ~/'
echo --------------------------------------
}
function sign_apk() {
if [ $# -lt 1 ];then
echo "param error"
__help
return 1
fi
local cur_dir=$(pwd)
echo cur_dir: ${cur_dir}
local apk=$1
local apk_path=
local apk_name=
local out_path=$cur_dir
if [ ! -e $apk ];then
echo $apk does not exist!
exit -1
fi
if [[ -n $2 ]];then
if [ ! -d $2 ];then
echo output directory\($2\) does not exist!
exit -1
fi
out_path=$2
fi
apk_name=`basename $apk .apk`
apk_path=${1%.*}
if [[ $apk =~ "/" ]];then
apk_path=${1%/*}
else
apk_path="."
fi
# cd ${SIGN_APK_DIR}
echo ----------------------------
echo $apk
echo apk_path: $apk_path
echo apk_name: $apk_name
echo out_path: $out_path
echo ----------------------------
echo signing ...
java -jar ${SIGN_APK_KEY_DIR}/signapk.jar -w ${SIGN_APK_KEY_DIR}/platform.x509.pem ${SIGN_APK_KEY_DIR}/platform.pk8 ${apk} ${SIGN_APK_KEY_DIR}/${apk_name}_signed.apk
cp ${SIGN_APK_KEY_DIR}/${apk_name}_signed.apk ${out_path}/${apk_name}.apk
echo signed succeed!!!
}
使用签名脚本
在linux账户根目录下,做如下操作
- 创建.bin文件夹
把上面的脚本文件放在.bin目录下 - .bashrc添加如下代码
bin_files=`ls ${HOME}/.bin/*.sh`
# echo bin_file: $bin_files
for bin_file in ${bin_files}
do
source ${bin_file}
done
# end
- 执行source .bashrc
做完以上操作,即可使用sign_apk签名apk文件了,签名后的apk在执行命令的目录
签名秘钥自行准备!