Есть ли способ получить / системный раздел постоянного доступа для чтения / записи даже после перезагрузки?

Я использовал ADB.exe, чтобы получить доступ к моему системному разделу, я связал там папку dalvik-cache, чтобы сэкономить место в моем разделе данных, но проблема в том, что мне нужно преобразовать его для чтения/записи каждый раз, когда я хочу установить новое приложение ( или даже если старое приложение хочет обновиться), есть ли способ сделать раздел всегда доступным для чтения/записи, а не только для чтения? Спасибо!

Я считаю, что это нужно сделать на уровне ядра...
Это значит, что мне нужно кастомное ядро, верно? На моем устройстве нет разработки кастомного ядра... спасибо за ответ!
Даже большинство пользовательских ядер не сделают этого (не очень полезно, если только в определенных ситуациях, таких как ваша). Я думаю, вы могли бы найти init.dсценарий init.d, который выполняет перемонтирование при перезагрузке для вас. Хотя я не могу гарантировать, что это сработает — мне редко удавалось выполнять init.dсценарии, требующие su.
@AndyYan Специальное ядро ​​с init.dподдержкой не требуется . Я опубликую ответ в ближайшее время.
Да, я не говорил, что кастомное ядро ​​необходимо, но я init.dтак и думал. Хотя третий, который вы подняли, интересный, я его никогда не видел.
Я также хочу добавить, что автоматическое крепление RW является огромным недостатком безопасности.

Ответы (1)

Вам не нужно /systemпостоянно делать R/W. Вам просто нужно монтировать его как R/W при каждой загрузке. Итак, я предоставляю вам несколько вариантов /systemавтоматического монтирования как R/W при загрузке, но обратите внимание, что эти методы монтируются /systemкак R/W в основном пространстве имен монтирования , что означает, что ВСЕ программы могут записывать в него, пока есть права доступа к файлу. верно. Это создает серьезный недостаток безопасности. Делайте это на свой страх и риск.
Следующие варианты - это не этапы одного метода , а разные подходы .

  1. Если вы можете изменить свой загрузочный образ, то редактирование /init.rc— лучший и самый простой способ.
  2. Если вы не можете изменять /bootнапрямую, но init.dдоступно, вы можете написать простой скрипт для монтирования /systemкак R/W. Как упоминается в комментариях, это может не пройти, если вы попытаетесь позвонить suиз init.dскрипта.
  3. Если и 1, и 2 недоступны, и у вас есть root (я полагаю, вы это сделаете, задав этот вопрос) , замените двоичный файл системной службы ( debuggerdэто лучший выбор) на собственный сценарий оболочки. Затем запустите start debuggerd, чтобы активировать его (действует со следующей загрузки).

Сценарий, необходимый для методов 2 и 3, очень прост, как показано ниже.

#!/system/bin/sh
/system/bin/mount -o rw,remount /system

Вы, вероятно, хотели бы добавить спящий цикл после него, если вы используете метод 3, так как всякий раз, когда он debuggerdвыходит, он будет перезапущен.

Кстати, вы можете легко добавить init.dподдержку самостоятельно с помощью метода 3. Просто взгляните на этот файл . Однако, на мой взгляд, переразметка — это лучший способ использовать свободное пространство /system, но это потенциально вредно.

Метод 3, похоже, был придуман автором вредоносных программ. Мне это нравится. +1.