Posso ottenere un prompt di root nel terminale eseguendo un exploit documentato altrove. (ad esempio qui: http://wiki.cyanogenmod.com/wiki/Motorola_Droid_2_Global:_Full_Update_Guide )
A questo punto, posso installare il binario "su" e assegnargli le autorizzazioni 4755. Ciò dovrebbe consentire a chiunque di eseguirlo, e poiché il proprietario del binario è "root" e il bit sticky è impostato, dovrei diventare root. Ma a quanto pare non ho modo di non diventare root dal terminale a corto di riavvio. Ma, dopo il riavvio, non riesco a diventare root usando 'su'.
$ ls -l /system/bin/su
-rwsr-xr-x root app_101 26234 2012-07-09 15:00 su
Ok, i permessi sembrano a posto, dovrei essere in grado di eseguirlo per diventare root, ma solo in questa particolare invocazione del terminale.
$ /system/bin/su
Permission denied
Inoltre non riesce se si specifica il comando da eseguire come root o con qualsiasi altro argomento:
$ /system/bin/su /system/bin/sh
Permission denied
Perché? C'è qualche altro meccanismo al lavoro? Non voglio installare Superuser.apk, perché voglio solo un modo per ottenere temporaneamente una shell di root, se necessario, ad esempio per eliminare manualmente i file indesiderati. Inoltre, Superuser.apk si basa comunque sul binario su, quindi deve avere un modo per chiamarlo, quindi perché non posso replicarlo nel terminale?
Modifica: ho avuto un altro pensiero, quindi ho provato a copiare / bin / sh in un'altra posizione e l'ho fatto suid root. Ma mentre posso eseguire il nuovo binario, non mi dà il root. Android sta facendo qualcosa di complicato / diverso con un aiuto che Linux normale non fa?