陈司机 发表于 2021-1-9 15:45

[玩转App之一]利用ROOT权限或Xposed随意对apk进行保资料降级

本帖最后由 陈司机 于 2021-1-11 16:17 编辑

前提:
A.需要先弄好adb 环境
B.手机已root

**1. 先把要降级的apk push到手机**
```adb push c:\old.apk /sdcard/old.apk```


**2. 执行adb shell**
```adb shell```

**3.su 获取root 权限**
```su```

**4.查找原apk文件路径**

```ls /data/app```
比如我要降级微信,会找到以为微信包名com.tencent.mm开头的文件夹,复制这个文件夹,
我这里是com.tencent.mm-vC_Ju-mbrC9lmkGcdtinCw==
快速查看包名工具,安利下 -> (https://github.com/Enyby/APK-Info)

**5.强制覆盖原有apk文件**
```cat /sdcard/old.apk > /data/app/com.tencent.mm-vC_Ju-mbrC9lmkGcdtinCw==/base.apk```

**6.重启java虚拟机**
```killall zygote```
一般到这里就成功了,如果打不开app,手动再去找到要替换的old.apk再装一下,这个时候应该不会提示不允许降级安装或安装错误之类了,把一些so,odex缓存也刷新一下

再更新一下:
使用xposed插件hook系统使随意降级,注入android进程,核心代码如下(Kotlin),也是以X信举例:
```kotlin
      // 原方法签名:private static void checkDowngrade(PackageParser.Package before, PackageInfoLite after)
      hookAllMethods("com.android.server.pm.PackageManagerService.checkDowngrade") {
            before { m ->
                val before = m.args
                val after = m.args
                val packageName = after.get<String>("packageName")
                if (packageName == "com.tencent.mm") {
                  after.set<Int>("versionCode", before.get<Int>("mVersionCode")!! + 1)
                }
            }
      }
```

京吹久美子 发表于 2021-1-9 23:17

用xp核心破解不就能直接降级软件了吗{:1_904:}不过这样对不方便修改data分区的确实行

qiuhengzhi 发表于 2021-1-9 21:21

直接幸运破解器核心破解就行了呀,这个还挺麻烦的

神的合法代言人 发表于 2021-1-9 20:55

好麻烦的说,既然有了root为什么不顺手再上xp/edxp然后用核心破解.....

hncs2008 发表于 2021-1-9 19:18

青春莫相随 发表于 2021-1-9 17:03
主要是降级的APK不好找

豌豆荚那找就好了

加洛特 发表于 2021-1-9 16:29

谢谢分享

QingYi. 发表于 2021-1-9 16:02

核心破解加钛备份也行,不过你这个可以更加锻炼动手能力!

wululu0922 发表于 2021-1-9 16:13

都有ROOT了,刷个MAGISK模块更方便。或者核心破解XP模块。。

smile 发表于 2021-1-9 16:50

核心破,解好使

First丶云心 发表于 2021-1-9 16:52

sler369 发表于 2021-1-9 16:54

又学到一招,谢谢

z5252 发表于 2021-1-9 16:58

核心破解直接装就行了。

青春莫相随 发表于 2021-1-9 17:03

主要是降级的APK不好找

Joxing 发表于 2021-1-9 17:15

都有root权限了,还不来个简单点的
页: [1] 2 3 4 5 6
查看完整版本: [玩转App之一]利用ROOT权限或Xposed随意对apk进行保资料降级