CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 5 su 5
Discussione:

Richiesta accesso root

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Richiesta accesso root

    Ciao a tutti,

    sto effettuando alcune prove con Superuser ma non riesco a capire come posso fare a prendere accesso root dalla mia applicazione.

    Guardando sul thread apposito di XDA leggo che è necessario lanciare l'intent come segue:

    codice:
            final int SUPERUSER_REQUEST = 123456;
            Intent intent = new Intent("android.intent.action.superuser");
            intent.putExtra("name", "nomeApp");
            intent.putExtra("packagename", "nome.pacchetto"); 
            startActivityForResult(intent, SUPERUSER_REQUEST);
    il problema è che a questo punto va in errore:

    codice:
    08-26 14:27:25.164: ERROR/AndroidRuntime(4561): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.azasoft.andaza/org.azasoft.andaza.MainActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { action=android.intent.action.superuser (has extras) }
    Ovviamente ho eseguito il codice, debuggandolo, direttamente sul device con root e non sull'emulatore.

    Tra l'altro scaricando i sorgenti di Superuser.apk non vedo che da nessuna parte c'è un activity che risponde a quell'intent segnalato (android.intent.action.superuser)...

    Non capisco a questo punto come fare... qualcuno può aiutarmi?

    Grazie


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  2.  
  3. #2
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Ho trovato una sorta di workaround...

    Sempre nei sorgenti si Superuser.apk c'è espressamente la chiamata a "superuser" che poi viene cancellato perchè viene 'rinominato' in "su":

    codice:
    File superuser = new File("/system/bin/superuser");
    
    			if (superuser.exists())
    			{
    				// return device to original state
    				Process process = Runtime.getRuntime().exec("superuser");
    				DataOutputStream os = new DataOutputStream(process.getOutputStream());
    
    				os.writeBytes("busybox cp /system/bin/superuser  system/bin/su\n");
    				os.writeBytes("busybox chown 0:0 system/bin/su\n");
    				os.writeBytes("chmod 4755 /system/bin/su\n");
    				os.writeBytes("rm /system/bin/superuser\n");
    				os.writeBytes("exit\n");
    				os.flush();
    			}
    a questo punto ho fatto la stessa cosa e ho ottenuto il risultato richiesto: la schermata di richiesta dei permessi di root è apparsa e ho ottenuto una shell con i permessi di root.

    Non so se questo è IL metodo, ma funzione e tanto basta .


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  4. #3
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Ultima segnalazione per completezza.

    Il test per sapere se tutto è ok io l'ho implementato così:

    codice:
            TextView tv = (TextView) findViewById(R.id.test);
            
    		Process p;
    		try {
    			p = Runtime.getRuntime().exec("su");
    			DataOutputStream os = new DataOutputStream(p.getOutputStream());
    			os.writeBytes("echo \"CIAO MAMMA!!!!!!!!\" >/system/sd/ciccio.txt\n");
    			os.writeBytes("exit\n");
    			os.flush();
    			try {
    				p.waitFor();
    			        if (p.exitValue() != 255) {
    				        tv.setText("OK!");
    			        }
    			        else {
    				        tv.setText("Errore nella richiesta permessi di Root");	
    			        }
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    Ultima modifica di Azatoth; 26-08-09 alle 15:35


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  5. #4
    Senior Droid L'avatar di Cecco


    Registrato dal
    May 2009
    Messaggi
    478
    Smartphone
    Samsung Galaxy Nexus

    Ringraziamenti
    6
    Ringraziato 77 volte in 43 Posts
    Predefinito

    Ciao, ascolta.
    Io sto usando l'emulatore perchè attualmente non sono provvisto di un dispositivo rootato.

    Ho provato ad eseguire il tuo codice e mi esce la schermata con i 3 famosi tasti : "Yes, No, Always" in cui seleziono YES e dal quel momento in poi la mia applicazione dovrebbe avere i permessi di root giusto?

    Quello che ho provato a fare è eseguire il comando:

    DataOutputStream os = new DataOutputStream(p.getOutputStream());
    os.writeBytes("echo \"CIAO MAMMA!!!!!!!!\" >/system/sd/ciccio.txt\n");
    os.writeBytes("exit\n");

    Ma quando con adb shell vado a vedere dentro /system non mi è successo nulla.......mi chiedo allora.....perchè?
    Grazie....

  6. #5
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Quote Originariamente inviato da Cecco Visualizza il messaggio
    Ciao, ascolta.
    Io sto usando l'emulatore perchè attualmente non sono provvisto di un dispositivo rootato.

    Ho provato ad eseguire il tuo codice e mi esce la schermata con i 3 famosi tasti : "Yes, No, Always" in cui seleziono YES e dal quel momento in poi la mia applicazione dovrebbe avere i permessi di root giusto?

    Quello che ho provato a fare è eseguire il comando:

    DataOutputStream os = new DataOutputStream(p.getOutputStream());
    os.writeBytes("echo \"CIAO MAMMA!!!!!!!!\" >/system/sd/ciccio.txt\n");
    os.writeBytes("exit\n");

    Ma quando con adb shell vado a vedere dentro /system non mi è successo nulla.......mi chiedo allora.....perchè?
    Grazie....
    L'esempio era legato al fatto che io ho la partizione ext2 sulla SD montata in /system/sd.
    Dubito fortemente che sull'emulatore ci sia.
    se tu avessi preso anche lo Stream Error invece che il solo Stream Output e lo avessi controllato, probabilmente ti avrebbe detto che non esiste la directory /system/sd.

    hai sicuramente Root, ma il comando che cerchi di fare è errato se fatto su un emulatore .

    Spero di esserti stato utile


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

Discussioni simili

  1. Ottenere accesso root su Samsung GT-i5700
    Da alfredo1000 nel forum Modding Samsung Galaxy Light (i5700 Spica)
    Risposte: 9
    Ultimo messaggio: 20-06-10, 16:06
  2. Accesso root su htc magic
    Da flashboss nel forum HTC Magic
    Risposte: 0
    Ultimo messaggio: 05-12-09, 19:58
  3. Accesso di root problema
    Da grabo nel forum HTC Dream / Tmobile G1
    Risposte: 1
    Ultimo messaggio: 11-09-09, 19:03
  4. snippet accesso root
    Da Azatoth nel forum Esempi - Tutorial SDK
    Risposte: 0
    Ultimo messaggio: 02-09-09, 14:10
  5. Sblocco tim = Accesso root?
    Da siriuxs nel forum HTC Dream / Tmobile G1
    Risposte: 1
    Ultimo messaggio: 23-04-09, 16:23

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy