View Full Version : [Android] Intercettare API e rimuovere funzionalità
Mi è capitato a volte di navigare con il mio cellulare su internet e di trovarmi dei form precompilati con il mio numero di telefono.
Dato l'enorme fastidio che questa cosa mi provoca (anche perchè sicuramente a questo punto si può leggere il numero da remoto) vorrei intercettare l'API che consente di fare ciò e sostituire il file con un altro che resitutisce sempre 328-0000000.
Qualcuno ha delle dritte ? Quale file devo sostituire ? Quale è il nome dell'API ?
Inoltre tecnicamente come fa a funzionare questa cosa ?
Voglio dire: avendo fatto il passaggio ad un altro operatore, la scheda che ho nel cel originariamente aveva un altro numero e quindi l'unico modo perchè il cell "sappia" il proprio numero è che interroghi la rete.
Ma da javascript è possibile far fare al telefono un interrogazione del genere ? Quali altre API potrei voler bloccare ?
wingman87
15-05-2015, 07:54
Penso che in realtà sia un'impostazione del browser. Se usi chrome, vai in impostazioni e c'è la voce "Compilazione automatica dei moduli", lì puoi o disattivare completamente la feature oppure cancellare solo il numero di telefono (non so però cosa succede la prossima volta che compili un form...)
Penso che in realtà sia un'impostazione del browser. Se usi chrome, vai in impostazioni e c'è la voce "Compilazione automatica dei moduli", lì puoi o disattivare completamente la feature oppure cancellare solo il numero di telefono (non so però cosa succede la prossima volta che compili un form...)
E' già disattivata ma lo fa lo stesso.
Ad ogni modo il punto non è quello, voglio fare in modo che nessun programma possa accedere a questa informazione. Quindi voglio proprio fare una modifica al sistema operativo.
Daniels118
15-05-2015, 10:49
>> Premessa: per una modifica del genere dovresti fare il root del so, che invalida la garanzia. <<
L'API Java per ottenere il numero è questa:
TelephonyManager.getLine1Number() (http://developer.android.com/reference/android/telephony/TelephonyManager.html#getLine1Number())
Dovresti trovare il package, probabilmente nel sistema ci sarà una variabile d'ambiente con il classpath, decompilarlo (esiste un tool gratuito per farlo) e modificare il metodo in modo che ritorni sempre la stringa desiderata, e infine ricompilare.
Questo sistema potrebbe funzionare solo con le app java (che sono la stragrande maggioranza), mentre per quelle native la vedo più difficile.
Inoltre, alcune app (tipo vuozzapp :D) probabilmente non funzionerebbero.
>> Premessa: per una modifica del genere dovresti fare il root del so, che invalida la garanzia. <<
L'API Java per ottenere il numero è questa:
TelephonyManager.getLine1Number() (http://developer.android.com/reference/android/telephony/TelephonyManager.html#getLine1Number())
Dovresti trovare il package, probabilmente nel sistema ci sarà una variabile d'ambiente con il classpath, decompilarlo (esiste un tool gratuito per farlo) e modificare il metodo in modo che ritorni sempre la stringa desiderata, e infine ricompilare.
Questo sistema potrebbe funzionare solo con le app java (che sono la stragrande maggioranza), mentre per quelle native la vedo più difficile.
Inoltre, alcune app (tipo vuozzapp :D) probabilmente non funzionerebbero.
Purtroppo l'API non è TelephonyManager.getLine1Number() perchè leggendo sui forum si capisce che questa va a leggere la memoria della SIM e restituisce lo stesso numero che si può vedere andando su Impostazioni-->Info dispositivo-->stato.
Nel mio caso il numero che vedo dal menu è "sconosciuto" perchè semplicemente non è memorizzato sulla SIM.
Infatti molti si lamentano perchè TelephonyManager.getLine1Number() spesso non funziona.
Quando invece vado su chrome compare correttamente il mio numero di cellulare.
Non capisco come faccia visto che la SIM non sa il suo numero (anche perchè l'ho portato da un altro operatore). Probabilmente lo standard GSM prevede che si possa chiedere alla rete il proprio numero.
Ad ogni modo la API non dovrebbe essere quella.
Daniels118
16-05-2015, 13:56
Non mi sembra che ci siano altri metodi "automatici", l'unica alternativa è che tu abbia inserito i dati nel browser il quale li ha memorizzati da qualche parte. Tieni presente che su android ci sono diversi tipi di storage, a volte disinstallare un app non è sufficiente per fare pulizia.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.