简单使用XPOSED实现一机多号

这里只是说明方法和思路,不提供具体的实现

实现原理

到目前为止实现一机多号无非是,虚拟安装环境,或者让应用改变名字多安装一个。
所有的应用对于账号的管理无非是保存账号的数据在本地中,如果能够把账号的数据保存,重新登录新的账号,再保存这个新的的账号数据,想要切换账号时,就回复对应之前保存的数据就可以了。
简单使用XPOSED实现一机多号

Xposed 虚拟环境

由于有些App会检测账号的环境所以我们要让每个账号认为自己的环境是不一样的,用xposed即可实现

//简单的示例
//这里是抓取检测 DeviceId 值替换成我们的自建的IMEI值,其实安卓环境有十几个系统定值,为了保险起见最好全部用xposed 替换,
//在保存应用数据时把自建的系统定值也一起保存下来,切换账号时把系统定值也一起恢复,这样就可以让应用认为自己在同一个环境中
    XposedHelpers.findAndHookMethod("android.telephony.TelephonyManager", classLoader,
            "getDeviceId", new XC_MethodHook() {
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws {
                    param.setResult("自建的deviceid")
                }
            });

应用数据和备份

这部分的内容很简单就只是复制粘贴而已,应用保存的数据在/data/data/[应用的包名]中,一般的应用不需要备份所有的文件,只需要备份database、file、sharePreference这三个文件夹中即可,如果不清楚可以一个一个的试,把数据复制出来,清除掉应用目录中的文件,再复制回去看账号是否还在,如果能成功就说明可以

复制到应用数据目录的文件需要使用adb命令

adb shell chmod -R 777 [文件夹目录]

给与该目录可操作权限否则应用是没办法使用这个目录的也就是恢复失败了

注意

  • 备份和恢复的时候要把应用强制停止,否则容易出事故,简单的关后台是没有用的 这里提供一个adb命令,但有时也会没办法关掉,建议可以多使用几次
adb shell am force-stop [应用的包名]
  • 切换账号时要重新备份的应用中的账号数据
  • 恢复时记得把原来的应用中的数据清掉。

相关推荐