安卓重签名脚本——AndroidResigner.bat

安卓重签名脚本——简单将谷歌的签名命令做成了一个脚本(此为V2签名,V1签名可参考第三个链接),适用于回编译的apk,有需要的同学自取(中文乱码问题请将编码改为ANSI)

参考资料:https://developer.android.com/studio/command-line/apksigner

                  https://developer.android.com/studio/command-line/zipalign

                  https://blog.csdn.net/lxlmycsdnfree/article/details/80801719

================================================================================================

更新20190720

================================================================================================

更新可选v1,v2签名,加入adb工具等其他东西。

注:如果不想每次都输入sdk路径,请注释24-35行,反注释38行并手动输入sdk位置保存

rem -By ShenJie 20180920
@echo off

set sdkUrl=
set apksigner=

:apkTool
cls
echo #################################
echo #                               #
echo #         Android小工具         #
echo #                               #
echo #         重签名请输入1         #
echo #                               #
echo #      查看签名信息请输入2      #
echo #                               #
echo #         adb工具请输入3        #
echo #                               #
echo #          退出请输入4          #
echo #                               #
echo #################################
echo.

if not exist %sdkUrl%\platform-tools (
	echo 请输入Android SDK路径
	echo.
	set /p sdkUrl=
	goto apkTool
)
if not exist %sdkUrl%\build-tools (
	echo 请输入Android SDK路径
	echo.
	set /p sdkUrl=
	goto apkTool
)

REM 不想每次都输入SDK路径,请如下手动指定SDK路径
REM set sdkUrl=D:\Android\android-sdk

set /p userInput=请输入对应的数字:
if %userInput% equ 1 goto apkResign
if %userInput% equ 2 goto keyInfoOptions
if %userInput% equ 3 goto adbTool
if %userInput% equ 4 exit
goto apkTool


REM ----------------------------Android重签名----------------------------------------
REM ----------------------------Android重签名----------------------------------------
REM ----------------------------Android重签名----------------------------------------

:apkResign
cls
echo #################################
echo #                               #
echo #    Zipalign对齐资源请输入1    #
echo #                               #
echo #         重签名请输入2         #
echo #                               #
echo #      检测是否签名请输入3      #
echo #                               #
echo #       返回上一级请输入4       #
echo #                               #
echo #################################
echo.

if not defined apksigner (
	for /d %%i in (%sdkUrl%\build-tools\??.?.?) do ( 
		if %%i GEQ %sdkUrl%\build-tools\24.0.3 (
		
			set apksigner=%%i\apksigner.bat
			set zipalign=%%i\zipalign

			goto apkResign 
		)
	)
	echo 请确认您的Android SDK目录下有版本大于等于24.0.3的build-tools
	echo.
	pause
	goto apkTool
)

set /p userInput=请输入对应的数字:
if %userInput% equ 1 goto zipalign
if %userInput% equ 2 goto reSignOption
if %userInput% equ 3 goto checkSgin
if %userInput% equ 4 goto apkTool
goto apkResign


:zipalign
cls
echo #################################
echo #                               #
echo #       Zipalign对齐资源        #
echo #                               #
echo #################################
echo.
set /p sourceApkPath=请输入源Apk路径:
echo.
echo 请输入对齐后的存放的apk路径及名称
set /p targetApkPath=
%zipalign% -f -v 4 %sourceApkPath% %targetApkPath%
echo.
pause
goto apkResign


:reSignOption
cls
echo #################################
echo #                               #
echo #            重签名             #
echo #                               #
echo #       使用V1签名请输入1       #
REM echo #                               #
REM echo #       使用V2签名请输入2       #
echo #                               #
echo #    使用V1、V2双签名请输入2    #
echo #                               #
echo #          返回请输入3          #
echo #                               #
echo #################################
echo.
set /p userInput=请输入对应的数字:
set "mOption="
if %userInput% equ 1 (
	set "mOption=--v2-signing-enabled false"
	goto reSign
) 
REM if %userInput% equ 2 (
	REM set "mOption=--v1-signing-enabled false"
	REM goto reSign
REM )
if %userInput% equ 2 goto reSign
if %userInput% equ 3 goto apkResign
goto reSignOption

:reSign
cls
echo #################################
echo #                               #
echo #            重签名             #
echo #                               #
echo #     单签名文件签名请输入1     #
echo #                               #
echo #     双签名文件签名请输入2     #
echo #                               #
echo #     私钥和证书签名请输入3     #
echo #                               #
echo #          返回请输入4          #
echo #                               #
echo #################################
echo.

set /p userInput=请输入对应的数字:
if %userInput% equ 1 goto signOneKey
if %userInput% equ 2 goto signTwoKey
if %userInput% equ 3 goto signKeyAndCertificate
if %userInput% equ 4 goto reSignOption
goto reSign

:signOneKey
echo.
set /p sourceApkPath=请输入Apk路径:
echo.
set /p keystorePath=请输入签名文件路径(.jks或.keystore):
echo.
call %apksigner% sign %mOption% --ks %keystorePath% %sourceApkPath%
echo.
pause
goto reSign

:signTwoKey
echo.
set /p sourceApkPath=请输入Apk路径:
echo.
set /p keystoreOnePath=请输入签名文件一的路径(.jks或.keystore):
echo.
set /p keystoreTwoPath=请输入签名文件二的路径(.jks或.keystore):
echo.
call %apksigner% sign %mOption% --ks %keystoreOnePath% --next-signer %mOption% --ks %keystoreTwoPath% %sourceApkPath%
echo.
pause
goto reSign

:signKeyAndCertificate
echo.
set /p sourceApkPath=请输入Apk路径:
echo.
set /p keystorePath=请输入签名文件路径(.pk8):
echo.
set /p certificatePath=请输入签名文件路径(.pem):
echo.
call %apksigner% sign %mOption% --key %keystorePath% --cert %certificatePath% %sourceApkPath%
echo.
pause
goto reSign


:checkSgin
cls
echo #################################
echo #                               #
echo #           校验签名            #
echo #                               #
echo #################################
echo.
set /p sourceApkPath=请输入Apk路径:
call %apksigner% verify -v %sourceApkPath%
echo.
pause
goto apkResign


REM ----------------------------查看签名信息----------------------------------------
REM ----------------------------查看签名信息----------------------------------------
REM ----------------------------查看签名信息----------------------------------------

:keyInfoOptions
cls
echo #################################
echo #                               #
echo #      查看证书信息请输入1      #
echo #                               #
echo #    查看HashKey信息请输入2     #
echo #                               #
echo #       返回上一级请输入3       #
echo #                               #
echo #################################
echo.

set /p userInput=请输入对应的数字:
if %userInput% equ 1 goto apkKeyInfo
if %userInput% equ 2 goto hashKeyInfo
if %userInput% equ 3 goto apkTool
goto keyInfoOptions

:apkKeyInfo
echo.
set /p userInput=请输入签名文件的路径:
keytool -list -v -keystore %userInput%
echo.
pause
cls
goto keyInfoOptions

:hashKeyInfo
echo.
set /p userInput=请输入签名文件的路径:
echo.
set /p alias=请输入别名:
echo.
rem echo 请输入openssl路径
rem set /p opensslUrl=
set opensslUrl=E:\sdk\openssl.exe
if not exist %opensslUrl% (
	echo.
	echo openssl.exe路径错误,请重新输入
	goto hashKeyInfo
)
keytool -exportcert -alias %alias% -keystore %userInput% | %opensslUrl% sha1 -binary | %opensslUrl% base64
echo.
pause
cls
goto keyInfoOptions


REM ----------------------------adb工具----------------------------------------
REM ----------------------------adb工具----------------------------------------
REM ----------------------------adb工具----------------------------------------

:adbTool
cls
echo #################################
echo #                               #
echo #     查看已连接设备请输入1     #
echo #                               #
echo #        安装app请输入2         #
echo #                               #
echo #        卸载app请输入3         #
echo #                               #
echo #          截图请输入4          #
echo #                               #
echo #          录屏请输入5          #
echo #                               #
echo #        查看日志请输入6        #
echo #                               #
echo #       返回上一级请输入7       #
echo #                               #
echo #################################
echo.

set adbUrl=%sdkUrl%\platform-tools\adb

set /p userInput=请输入对应的数字:
if %userInput% equ 1 (
	%adbUrl% devices
	pause
)
if %userInput% equ 2 goto installApp
if %userInput% equ 3 goto uninstallApp
if %userInput% equ 4 goto screenshot
if %userInput% equ 5 goto recording
if %userInput% equ 6 goto logcat
if %userInput% equ 7 goto apkTool
goto adbTool

:installApp
echo.
set /p userInput=请输入app所在位置:
%adbUrl% install -r %userInput%
pause
goto adbTool

:uninstallApp
echo.
set /p userInput=请输入app包名:
%adbUrl% uninstall %userInput%
pause
goto adbTool

:screenshot
echo.
echo ================
echo 正在截图,请稍候
echo ================
echo.
%adbUrl% shell screencap -p /sdcard/screenshotByADB.png
%adbUrl% pull /sdcard/screenshotByADB.png %USERPROFILE%\desktop
echo.
echo ========================
echo 截图完毕并成功复制到桌面
echo ========================
echo.
%adbUrl% shell rm /sdcard/screenshotByADB.png
pause
goto adbTool

:recording
echo.
echo =====================================
echo 正在录屏,请使用Ctrl+C并输入N结束录制
echo =====================================
echo.
%adbUrl% shell screenrecord /sdcard/recordingByADB.mp4
%adbUrl% pull /sdcard/recordingByADB.mp4 %USERPROFILE%\desktop
echo.
echo ========================
echo 录制完毕并成功复制到桌面
echo ========================
echo.
%adbUrl% shell rm /sdcard/recordingByADB.mp4
pause
goto adbTool

:logcat
cls
echo #################################
echo #                               #
echo #      查看lylx日志请输入1      #
echo #                               #
echo #     查看Unity日志请输入2      #
echo #                               #
echo #       自定义tag请输入3        #
echo #                               #
echo #     查看Error日志请输入4      #
echo #                               #
echo #       返回上一级请输入5       #
echo #                               #
echo #################################
echo.
set /p userInput=请输入对应的数字:
if %userInput% equ 1 (
	start %adbUrl% logcat lylx:V *:S
)
if %userInput% equ 2 (
	start %adbUrl% logcat Unity:V *:S
)
if %userInput% equ 3 goto setTag
if %userInput% equ 4 (
	start %adbUrl% logcat *:E
)
if %userInput% equ 5 goto adbTool
goto logcat

:setTag
echo.
set /p tag=请输入tag:
cls 
start %adbUrl% logcat %tag%:V *:S
goto logcat

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值