In rete si trovano svariate testimonianze di persone che, dopo aver fatto il root o semplicemente dopo aver installato una custom rom (senza root), si ritrovano la seguente schermata sulla app MyTim:
Schermata che impedisce di utilizzare l'app.
Essendo capitato anche a me (e non avevo il root), per curiosità ho decompilato l'app e analizzato il funzionamento di questo blocco.
Fun fact: l'app logga il risultato del check, pertanto da "adb logcat" potete vedere quali check il vostro dispositivo non sta passando, cercate la stringa "RootDector"
TestKeys
Controlla se in /system/build.prop, in ro.build.tags è presente la stringa "test-keys". Alcune custom ROM riportano proprio questa dicitura, ed è per questo che ad alcuni, anche senza root o app "sospette", MyTim rifiuta di aprirsi.
Per bypassarlo si può banalmente modificare quel file sostituendo "test-keys" con "release-keys" (o qualsiasi altra stringa, non importa), chi ha il root lo può fare da un gestore file, chi non lo ha può entrare in recovery e modificarlo direttamente da adb tramite nano (o copiarlo sul pc, modificarlo e poi sostituirlo).
OtaCertificates
Banalmente controlla se è presente il file /etc/security/otacerts.zip
Trattasi dei certificati per aggiornamenti OTA, se la vostra ROM non dovesse avere questo file è possibile bypassare questo controllo semplicemente creando un file vuoto a quel percorso.
RootedApks
Blacklist di app legate al rooting:
{"com.noshufou.android.su", "com.thirdparty.superuser", "eu.chainfire.supersu", "com.koushikdutta.superuser", "com.noshufou.android.su.elite", "com.yellowes.su", "com.topjohnwu.magisk", "com.zachspong.temprootremovejb", "com.ramdroid.appquarantine"};
SI bypassa cambiando il package name dell'app, Magisk ad esempio offre di suo questa funzionzione: Impostazioni -> Nascondi Magisk Manager
DangerousApks
Blacklist di app legate alla pirateria:
{"com.koushikdutta.rommanager", "com.koushikdutta.rommanager.license", "com.dimonvideo.luckypatcher", "com.chelpus.lackypatch", "com.ramdroid.appquarantine", "com.ramdroid.appquarantinepro", "com.android.vending.billing.InAppBillingService.C OIN", "com.chelpus.luckypatcher"};
Vale quanto scritto al punto precedente
SUBinaries
Blacklist di file eseguibili (root)
{"/system/bin/su", "/system/xbin/su", "/sbin/su", "/system/su", "/system/bin/.ext/.su", "/system/app/Superuser.apk", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su", "/system/bin/failsafe/su", "/data/local/su", "/su/bin/su", "/system/xbin/daemonsu", "/system/etc/init.d/99SuperSUDaemon", "/dev/com.koushikdutta.superuser.daemon/"};
Usare Magisk Hide dovrebbe bastare, ricordatevi però di aggiungere MyTim alla lista delle app a cui nascondere il root.
SuCommand / SuCommanV2
Lancia i comandi "which su" e "/system/xbin/which su" da terminale e vede se il comando "su" o un suo alias esistono, Magisk Hide anche qui basta.
Spero che questa analisi sarà utile a qualcuno per riuscire a far funzionare questa app molto schizzinosa.