Помощь! Переименовал /system/bin/sh в sh.old.bak, потерял root, не могу переименовать, нет резервной копии nandroid

Я сделал что-то невероятно глупое сегодня. Я переименовал /system/bin/sh в /system/bin/sh.old.bak на своем Huawei y536a1 с рут-правами под управлением 4.4.3 KK. Я собирался установить приложение, которое, как я думал, может перезаписать его, и мне нужна была резервная копия. Я намеревался скопировать его в другое место на пути или связать его, а затем переименовать в корзину. В спешке я просто переименовал его и не смог установить приложение без оболочки, потерял root, тем самым исключив любой известный мне простой метод исправления. Я рутировался с помощью kingroot (не kingo), потому что у меня сейчас нет компьютера. У меня нет резервной копии системы, глупо, я знаю. У меня есть оригинальный заводской файл .img, предварительно рутированный файл .img (единственный способ правильно получить рут и установить рекавери), восстановление twrp и код для разблокировки загрузчика. Так как у меня не было компьютера, я использовал kingroot. Телефон до сих пор рабочий. К сожалению, я не знаю, что теперь делать. У меня ограниченные знания Linux (очевидно). Я боюсь перезагружаться, не зная, что произойдет. Я могу получить доступ к компьютеру. Файл нужно переименовать, но я потерял доступ на запись к системе. Можно ли как-нибудь использовать adb для переименования или запихивания туда другого файла, или исправить перезагрузкой в ​​рекавери? Я бы предпочел решение, которое не стирало бы мой телефон, но я понимаю, что мои возможности весьма ограничены. Я даже не знаю, сработает ли сброс к заводским настройкам или перепрошивка любого из изображений. Любая помощь/совет приветствуется. или исправить перезагрузкой в ​​рекавери? Я бы предпочел решение, которое не стирало бы мой телефон, но я понимаю, что мои возможности весьма ограничены. Я даже не знаю, сработает ли сброс к заводским настройкам или перепрошивка любого из изображений. Любая помощь/совет приветствуется. или исправить перезагрузкой в ​​рекавери? Я бы предпочел решение, которое не стирало бы мой телефон, но я понимаю, что мои возможности весьма ограничены. Я даже не знаю, сработает ли сброс к заводским настройкам или перепрошивка любого из изображений. Любая помощь/совет приветствуется.

Загрузитесь в TWRP, смонтируйте системный раздел: используйте либо его консоль, чтобы переименовать файл, либо используйте файловый браузер TWRP, чтобы перейти в /system/bin, выберите файл и переименуйте его. Вы также можете использовать файловый менеджер Aroma.
Извините, я должен был быть более ясным. У меня есть файл TWRP, но он не установлен, потому что, насколько я знаю, для установки TWRP вам нужно было получить root-права через ADB.
Нет, это ненужное усложнение, о котором вы думаете. Я вижу , что ваше устройство поддерживает прошивку из fastboot. Вы можете использовать fastboot для прошивки или напрямую загрузиться в TWRP с вашего ПК. Нет необходимости в руте. Оказавшись в TWRP, следите за моим первым комментарием. // Предупреждение : если загрузчик еще не разблокирован, вам придется разблокировать его, что приведет к полной очистке данных (аналогично полному сбросу настроек).
Поскольку @Firelord сказал, что ваш телефон поддерживает прошивку из fastboot, я расскажу вам, как написать небольшой прошиваемый пакет для переименования файла sh.old.bak .
@Firelord, Спасибо за информацию. Боялся, что придется разблокировать загрузчик и вайпнуть в процессе.

Ответы (1)

Теперь я проведу вас через процедуру написания собственного прошиваемого ZIP-файла с целью переименования вашего sh.old.bak . Для начала создадим следующее дерево папок:

/META-INF/com/google/android

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

  • скрипт обновления
  • двоичный файл обновления

Оставьте первый пустым и продолжите редактирование файла обновления следующим образом:

#!/sbin/sh
mount /system
mount -o remount,rw /system
mv /system/bin/sh.old.bak /system/bin/sh
umount /system

Сохраните этот контент (в бинарном файле update-binary ), откройте свой любимый архиватор и создайте сжатый архив из папки META-INF . Его содержимое должно автоматически включаться. Убедитесь, что в качестве типа архива выбран ZIP , и выберите минимально возможный уровень сжатия .

Наконец, запустите этот скрипт на свое устройство с помощью:

fastboot update name_of_your_zip.zip

Как можно догадаться, третьим параметром должно быть имя (и путь) ZIP-файла, который вы создали. Короче говоря, ZIP должен смонтировать раздел /system в режиме чтения-записи, переименовать ваш sh.old.bak в sh и размонтировать раздел /system .

Конечно, мой ответ должен соблюдаться в случае, если ваш загрузчик разблокирован, как указал @Firelord.
Извините, что не мог ответить раньше и сэкономить вам время, но я не разблокировал загрузчик и почти уверен, что он все еще заблокирован. Я обязательно воспользуюсь вашим превосходным сценарием, если он есть. К сожалению, я думаю, что мне придется разблокировать его и стереть телефон. С положительной стороны, теперь я могу правильно рутировать и делать полные резервные копии. Спасибо за скрипт и помощь. Я буду работать над этим сегодня вечером. Повелитель огня — продавец масок смерти, спасибо вам обоим за помощь, я очень признателен. - Дж.К.
@user156418 user156418 Если вам не хочется разблокировать загрузчик прямо сейчас, и вы можете получить root права, лучше всего найти root explorer (попробуйте приложение Root Browser ). Получив привилегии суперпользователя, вы сможете перейти в /system/bin и переименовать файл.
У меня все еще установлено оригинальное приложение, которое рутировало мой телефон, поскольку оно также является приложением суперпользователя (kingroot). У меня также есть корневой браузер и es проводник с корневым файловым менеджером. Я обеспокоен тем, что такая важная программа, как «sh», заключается в том, что я рискую испортить свой телефон, если попытаюсь повторно получить root-права. После того, как я переименовал "sh", я впервые впервые потерял рут. Я недостаточно знаю об Android/Linux, чтобы знать, сработает это или нет. Есть предположения?
@user156418 user156418 Можете ли вы просмотреть раздел /system в данный момент? Если да, то найдите двоичный файл su в каталоге /system/xbin . Если файл присутствует, то скачайте Busybox из Play Store, установите его (и его бинарники из приложения). Он будет работать как суррогат основного sh , что позволит вам восстановить настоящий.
Я обнаружил, что у меня частичный рут. Уже пробовал переустанавливать busybox, не помогло. Мой текущий bb не показывает апплет "sh". Я попробую некоторые другие, а также разные корневые браузеры. Спасибо