Модифицируйте время первой установки 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

Другие вопросы по тегам