su galaxy nexus funziona? Ho la cyano 11..
Inviato dal mio Galaxy Nexus usando Androidiani App
Visualizzazione stampabile
su galaxy nexus funziona? Ho la cyano 11..
Inviato dal mio Galaxy Nexus usando Androidiani App
senza root non riesci ad adattarlo perchè ti serve il modulo xposed e app setting
per info vai qui: https://www.androidiani.com/forum/mo...-2-mado79.html
In prima pagina è presente solo la versione "ufficiale".. leggevo che ne esiste una modificata dove la trovo? Su galaxy nexus che procedura devo seguire. Scusate per il doppio post. grazie
Inviato dal mio Galaxy Nexus usando Androidiani App
io potrei provare a sostituire i dati della cyano con quelli di una versione funzionante... questo sembrerebbe ciò che viene inviato in fase di login, potrebbe essere questo che incide... se qualcuno sapesse cosa inviare potrei provare a inserirlo e creare una apk modificata funzionante...
codice:public String getDeviceIdentifiers() {
String deviceIdentifiers = 0x0;
StringBuilder sb = 0x0;
String androidVersion = String.valueOf(Build.VERSION.SDK_INT);
String macAddress = getMACAddress();
if((androidVersion != null) && (macAddress != null)) {
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sb.append("<deviceIdentifiers xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");
sb.append("<Element>");
sb.append("<Name>ANDROID</Name>");
sb.append("<Value>");
sb.append(androidVersion);
sb.append("</Value>");
sb.append("</Element>");
sb.append("<Element>");
sb.append("<Name>MAC</Name>");
sb.append("<Value>");
sb.append(macAddress);
sb.append("</Value>");
sb.append("</Element>");
sb.append("</deviceIdentifiers>");
deviceIdentifiers = sb.toString();
}
return deviceIdentifiers;
}
Da un ricerca su Google, i valori per Build.VERSION.SDK_INT dovrebbero essere questi Build.VERSION_CODES | Android Developers
Potresti provare a far girare quel pezzo di codice su un emulatore.
Piuttosto, prova a cercare dove viene visualizzato quel messaggio 'connessione assente' dopo il tentativo di login, magari c'è qualche chiamata che non viene fatta correttamente.
A proposito, come hai fatto a disassemblare il codice ? E soprattutto, come fai a riassemblarlo in modo che possa essere installato (dovresti come minimimo cambiare il numero di versione e credo che il pacchetto sia firmato digitalmente) ?
Forse posso evitarti di perder tempo su questa cosa del login: il problema dell'errore di connessione che ritorna in molti sistemi non sembra infatti dipendere dalla stringa di login.
Tempo fa mi dedicai qualche ora a fare lo stesso lavoro che stai facendo tu ma poi dovetti sospendere per mancanza di tempo...
In ogni caso, mi resi conto che quell'errore, o meglio, quella stringa di errore (internamente denominata "mds_generic_error"), è associata a circa una ventina di possibili eventi di errore di diverso genere.
Mi ricordo che mi fece ammattire un pò, fino a quando non decisi di fare lo spoofing dei pacchetti di rete che l'app invia al momento del login. In questo modo, mettendo a confronto il comportamento di due dispositivi diversi (un asus tf300 su cui l'app gira regolarmente ed una tv-dongle su cui non riesco a farla girare per via del mancato login) ho scoperto che nei due casi il pacchetto di dati di login inviato al server e quello ricevuto in risposta dal server erano identici!
Insomma, io mi son convinto che la causa che genera l'errore di connessione non dipenda dal processo di login, ma che sia in realtà da ricercare altrove nell' app (ci sono infatti altri punti in cui viene fatta un'analisi delle 'proprietà' del sistema).
Per quanto riguarda il discorso del root, dovrebbe effettivamente bastare cambiare l'ultima assegnazione della variabile v0 alla fine del pezzo di codice smali che hai evidenziato (metodo: "isDeviceRooted()"):
codice::cond_0
const/4 v0, 0x1 <---------- cambiare qui da 0x1 a 0x0
goto :goto_0
.end method
per il messaggio l'ho già cercato, come dice anche Pet, e non porta a niente. Per disassemblare e riassemblare c'è molto software semplice cerca con google (io uso AndroidMultitool).
grazie 1000 per l'analisi dettagliata! allora non perdo tempo col login e proverò a vedere se scovo altri punti del codice che danno quell'errore! Cavolo basterebbe capire dove potrebbe stare la differenza fra una stock e una cyano!!
p.s. sì anche come dici tu funziona il codice, ma esegue codice inutile invece di restituire subito la funzione ;)
Esatto, esegue lo stesso i tre controlli ma poi non ne tiene conto...
Per quanto riguarda il punto di generazione dell'errore in questione, avevo anche provato a moddare l'app inserendo delle varianti diverse per ogni occorrenza di 'mds_generic_error' ed
avevo trovato che l'errore viene generato in questo punto di 'MainFragmentActivity':
il che indica che i vari check compiuti in "AuthenticateUserResponse" non danno "OK", ma nemmeno "KO_REGISTER" o "KO_COMPLETE_REGISTER", e finiscono appunto in un errore generico..codice:...
if (localAuthenticateUserResponse == null)
{
MainFragmentActivity.this.showErrorDialog("", MainFragmentActivity.this.getString(2131296377), "");
}
else if (!localAuthenticateUserResponse.getResultCode().equalsIgnoreCase("OK"))
{
if (localAuthenticateUserResponse.getResultCode().equalsIgnoreCase("KO_REGISTER"))
MainFragmentActivity.this.showErrorDialog("", MainFragmentActivity.this.getString(2131296367), "");
else if (localAuthenticateUserResponse.getResultCode().equalsIgnoreCase("KO_COMPLETE_REGISTER"))
MainFragmentActivity.this.showErrorDialog("", MainFragmentActivity.this.getString(2131296369), "");
else
MainFragmentActivity.this.showErrorDialog("", MainFragmentActivity.this.getString(2131296378), ""); <--- qui da l'errore (dovrebbe essere 2131296366 nell'app non mod)
}
else
...
Dunque non è un problema di registrazione/login (e nemmeno di connettività, naturalmente) ma altro.