apktool修改“战网安全令”实现双开(国服亚服共存)

参考:

1. Android逆向之路---改apk包名、达到多开效果

2. 解决android 6.0应用安装失败Failure[INSTALL_FAILED_DUPLICATE_PERMISSION

3. AndroidManifest.xml文件详解(receiver)

目录:

准备工作

解包与修改

打包与签名

安装出错与解决方法

一、准备工作

1. apktool,参考https://ibotpeaches.github.io/Apktool/install/

2. vscode并安装smali插件

3. 战网安全令,国内战网或者google play版均可,因为两者是一样的已不再区分。这也是本文诞生的原因

4. 可选。adb,用来安装apk,用于查看安装失败的报错信息

二、解包与修改

1. 解包

$ apktool d ma.apk

2. 修改

2.1 修改包名

查看AndroidManifest.xml可知包名是com.blizzard.bma。本人计划修改为com.blizzard.bmaZN(因为本人已给台服的账户上了两部验证,故而这个修改版给国服用)

2.1.1 全局替换

用vscode打开文件夹,打开apktool解包出的ma文件夹,任意文件夹右键,选择“Find in path ...”或“在文件夹中查找”;

在打开的侧边栏中,第一框输入原始包名com.blizzard.bma,第二栏留空;第三栏改成“./”表示在文件夹根目录下搜索;

最后回车,就是全局搜索了。

紧接上部,第二栏替原来是空的,现在填入新包名com.blizzard.bmaZN,点击旁边的全部替换按钮,即可实现全局搜索的全局替换。

然后替换"app_name">安全令<"app_name">安全令 中国<以区分不同的app。

如果手机是英文系统,也替换一下Authenticator。注意这个一定要使用"app_name">Authenticator<的格式,因为里面有些文件名,比如图片,都是使用的Authenticator。

最后替换Lcom/blizzard/bmaLcom/blizzard/bmaZN

2.2 修正文件夹名称

这个修改实际上是修改bma为bmaZN,因此要把ma/smali/com/blizzard/bma这个文件夹的名字bma改为bmaZN。

三、打包与签名

1. 打包

$ apktool b ma

2. 签名

首先进入ma/dist,这里生成了刚刚生成的最新的ma.apk

2.1 生成自己的签名文件

$ keytool -genkey -v -keystore "my_ma.jks" -alias "MYMA" -keyalg RSA -keysize 2048 -validity 10000

密码一定要记住!

2.2 用上面的签名文件签名新ma.apk

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore "my_ma.jks" -signedjar _signed.apk "ma.apk" "MYMA"

四、安装出错与解决方法

使用命令

$ adb install _signed.apk

安装可以看到详细的安装失败信息,总结来说就是安全令使用了自定义的权限,这个权限名称在一部安卓系统里是唯一的,所以刚刚解决了包名冲突(参考1)和app名称冲突,现在要来解决一下权限名冲突。(参考2和参考3)

全局搜索替换com.android.permission.SEND_NETEASE_POMELO_PUSH_SERVICE_BLIZZARD为com.android.permission.SEND_NETEASE_POMELO_PUSH_SERVICE_BLIZZARD2即可,然后重新生成ma.apk并重新签名就行了。

发布了15 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/plgkm6/article/details/88127598