2012-06-11 53 views
6

He sufrido al usar adb.exe.android adb shell permission denied

que quería utilizar adb.exe Shell Indicador mismo que bash, por lo que decidió cambiar el binario por defecto bash (por supuesto binaria fue cruzada compilado, y todo fue perfecto)

cambio binario bash se siguió a continuación para

  1. adb remount
  2. adb push bash /system/bin/

  3. adb shell

  4. cd /system/bin
  5. chmod 777 bash
  6. mv sh sh.bak
  7. ln -s bash sh

primer cambio fue exitoso, pero es que ha ocurrido un problema al segundo intento.

Empujo nuevo bash binario, pero me perdí el permiso de cambiar bash 777, y desconecto adb shell.

después

C:\Program Files (x86)\Android\android-sdk\platform-tools>adb.exe shell 
- exec '/system/bin/sh' failed: Permission denied (13) - 

C:\Program Files (x86)\Android\android-sdk\platform-tools> 

¿Hay alguna idea para solucionar este problema de permisos?

por favor, ayúdame ...

Respuesta

1

Si el dispositivo no se ha bloqueado por completo (/ system/bin/sh es una dependencia de un montón de cosas - el reinicio puede no llegar muy lejos!) Y la partición del sistema todavía se puede escribir, es posible que pueda insertar una nueva copia de bash, donde haya establecido los bits de permiso como desee en el sistema host antes de presionarlo (puede que tenga que usar cygwin o incluso linux para que tenga el permiso bits localmente)

Parece que el dispositivo está rooteado, por lo que es posible que pueda configurar o personalizar una aplicación emulador de terminal para darle una sesión utilizando la copia de seguridad sh, ejecute la copia de seguridad nuevamente como root usando alguna herramienta de escalamiento, y luego arregle el problema.

Si tiene una recuperación modificada con adb, probablemente podría solucionarlo desde allí montando la partición del sistema (normal) manualmente.

El último recurso restauraría desde una imagen de vainilla firmada por un proveedor.

Esperemos que no tenga problemas, pero quizás haya aprendido de esta experiencia - cambiar el shell predeterminado probablemente no sea una buena idea. Sería mejor cargar su shell personalizado con un nombre diferente y ejecutarlo manualmente.

+0

¿Hay otro terminal personalizado no solo adb ?. Si hay una terminal que ejecuta un binario específico que se encuentra en mi teléfono, el problema se solucionará fácilmente. pero no puedo encontrar esta terminal personalizada, ¿me puede dar alguna palabra clave sobre esto? –

+0

establezco el permiso en Linux, y envío este binario a mi teléfono. pero el error de permiso aún se ha producido. Creo que el permiso no es propiedad del archivo. thx –

+0

Puede tener algún otro problema más allá de los permisos de archivo, intente retroceder una copia del shell de android original. Cualquier aplicación de terminal que construyas desde la fuente debería ser capaz de personalizarse en lo que se inicia, posiblemente algunos precompilados incluso la ofrezcan como una opción de menú aunque no recuerdo haberlo visto. –

1

Una solución general para hacer tales cosas: quitar la aplicación del sistema y todo.

adb shell 
mount -o rw,remount -t yaffs2 /dev/block/mtdblk4 /system 
cd /system/app/ 
rm maps.apk 
mount -o ro,remount -t yaffs2 /dev/block/mtdblk4 /system 
sync 
reboot 
+1

esto no puede ayudar, porque en mi caso, no puedo ejecutar comandos de shell utilizando adb shell (el permiso bash no tiene archivos ejecutables) Resuelvo mi problema formateando el firmware completo gracias por responder! –

0

Si tiene versiones recientes de CWM instalado puedes ser salvo

a) recuperación de reinicio adb (arrancar su teléfono en recuperación)

b) en CWM recuperarse de montaje/partición del sistema (usando su teléfono).

c) adb kill-servidor

d) sudo adb puesta en servidor

e) adb shell

f) Haga su parte establece su permiso correctamente

estaba influenciado por la respuesta aquí https://android.stackexchange.com/questions/38085/is-it-a-hard-brick/113507#113507?newreg=6e0c0c0be98349058d3e1668532cd7dc

Cuestiones relacionadas