【问题标题】:Modify android first installation time修改android首次安装时间
【发布时间】:2018-03-24 05:37:15
【问题描述】:

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

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

【问题讨论】:

  • 你到底想修改什么?
  • 我要修改apk首次安装时间
  • 为什么要修改APK?需要root权限
  • 是的,正如我所说的那样,root 和 xposed - 没问题

标签: java android root xposed


【解决方案1】:

Xposed 框架是完美的工具!

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

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

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

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

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.String%2Cint%29

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

【讨论】:

    猜你喜欢
    • 2015-04-06
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    相关资源
    最近更新 更多