Как получить разрешение на создание этого файла в оболочке Android?

8

Я пытаюсь получить root от Kindle, и я застрял. В получении разрешения отказано и не знаю, как или какие разрешения изменить.

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:/ $

Я использую Ubuntu 12.04, если это имеет значение.

hortstu
источник
Я получил root без получения этих разрешений. Спасибо за любую помощь.
hortstu

Ответы:

7

Краткий ответ: вам придется рутировать ваше устройство для этого.

Объяснение: У shellпользователя нет разрешения на запись. /dataКаталог не принадлежит shell, и не их матч группы: на моем Motorola Milestone 2, например, он принадлежит , system:systemи имеет разрешения drwxrwxr-x, а shellпринадлежит shellтолько группе. Только на рутованном устройстве вы можете либо изменить разрешения, либо получить достаточно привилегий для их отмены.

PS: на Android эта sudoкоманда называется просто su- она ​​объясняет вашу последнюю ошибку ( /system/bin/sh: sudo: not found) на случай, если ваше устройство уже рутировано.

Иззи
источник
@hortstu, если вы нашли это полезным, не стесняйтесь повышать голос (нажмите стрелку «вверх» рядом с ним) или, если это каким-то таинственным образом решило вашу проблему, даже принять ее (кнопка «галочка»). Но что бы вы ни решили: я рад, что смог помочь :)
Иззи
Я бы с радостью, но репутации все еще не хватает.
hortstu
Упс ... Я думал, по крайней мере, об ответах на свой вопрос ... Ну, в этом случае, извините за "учительский материал". Теперь у вас есть представитель :)
Иззи
7

Попробуй это:

Оболочка adb "cd / data / local && mkdir tmp"
Оболочка adb mv / data / local / tmp /data/local/tmp.bak
Оболочка adb ln -s / data / data / local / tmp
Перезагрузка adb

adb ожидание устройства
adb shell rm /data/local.prop
adb shell "echo \" ro.kernel.qemu = 1 \ "> /data/local.prop"
adb reboot

Создавая ссылку с на /dataна /data/local/tmp, Android будет верить, что вы пишете, /data/local/tmpдаже если вы на самом деле пишете /data. Этот метод фактически используется , чтобы успешно корневыми многих устройств, хотя некоторые из них он конкретно в build.propтом , что /data/tmpэто от пределов.

Этот метод может не работать с Kindle Fire, хотя я не пробовал. Я внедрил Kindle Fire, но в нем использовался совершенно другой метод. Сначала нужно было прошиться восстановлением TWRP. Затем, поддельный образ восстановления. Затем вы можете получить доступ к копии ваших двоичных файлов su и busybox.

Вы можете попробовать local.propметод, как я описал выше, хотя. Он совместим со многими устройствами.

Скиппи
источник
Спасибо за вашу помощь. Мне удалось добиться рута. По причинам, которые я не понимаю, я смог пропустить несколько шагов в учебнике, и он работал отлично.
hortstu
2

Вы не правильно следовали инструкции по рутингу.

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

Приведенная выше инструкция заставит вас создать символические ссылки на каталог / data / из / data / local / tmp /, что сделает /data/local.prop доступным для записи после перезагрузки.

Убедитесь, что вы точно следуете инструкциям, включая перезагрузку и все, и проверяете каждый шаг, чтобы они не выдавали неожиданное сообщение об ошибке.

Ли Райан
источник
Я правильно следовал инстинкту рутирования, просто использовал другой метод рута, чем тот, с которым вы связались. Спасибо за вашу помощь, но я смог пропустить несколько шагов по причинам, которые я не понимаю, и укоренил Kindle.
hortstu