1

有: packageManager.getPackageInfo(packageName, 0).firstInstallTime;

我们如何修改它?也许使用 root/xposed 或以编程方式

4

1 回答 1

0

Xposed 框架是完美的工具!

Xposed Framework 可以“挂钩”任何函数调用以在该函数之前/之后执行您选择的任何代码 - 或完全替换该函数(注意 - 它只能挂钩函数,而不是字段)。

因此,在您的情况下,您想要挂钩packageManager.getPackageInfo(packageName, 0)并更改firstInstallTime上述函数返回的对象中的字段。

但是,packageManager是一个抽象类,getPackageInfo()是一个抽象函数——而xposed不能hook抽象函数。您需要做的是挂钩该类实际实现该功能的类。

该类是ApplicationPackageManager- 只需挂钩它的getPackageInfo函数,并且每当调用此函数时,您都可以firstInstallTime根据自己的喜好修改返回对象中的字段。您可以使用afterHookedMethod()xposed 的功能来做到这一点。

ApplicationPackageManager: http: //grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/app/ApplicationPackageManager.java#ApplicationPackageManager.getPackageInfo%28java.lang。字符串%2Cint%29

afterHookedMethod:http://api.xposed.info/reference/de/robv/android/xposed/XC_MethodHook.html#afterHookedMethod(de.robv.android.xposed.XC_MethodHook.MethodHookParam)

于 2018-03-31T20:51:05.693 回答