adb-shell: /sbin/sh: comando: no encontrado

Logré rootear Google Nexus 7 (2013 Wi-Fi) y ahora tengo CyanogenMod 10.2-20130919-NIGHTY-grouper ejecutándose y Clockworkmod recovery v6.0.1.9 siguiendo esta guía .

Luego descargué e instalé el archivo de imagen de Thinktube para permitir la creación de redes ad-hoc.

Ahora puedo crear una red ad-hoc en mi tableta (aún no se ha probado con otras tabletas del mismo modelo) y puedo ver la red ad-hoc desde otros teléfonos iOS y adnroid 2.1 únicamente. Sin embargo, quiero asegurarme de que:

¿El archivo de imagen Thinktube realmente es compatible con el protocolo de enraizamiento OLSR o no?

si no, ya estoy siguiendo esta guía para descargar, instalar y habilitar el modo OLSR.

Pero , cuando estoy en el modo de recuperación en mi tableta, y cuando abro el shell adb desde mi PC, puedo enumerar archivos y buscar carpetas en mi tableta normalmente. Pero no puedo ejecutar ningún otro comando en adb-shell. siempre me da este error:

/sbin/sh: "any-command-rather-than-ls-&-cd": not found

¿Qué es este error? qué hice mal ? y que debo hacer para solucionarlo?

¿Qué comandos has probado?
@DanHulme: make .. su (pero entendí que no necesito hacer esto porque ya estoy en la cuenta de superusuario cuando estoy dentro del adb-shell).. scan_results y cualquier otro comando

Respuestas (2)

A diferencia de un sistema GNU/Linux de escritorio, Android no está diseñado para el uso de la línea de comandos, por lo que no viene con el conjunto completo de programas de línea de comandos que tendría un sistema GNU. Solo tiene los comandos más básicos (como los que ya has visto funcionar) y utilidades específicas de Android como am, pm, bmgr.

Puede obtener acceso a los comandos básicos de POSIX (como lessy grep) instalando Busybox. Hay varios instaladores para ello en Google Play. Para más programas especializados como make, deberá encontrar un puerto de Android del programa en particular e instalarlo.

No tengo la aplicación google-play en mi tableta después de instalar CyanogenMod, lo que significa que no puedo instalar la aplicación Busybox. Ni siquiera tengo la aplicación SuperUser después de desbloquear.
@Rania-Boy Puede instalar Busybox desde otra fuente o instalar primero Google Play .

El caparazón en Android se coloca en /system/bin/shlugar del normal /bin/sh. Me pregunto dónde vería /sbin/shlo que nunca he encontrado en la naturaleza en ningún Unix (y viola el estándar POSIX), pero en este lugar solo debe cambiar el script/ invocación involucrada.

La mayoría de los comandos están en el $PATHde todos modos, por lo que no es necesariamente necesario llamarlos con rutas explícitas.

Dicho esto, la zona de usuarios de Android Unix es muy mínima, ni siquiera incluyó una cat(1)implementación hasta hace poco, por lo que puede sentirse un poco decepcionado.

Algunas personas sugieren usar busybox en él. Si lo hace, asegúrese de no reemplazar el shell del sistema, ya que el valor predeterminado de Android mksh(1)es mucho más poderoso que el de busybox ash.

Descargo de responsabilidad: soy el mkshmantenedor.