替换APK中的文件重新打包

本文分享了在遇到应用问题时,尝试通过替换APK中的assets资源文件来定位问题的方法。详细记录了使用批处理脚本进行资源替换、重新签名及优化的全过程,并提醒注意脚本存在的无法删除旧资源的限制。

这两天遇到一个问题,一直没有头绪,为了确认原因,需要将新的资源和代码,替换到老包中,看看问题是否会出现,结果很无情,问题依旧。不过倒是研究了下如何替换assets中的文件。脚本基本都是网上搜集来的,发现这个方法有个bug,替换可以,无法删除,因此res会变大。用的时候要注意这点。

#签名相关信息 需要按需修改为自己的
SET KEYSTORE_NAME=xxxxxxxxxxxxxx.keystore
#app别称
SET KEYSTORE_ALIAS=xxxxxxxxxxxxxx
#签名密码
SET KEYSTORE_STOREPASS=xxxxxxxxxxxxxx
#签名密码
SET KEYSTORE_KEYPASS=xxxxxxxxxxxxxx

#原apk名字
SET INPUT_APK=.\input.apk
#新建META-INF和assets两个目录 其中META-INF新建几个和apk中名字一样的文件 但是大小为0 可以用touch命令
SET META-INF=.\META-INF
#assets保存着需要被替换的文件
SET ASSETS=.\assets

#新建output目录
SET UNSIGNED=.\output\Unsinged.apk
SET SIGNED=.\output\Signed.apk
SET OPT=.\output\output.apk
 
copy %INPUT_APK% %UNSIGNED%
 
jar -uf %UNSIGNED% %META-INF%
jar -uf %UNSIGNED% %ASSETS%
@echo 替换文件完成!
 
jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore %KEYSTORE_NAME% -storepass %KEYSTORE_STOREPASS% -keypass %KEYSTORE_KEYPASS% -signedjar %SIGNED% %UNSIGNED% %KEYSTORE_ALIAS%
@echo 签名完成!
 
del /F /Q %OPT%
#zipalign在android 的SDK中,可以添加环境变量或者直接拷贝到当前目录
.\zipalign  4 %SIGNED% %OPT%
@echo 优化完成!
 
del /F /Q %UNSIGNED%
del /F /Q %SIGNED%
@echo 操作完成!
 
@pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值