Модифицируйте время первой установки Android
Там же:packageManager.getPackageInfo(packageName, 0).firstInstallTime;
Как мы можем изменить это? Может быть с root/xposed или программно
1 ответ
Xposed Framework - идеальный инструмент для этого!
Xposed Framework может "перехватывать" любой вызов функции для выполнения любого кода по вашему выбору до / после этой функции - или полностью заменить эту функцию (примечание - он может перехватывать только функции, а не поля).
Следовательно, в вашем случае вы хотите подключить packageManager.getPackageInfo(packageName, 0)
и изменить firstInstallTime
поле в объекте, который возвращает вышеуказанная функция.
Тем не мение, packageManager
абстрактный класс, getPackageInfo()
является абстрактной функцией - и xposed не может перехватывать абстрактные функции. То, что вам нужно сделать, это подключить класс, который фактически реализует эту функцию.
Этот класс 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.String%2Cint%29
afterHookedMethod: http://api.xposed.info/reference/de/robv/android/xposed/XC_MethodHook.html