由于工作需要要修改一个历史很久远的android apk的一些包名参数,但是由于年久失修,找不到原来出包的项目工程了,所以没有办法通过打包的方式去修改apk的包名处理。这里提供一个不需要经过工程打包就可以修改包名的处理方案
一、需要准备的工具
1、你需要可以运行jdk的环境,以及apk解包工具apktool,这里使用的是apktool-2.3.4.jar
2、可以运行python的环境
二、了解原理
1、可以使用命令java -jar apktool-2.3.4.jar d -f aa.apk -o bb
aa.apk是你要解包的apk,bb是解包之后生成的文件夹名字。
android工程通过解包之后,一般的目录结构都是固定的,如下面所示
AndroidManifest.xml这里面是存在着包名的,所以这里要修改包名处理,这个文件里面所有的原包名都要改成,你要的目标包名
2、smali目录下面有很多文件,这里一般情况下认为就是你代码生成的文件,不过这里有点不一样的就是,如果你的包名是aa.bb.cc的话,这里面的就是以aa/bb/cc形式存在,替换的时候也要遵循这里规则去替换
全部改一遍之后就是apk改包名就差不多算完成了,然而这个工作要手工完成吗,太麻烦了,假如你经常有需求改的话,每次都全局都搜一遍,一个一个改?太不智能了,所以搞了一个python脚本去批量的替换包名处理<