adb-shell: /sbin/sh: команда: не найдена

Мне удалось получить root права на Google Nexus 7 (2013 Wi-Fi), и теперь у меня работает CyanogenMod 10.2-20130919-NIGHTY-grouper и Clockworkmod recovery v6.0.1.9, следуя этому руководству .

Затем я загрузил и установил файл образа Thinktube, чтобы разрешить создание сети ad-hoc.

Теперь я могу создать специальную сеть на своем планшете (еще не тестировался с другими планшетами той же модели), и я могу видеть специальную сеть только с других телефонов iOS и adnroid 2.1. Однако я хочу убедиться, что:

действительно ли файл изображения Thinktube поддерживает протокол рутирования OLSR или нет?

если нет, то я уже следую этому руководству , чтобы загрузить, установить и включить режим OLSR.

Но когда я нахожусь в режиме восстановления на своем планшете и когда я открываю adb-shell со своего ПК, я могу нормально просматривать файлы и папки на своем планшете. Но я не могу запустить никакую другую команду в adb-shell. это всегда дает мне эту ошибку:

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

что это за ошибка? что я сделал не так ? и что я должен сделать, чтобы это исправить?

Какие команды вы пробовали?
@DanHulme: make .. su (но я понял, что мне не нужно этого делать, потому что я уже нахожусь в учетной записи суперпользователя, когда нахожусь внутри adb-shell).. scan_results и любые другие команды

Ответы (2)

В отличие от настольной системы GNU/Linux, Android не предназначен для использования в командной строке, поэтому он не поставляется с полным набором программ командной строки, которые были бы в системе GNU. В нем есть только самые основные команды (например, те, которые вы уже видели в работе) и специфичные для Android утилиты, такие как am, pm, bmgr.

Вы можете получить доступ к основным командам POSIX (таким как lessи grep), установив Busybox. В Google Play есть несколько установщиков для него. Для любых более специализированных программ, таких как make, вам нужно будет найти порт Android конкретной программы и установить ее.

У меня нет приложения google-play на планшете после установки CyanogenMod, а значит я не могу установить Busybox-приложение.. У меня даже SuperUser-приложения нет после разблокировки..
@Rania-Boy Вы можете установить Busybox из другого источника или сначала установить Google Play .

Оболочка на Android ставится /system/bin/shвзамен штатной /bin/sh— интересно, где бы вы увидели то, /sbin/shчего я не встречал в дикой природе ни на одном Unix (и нарушает стандарт POSIX), но в этом месте стоит просто изменить скрипт/ задействован вызов.

Большинство команд находятся в $PATHлюбом случае, поэтому вызывать их с явными путями не обязательно.

При этом пользовательское пространство Android Unix очень минимально — до недавнего времени оно даже не включало cat(1)реализацию — так что вы можете быть немного разочарованы.

Некоторые люди предлагают использовать на нем busybox . Если вы это сделаете, убедитесь, что вы не заменили системную оболочку, так как Android по умолчанию mksh(1)намного мощнее, чем busybox ash.

Отказ от ответственности: я mkshсопровождающий.