3

On my rooted device running Android 4.2.2, I have following tools installed:

  1. Terminal Emulator
  2. BusyBox Free

On Terminal Emulator, su command successfully changes user to a real root:

root@hwH30-U10:/ # id -u
uid=0(root) gid=0(root)

Then I remount /system as R/W:

root@hwH30-U10:/ # mount | grep system
/emmc@android /system ext4 rw,realtime,noauto_da_alloc,commit=1,data=ordered 0 0

Then I even:

root@hwH30-U10:/ # chmod 777 /system

But I can not change any thing e.g. permissions or contents of /system original files like /system/build.prop!

I am sure that permissions and mounts are OK because I can create a new file, /system/tmp.prop, change it's contents and permissions by Terminal Emulator.

I really have no idea why these operations are not permitted while in Linux point of view, all things are OK for root to do these changes!

Is there any hard-coded further protection inside Android e.g. in kernel?

How to figure out this, please?

  • What is the result of executing chmod? Have you tried any sorry of root explorer app like ES File Explorer in root mode to change the file permissions? What is your root management app and Android version? – Tamoghna Chowdhury Jan 17 '16 at 9:40
  • I use SuperSU, 3C Toolbox and BusyBox on Marshmallow and KitKat without any issue. – Tamoghna Chowdhury Jan 17 '16 at 9:42
  • @TamoghnaChowdhury, chmod says Operation not permitted. and Yes, ES File Explorer in root mode, FileExpert and many other apps are unable to change any thing! My root management app is KingRoot on Android 4.2.2 (as I mentioned, id -u on Terminal Emulator says me that I'm realy root with id 0). – Yasser Zamani Jan 17 '16 at 10:09
  • 1
    @Izzy, ls -Z say nothing about any context, however, Google says SELinux has been equipped into Android from version 4.3. mine is 4.2.2. – Yasser Zamani Jan 17 '16 at 11:48
  • 1
    @Firelord, echo lolcat > /system/build.prop fails with k_shell/10210:17681: can't create /system/build.prop: Permission denied as I guessed. echo lolcat > /system/build.prop.orig works! and mv /system/build.prop.orig /system/build.prop fails with failed on ' /system/build.prop.orig': Operation not permitted as I guessed. So, output of cat command is not interesting; It's the original contents. – Yasser Zamani Jan 17 '16 at 18:34
2

Based on my comment and Yasser's subsequent comment , I can conclude that the issue was the immutable attribute set on the file build.prop. If other files and directories also can't be edited or deleted, then they may also be having the same attribute or append-only attribute.

The remedy is to use this command with root privilege:

chattr -i FILE_PATH    # FILE_PATH is the file which currently has immutable attribute

Use -iR followed by a directory's path to remove immutable attribute from a directory recursively.

It is to be noted that OP already has busybox installed. chattr and lsattr aren't the utilities found natively in Android.

Relevant info about the used chattr command and append-only attribute can be found in my answer here.

  • A note to readers: a file with immutable attribute depicts that it can't be edited, deleted, moved or renamed. You can read about Linux compatible file attributes here: linux.die.net/man/1/chattr – Firelord Jan 17 '16 at 19:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.