Ambrov,Ха, я его победил:)
Напишу что сделал, остальным достаточно с 8 или 9 пункта начать)
1. Вытаскиваем apk с помощью apk extractor.
2. Анализируем apk с помощью
https://www.sisik.eu/apk-dump3. Ищем по слову root, находим подозрительное isRooted.
4. Рядом видим упоминания firebase-crashlytics
5. Гуглим, видим, что у firebase-crashlytics есть собственный метод isRooted.
6. Находим, что это open source, идем на
github (тут уже нужный java-файл)
7. Находим исходник метода isRooted():
public static boolean isRooted(Context context) {
// No reliable way to determine if an android phone is rooted, since a rooted phone could
// always disguise itself as non-rooted. Some common approaches can be found on SO:
// http://stackoverflow.com/questions/1101380/determine-if-running-on-a-rooted-device
//
// http://stackoverflow.com/questions/3576989/how-can-you-detect-if-the-device-is-rooted-in-the-app
//
// http://stackoverflow.com/questions/7727021/how-can-androids-copy-protection-check-if-the-device-is-rooted
final boolean isEmulator = isEmulator(context);
final String buildTags = Build.TAGS;
if (!isEmulator && buildTags != null && buildTags.contains("test-keys")) {
return true;
}
// Superuser.apk would only exist on a rooted device:
File file = new File("/system/app/Superuser.apk");
if (file.exists()) {
return true;
}
// su is only available on a rooted device (or the emulator)
// The user could rename or move to a non-standard location, but in that case they
// probably don't want us to know they're root and they can pretty much subvert
// any check anyway.
file = new File("/system/xbin/su");
if (!isEmulator && file.exists()) {
return true;
}
return false;
}
8. Видим, что проверяется 3 признака:
- Наличие файла /system/app/Superuser.apk
- Наличие файла /system/xbin/su
- Наличие тега test-keys в параметрах сборки
У меня первые 2 пункта все ок, а вот в параметрах сборки действительно был текст test-keys
9. Качаем buildProp Editor(ну или можно руками отредактировать build.prop), ищем везде test-keys и заменяем на release-keys
10. Очищаем данные приложения Тиньков инвестиции (или банк), заново настраиваем вход, наслаждаемся входом по отпечатку:)
Сообщение отредактировал laperuz92 - 12.02.20, 07:57