更改 android apk 包名 达到双开甚至多开的目的

起因是那狗日的乐视电视有些app没法安装, 至于为什么不能安装我就懒得说了, 总之就是一个话 Fuck
当然这个难不倒我们程序员们, 用脚指头都能想到是通过包名进行的判断, 那么我们改掉包名不就搞定了, 对吧

所需工具

  • apktool
  • keytool
  • jarsigner

大家执行搜索安装

拆包

1
apktool d package-name.apk

查找包名

  • 打开AndroidMaifest.xml文件
  • 找到第一行的package="xxx.xxx.xxx"
  • xx.xxx.xxx对应的就是包名

更改包名

  • 假设包名是com.huyaohui.test
  • 全局搜索并替换改名称为你想要的包名, 假设是com.huyaohui.test2

更改 smali 路径

  • 全局搜索 Lcom/huyaohui/test
  • 替换成 Lcom/huyaohui/test2

更改文件夹名称

  • 找到所有这种层级的 com/huyaohui/test 文件夹
  • 把对应的文件夹名称更改为包名对应的名称 com/huyaohui/test2

重新打包

更改完包名的 App 重新打包

1
apktool b package-name # 这里的 package-name 是文件夹名

打好的包存放路径为 package-name/dist

创建 keystore

1
keytool -genkey -v -keyalg DSA -keysize 1024 -sigalg SHA1withDSA  -validity 20000  -keystore MyDevel.keystore -alias devel   -keypass MyDevel -storepass MyDevel

重新签名

1
jarsigner -verbose -sigalg SHA1withDSA -digestalg SHA1 -keystore myDevel.keystore -storepass MyDevel dianshijia_v5.0.3_build120.apk devel

签名完成后, 修改包名的工作就彻底结束了

总结

没啥好总结的, 谁叫 java 那么好反编译呢 :-D

参考资料

https://www.jianshu.com/p/fe56575d3991
https://www.cnblogs.com/ayanmw/p/3720804.html