¿Cómo obtengo permiso para crear este archivo en un shell de Android?

8

Estoy intentando rootear un Kindle y estoy atascado. Obteniendo permiso denegado y no sé cómo o qué permisos cambiar.

mike@Inspiron:~/Downloads/android-sdk-linux/platform-tools$ adb shell
shell@android:/ $ echo 'ro.kernel.qemu=1' > /data/local.prop
/system/bin/sh: cannot create /data/local.prop: Permission denied
1|shell@android:/ $ sudo echo 'ro.kernel.qemu=1' > /data/local.prop            
/system/bin/sh: cannot create /data/local.prop: Permission denied
1|shell@android:/ $ sudo
/system/bin/sh: sudo: not found
127|shell@android:/ $

Estoy usando Ubuntu 12.04 si hace la diferencia.

Hortstu
fuente
He logrado root sin haber adquirido estos permisos. Gracias por cualquier ayuda.
hortstu

Respuestas:

7

Respuesta corta: tendrás que rootear tu dispositivo para eso.

Explicación: El shellusuario no tiene permiso de escritura allí. El /datadirectorio no es propiedad shellni coincide con su grupo: en mi Motorola Milestone 2, por ejemplo, es propiedad system:systemy tiene los permisos drwxrwxr-x, mientras que shellpertenece solo al shellgrupo. Solo en un dispositivo rooteado puede cambiar los permisos o tener el privilegio suficiente para anularlos.

PD: en Android, el sudocomando simplemente se llama su, lo que explica su último error ( /system/bin/sh: sudo: not found) en caso de que su dispositivo ya esté rooteado.

Izzy
fuente
@hortstu si lo encuentra útil, no dude en votar a favor (haga clic en la flecha "arriba" al lado) o, si misteriosamente resolvió su problema, incluso acéptelo (el botón "marca de verificación"). Pero decidas lo que decidas: me alegra poder ayudarte :)
Izzy
Me encantaría pero aún no tengo suficiente reputación.
hortstu
Ooops ... al menos he pensado en las respuestas a las propias preguntas ... Bueno, en este caso lo siento por las "cosas de maestros". Ahora tienes el representante :)
Izzy
7

Prueba esto:

adb shell "cd / data / local && mkdir tmp"
adb shell mv / data / local / tmp /data/local/tmp.bak
adb shell ln -s / data / data / local / tmp
reinicio de adb

adb wait-for-device
adb shell rm /data/local.prop
adb shell "echo \" ro.kernel.qemu = 1 \ "> /data/local.prop"
reinicio adb

Al crear un enlace de /dataa /data/local/tmp, Android creerá que estás escribiendo a /data/local/tmppesar de que en realidad estás escribiendo /data. Este método se usa para enrutar con éxito muchos dispositivos, aunque algunos lo tienen específicamente en el build.propque /data/tmpestá fuera de los límites.

Este método podría no funcionar con un Kindle Fire, aunque no lo he probado. He rooteado un Kindle Fire, pero implicaba un método completamente diferente. Primero, la recuperación de TWRP tuvo que ser actualizada. Luego, una imagen falsa de recuperación explotar. Luego, puede obtener acceso para copiar sus binarios su y busybox.

Sin local.propembargo, puedes probar el método como describí anteriormente. Es compatible con muchos dispositivos.

Skippy
fuente
Gracias por tu ayuda. Logré alcanzar la raíz. Por razones que no entiendo, pude omitir algunos pasos en el tutorial y funcionó perfectamente.
hortstu
2

No siguió las instrucciones de enrutamiento correctamente.

http://rootzwiki.com/topic/34162-root-kindlefire-7hd-probably-the-other-2ndgen-kindlefire/

La instrucción anterior le permitiría crear enlaces simbólicos al directorio / data / desde / data / local / tmp /, lo que haría que /data/local.prop se pueda escribir después de un reinicio.

Asegúrese de seguir las instrucciones con precisión, incluidos los reinicios y todo, y asegúrese de verificar en cada paso que no producen mensajes de error inesperados.

Lie Ryan
fuente
Seguí la instrucción de enraizamiento correctamente. Solo estaba usando una técnica de raíz diferente a la que has vinculado. Gracias por su ayuda, pero terminé saltando algunos pasos por razones que no entiendo y he rooteado el Kindle.
hortstu