На моем корневом устройстве под управлением Android 4.2.2 установлены следующие инструменты:
В эмуляторе терминала su
команда успешно меняет пользователя на реального root:
root@hwH30-U10:/ # id -u
uid=0(root) gid=0(root)
Тогда я remount
/system
как R/W
:
root@hwH30-U10:/ # mount | grep system
/emmc@android /system ext4 rw,realtime,noauto_da_alloc,commit=1,data=ordered 0 0
Тогда я даже:
root@hwH30-U10:/ # chmod 777 /system
Но я не могу ничего изменить, например, разрешения или содержимое /system
исходных файлов, таких как /system/build.prop
!
Я уверен, что разрешения и монтирования в порядке, потому что я могу создать новый файл /system/tmp.prop
, изменить его содержимое и разрешения с помощью эмулятора терминала.
Я действительно понятия не имею, почему эти операции не разрешены, в то время как с точки зрения Linux все в порядке, чтобы root мог выполнять эти изменения!
Есть ли жестко запрограммированная дополнительная защита внутри Android, например, в ядре?
Как это понять, пожалуйста?
Основываясь на моем комментарии и последующем комментарии Яссера, я могу сделать вывод, что проблема заключалась в неизменяемом атрибуте, установленном в файле build.prop. Если другие файлы и каталоги также не могут быть отредактированы или удалены, то они также могут иметь такой же атрибут или атрибут только для добавления.
Средство состоит в том, чтобы использовать эту команду с привилегиями root:
chattr -i FILE_PATH # FILE_PATH is the file which currently has immutable attribute
Используйте -iR
, за которым следует путь к каталогу, чтобы рекурсивно удалить неизменяемый атрибут из каталога.
Следует отметить, что в OP уже установлен busybox. chattr
и lsattr
это не те утилиты, которые изначально есть в Android.
Соответствующую информацию об используемой команде chattr и атрибуте только для добавления можно найти в моем ответе здесь .
Тамогна Чоудхури
chmod
? Пробовали ли вы какое-либо приложение-проводник, например ES File Explorer, в корневом режиме, чтобы изменить права доступа к файлам? Какое у вас приложение для управления root и версия Android?Тамогна Чоудхури
Ясир Замани
chmod
говоритOperation not permitted
. и да, ES File Explorer в корневом режиме, FileExpert и многие другие приложения ничего не могут изменить! Мое приложение для управления root работаетKingRoot
на Android 4.2.2 (как я уже упоминал,id -u
онTerminal Emulator
говорит мне, что я действительно root с идентификатором 0).Иззи
ls
поддерживает ли это устройство на месте, но вы можете попробовать его с любым из параметров-Z
/--context
/--lcontext
/--scontext
, чтобы отобразить любой потенциальный контекст SELinux.Ясир Замани
ls -Z
не говоря уже о каком-либо контексте, однако Google говорит, что SELinux был встроен в Android с версии 4.3. мой 4.2.2.Повелитель огня
cp /system/build.prop /system/build.prop.orig
;echo lolcat > /system/build.prop
;cat /system/build.prop
;mv /system/build.prop.orig /system/build.prop
. Меня интересует вывод команды cat.Ясир Замани
echo lolcat > /system/build.prop
терпит неудачу . работает! и терпит неудачу , как я догадался. Итак, вывод команды не интересен; Это оригинальное содержимое.k_shell/10210:17681: can't create /system/build.prop: Permission denied
echo lolcat > /system/build.prop.orig
mv /system/build.prop.orig /system/build.prop
failed on ' /system/build.prop.orig': Operation not permitted
cat
Повелитель огня
lsattr /system/build.prop
?Ясир Замани
lsattr /system/build.prop
:-----i--A----
пять тире, затем i, затем два тире, затем A, а затем четыре тире.Повелитель огня
chattr -i /system/build.prop
а затем попробуйте эту команду lsattr. Если на этот раз вывод отличается, попробуйте мои команды lolcat и сообщите результат.Ясир Замани
i
атрибуте, но в Linuxvi
команда:w!
может писать даже с этим атрибутом, но кажется, что BusyBox неvi
может! в любом случае большое спасибо! Если хотите, добавьте ответ, и я отмечу его как ответ; Или я отвечу на свой вопрос. Еще раз спасибо :)Повелитель огня
Ясир Замани
(add ! to override)
и:w!
мог писать. Но теперь я создал файл тогдаchattr +i
, и вы правы,vi
не может обойтиi
атрибут! К сожалению, я не мог вспомнить предыдущие файлы,lsattr
но я уверен, что это:w!
могло бы решить некоторые сообщения, такие как(add ! to override)
. Но я не могу воспроизвести его сейчас.