Hello everybody,
I rooted my dream phone with :
Code:
fastboot boot boot.img
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# cd system
# cd bin
# cat sh > su
# chmod 4755 su
All work fine !
I tried to install busybox like this :
Code:
adb push busybox /data/local/tmp
cat /data/local/tmp/busybox > /system/bin/busybox
chmod 4755 /system/bin/busybox
No problem with this step, but now if I type :
Code:
$su
#busybox ls /data
I have a permission denied
If I type
Code:
$su
#ls /data
all work fine
(ls is an symbolic link to toolbox)
ls -l /system/bin
Code:
-rwsr-xr-x root root 1745016 2009-07-28 11:01 busybox
-rwsr-xr-x root root 86936 2009-07-28 11:11 su
-rwxr-xr-x root shell 68472 2009-03-03 22:31 toolbox
...
I think busybox is not launch with root permission.. why?
I tried : ln -s busybox ls
but same problem !
What is wrong ?
Thanks.
Any particular reason why you setuid busybox? Try chmod 0755 busybox; chown root:shell busybox
Hello.
I have system.img 5.0.2 for Lenovo S60. Bootloader is secured.
system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
I'm trying to install manually su binary in mounted system image and then flash it with QPST.
SELinux is enabled. I prepared script like this:
#!/bin/sh
SYSPAT=sys
#
echo "Placing files"
#
mkdir $SYSPAT/bin/.ext
chown 0:0 $SYSPAT/bin/.ext
chmod 0777 $SYSPAT/bin/.ext
cp su $SYSPAT/bin/.ext/.su
chown 0:0 $SYSPAT/bin/.ext/.su
chmod 0755 $SYSPAT/bin/.ext/.su
cp su $SYSPAT/xbin/su
chown 0:0 $SYSPAT/xbin/su
chmod 0755 $SYSPAT/xbin/su
cp su $SYSPAT/xbin/daemonsu
chown 0:0 $SYSPAT/xbin/daemonsu
chmod 0755 $SYSPAT/xbin/daemonsu
cp su $SYSPAT/xbin/sugote
chown 0:0 $SYSPAT/xbin/sugote
chmod 0755 $SYSPAT/xbin/sugote
cp $SYSPAT/bin/sh $SYSPAT/xbin/sugote-mksh
chown 0:0 $SYSPAT/xbin/sugote-mksh
chmod 0755 $SYSPAT/xbin/sugote-mksh
cp supolicy $SYSPAT/xbin/supolicy
chown 0:0 $SYSPAT/xbin/supolicy
chmod 0755 $SYSPAT/xbin/supolicy
SYSTEMLIB=$SYSPAT/lib64
cp libsupol.so $SYSTEMLIB
chown 0:0 $SYSTEMLIB/libsupol.so
chmod 0755 $SYSTEMLIB/libsupol.so
#mkdir $SYSPAT/app/SuperSU
#chown 0:0 $SYSPAT/app/SuperSU
#chmod 0755 $SYSPAT/app/SuperSU
rm -rf $SYSPAT/app/SuperSU
#install it manually
cp -f $SYSPAT/bin/app_process64 $SYSPAT/bin/app_process64_original
cat su > $SYSPAT/bin/app_process64
cp -f $SYSPAT/bin/app_process64_original $SYSPAT/bin/app_process_init
chown 0:2000 $SYSPAT/bin/app_process_init
chmod 0755 $SYSPAT/bin/app_process_init
cat $SYSPAT/bin/app_process64_original > $SYSPAT/bin/app_process64
cp -f 99SuperSUDaemon $SYSPAT/etc/init.d/99SuperSUDaemon
chown 0:0 $SYSPAT/etc/init.d/99SuperSUDaemon
chmod 0755 $SYSPAT/etc/init.d/99SuperSUDaemon
cat init.qcom.post_boot.sh > $SYSPAT/etc/init.qcom.post_boot.sh
echo 1 > $SYSPAT/etc/.installed_su_daemon
chown 0:0 $SYSPAT/etc/.installed_su_daemon
chmod 0644 $SYSPAT/etc/.installed_su_daemon
#
echo "Done!"
#
#
#because ping has root permissions and correct sleinux context
#
cat su > $SYSPAT/bin/ping
When i'm creating new file the SeLinuxContext is ?:
Code:
-rwxr-xr-x. 1 root 2000 u:object_r:system_file:s0 9696 lip 16 11:55 antradio_app
-rwxr-xr-x. 1 root 2000 u:object_r:system_file:s0 89632 lip 16 11:55 btconfig
-rwxr-xr-x. 1 root 2000 u:object_r:system_file:s0 34352 lip 16 11:55 bttool
-rwxr-xr-x 1 root root ? 100272 wrz 2 14:38 daemonsu
-rwxr-xr-x. 1 root 2000 u:object_r:system_file:s0 59748 lip 16 11:55 dexdump
-rwxr-xr-x 1 root root ? 100272 wrz 2 14:38 su
-rwxr-xr-x 1 root root ? 100272 wrz 2 14:38 sugote
-rwxr-xr-x 1 root root ? 285016 wrz 2 14:38 sugote-mksh
-rwxr-xr-x 1 root root ? 30168 wrz 2 14:38 supolicy
-rwxr-xr-x. 1 root root u:object_r:system_file:s0 1223776 lip 16 11:55 tcpdump
But when i do like that:
Code:
cat su > $SYSPAT/bin/ping
cat init.qcom.post_boot.sh > $SYSPAT/etc/init.qcom.post_boot.sh
permissions left untouched for example:
-rwxr-xr-x. 1 root root ubject_r:system_file:s0 42824 lip 16 11:54 sys/bin/ping
But hen i try to run it:
Code:
sh ping
ping: syntax error: 'go~!
I've tried to add:
/system/xbin/daemonsu --auto-daemon
on the end of:
/etc/init.qcom.post_boot.sh
HiJacking of the bin/app_process64 cause that phone won't play bootanimation and does not start launcher but i can see internal memory MTP Device.
SuperSU apk still warn: There is no SU binary installed and SuperSu cannot install it.
i have same problem with a cheap chinese **** (MTK based 4.4.2) I'v been readed the raw system.img with spt. Mounted it under linux copy the files like this (and of course checked in the supersu install script) and after rewrite the system, every files in the right place but i get the error: "You need manual reinstall the su" or something like that
Any idea?
---------- Post added at 09:52 PM ---------- Previous post was at 09:47 PM ----------
ok, my fault sorry
here is the tutorial
http://su.chainfire.eu/#embed
Thanks to @miau9202 I just finished an automated script for installing Xposed Framework on ZE500KL and on ZE500KG
Prerequisite:
>Root
>BusyBox Installed
>ADB driver installed(old method only, but you'll have them from root)
>USB debugging activated in 'Developer Settings' (old method only)
NEW METHOD
Right now, the best way to flash xposed now is to download and install the TWRP recovery from HERE and then reboot in to it and flash the official xposed zip you can find HERE (It's important to download the sdk21-arm64 version, so check twice)
OLD METHOD
How To:
>Connect your phone while switched on to your pc
>Run "InstallXposedInstaller.bat" first (Optional: you can download it yourself and install by hand, this is just to make thing faster)
>Run "InstallXposedFramework.bat" second
-You need to press a button after each passage, to proceed. This is done for debugging purpose, so that if you have an error you have the possibility to copy it
-NOTE: the error "WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "gz
ip"; caused by library "libsigchain.so" not found" is NORMAL, you can simply ignore it and proceed
Your phone will reboot and after a while (it coul require even 10 minutes), it should appear the "Android Upgrade" pop-up.
Wait for him to complete and then you are ready to go!
Download:
Official Version - for .118
Unofficial Shakalaca Version - for .156
Manual Procedure:
If you prefer (or need) to manually insert the commands, here you a re a copy-paste friendly transcription:
adb shell
su
mount -o remount,rw /
mount -o remount,rw /system
mkdir /system/tmp
mkdir /sdcard/tmp2
exit
adb push assets/xposed-sdk21-arm64 /sdcard/tmp2
adb shell
su
cp -r /sdcard/tmp2/* /system/tmp/
chmod -R 777 /system/tmp
chmod 777 /system/tmp/flash-script.sh
./system/tmp/flash-script.sh
rm -rd /sdcard/tmp2
rm -rd /system/tmp
exit
adb reboot
Click to expand...
Click to collapse
Tested Modules:
Code:
Snapprefs - NOT Working (Bootloop)
XInternalSD - NOT Working (Bootloop)
BootManager - Working
Intelli3g - Working
PowerNap - Working
VolumeSteps+ - Working
YoutubeAdaway - Working
Disclaimer:
This tool could stuck your phone in a bootloop.
I'm not responsible nor accountable for any possible damage, loss of data or any problem could appear on your phone.
Use this tool at your own risk
Update:
15/11/2015 - Updated guide and binary for last asus update (12.8.5.156), thanks to @shakalaca, @rajlko, @96DANGER96 and @berkobra
13/02/2016 - Updated with the TWRP method
Need Xposed for ZE500KG
Some body can help me to send link Xposed for ZE500KG.
Thanks..
cannyvio said:
Some body can help me to send link Xposed for ZE500KG.
Thanks..
Click to expand...
Click to collapse
Since root procedure is the same and the phones are very look-alike.
I suppose that the same package sould work even on ZE500KG
Give it a try and report here the result
Thanks for the effort, I'll try this.
I have this error running your script:
tmp-mksh: ./flash-script.sh: not found
so tried manually, but encountered an error when starting the install script, here the entire log:
Code:
C:\Users\luca.bosso\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ $ su -c mount -o remount,rw /system
su -c mount -o remount,rw /system
[email protected]_Z00E_1:/ $ su -c mkdir /system/tmp
su -c mkdir /system/tmp
mkdir failed for /system/tmp, File exists
255|[email protected]_Z00E_1:/ $ su -c mkdir /sdcard/tmp2
su -c mkdir /sdcard/tmp2
mkdir failed for /sdcard/tmp2, File exists
255|[email protected]_Z00E_1:/ $ su -c chmod 777 /system/tmp
su -c chmod 777 /system/tmp
[email protected]_Z00E_1:/ $ exit
exit
C:\Users\luca.bosso\Desktop\Xposed ZE500KL>adb push assets/xposed-sdk21-arm64 /
dcard/tmp2
push: assets/xposed-sdk21-arm64/META-INF/com/google/android/updater-script -> /
dcard/tmp2/META-INF/com/google/android/updater-script
push: assets/xposed-sdk21-arm64/META-INF/com/google/android/update-binary -> /s
card/tmp2/META-INF/com/google/android/update-binary
push: assets/xposed-sdk21-arm64/META-INF/com/google/android/flash-script.sh ->
sdcard/tmp2/META-INF/com/google/android/flash-script.sh
push: assets/xposed-sdk21-arm64/META-INF/MANIFEST.MF -> /sdcard/tmp2/META-INF/M
NIFEST.MF
push: assets/xposed-sdk21-arm64/META-INF/CERT.SF -> /sdcard/tmp2/META-INF/CERT.
F
push: assets/xposed-sdk21-arm64/META-INF/CERT.RSA -> /sdcard/tmp2/META-INF/CERT
RSA
push: assets/xposed-sdk21-arm64/system/bin/patchoat -> /sdcard/tmp2/system/bin/
atchoat
push: assets/xposed-sdk21-arm64/system/bin/oatdump -> /sdcard/tmp2/system/bin/o
tdump
push: assets/xposed-sdk21-arm64/system/bin/dex2oat -> /sdcard/tmp2/system/bin/d
x2oat
push: assets/xposed-sdk21-arm64/system/bin/app_process64_xposed -> /sdcard/tmp2
system/bin/app_process64_xposed
push: assets/xposed-sdk21-arm64/system/bin/app_process32_xposed -> /sdcard/tmp2
system/bin/app_process32_xposed
push: assets/xposed-sdk21-arm64/system/framework/XposedBridge.jar -> /sdcard/tm
2/system/framework/XposedBridge.jar
push: assets/xposed-sdk21-arm64/system/lib/libxposed_art.so -> /sdcard/tmp2/sys
em/lib/libxposed_art.so
push: assets/xposed-sdk21-arm64/system/lib/libsigchain.so -> /sdcard/tmp2/syste
/lib/libsigchain.so
push: assets/xposed-sdk21-arm64/system/lib/libart.so -> /sdcard/tmp2/system/lib
libart.so
push: assets/xposed-sdk21-arm64/system/lib/libart-compiler.so -> /sdcard/tmp2/s
stem/lib/libart-compiler.so
push: assets/xposed-sdk21-arm64/system/lib64/libxposed_art.so -> /sdcard/tmp2/s
stem/lib64/libxposed_art.so
push: assets/xposed-sdk21-arm64/system/lib64/libsigchain.so -> /sdcard/tmp2/sys
em/lib64/libsigchain.so
push: assets/xposed-sdk21-arm64/system/lib64/libart.so -> /sdcard/tmp2/system/l
b64/libart.so
push: assets/xposed-sdk21-arm64/system/lib64/libart-disassembler.so -> /sdcard/
mp2/system/lib64/libart-disassembler.so
push: assets/xposed-sdk21-arm64/system/xposed.prop -> /sdcard/tmp2/system/xpose
.prop
push: assets/xposed-sdk21-arm64/flash-script.sh -> /sdcard/tmp2/flash-script.sh
22 files pushed. 0 files skipped.
5543 KB/s (12807304 bytes in 2.256s)
C:\Users\luca.bosso\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c cp -r /sdcard/tmp2/* /system/tmp/
su -c cp -r /sdcard/tmp2/* /system/tmp/
[email protected]_Z00E_1:/ $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ $ dir
dir
/system/bin/sh: dir: not found
127|[email protected]_Z00E_1:/ $ ls -la
ls -la
drwxrwxr-x system system 2015-01-01 01:01 ADF
drwxrwxr-x system system 1970-01-01 01:00 APD
drwxr-xr-x root system 2015-10-28 09:55 Removable
drwxr-xr-x root root 1970-02-14 02:30 acct
drwxrwxrwx root root 2015-10-27 17:30 asdf
drwxrwxr-x system system 1970-01-01 01:00 asusfw
drwxr-xr-x root root 1970-01-01 01:00 bin
drwxrwx--- system cache 2015-10-27 15:05 cache
lrwxrwxrwx root root 1970-01-01 01:00 charger -> /sbin/healthd
dr-x------ root root 1970-02-14 02:30 config
lrwxrwxrwx root root 1970-02-14 02:30 d -> /sys/kernel/debug
drwxrwx--x system system 2015-10-21 17:25 data
-rw-r--r-- root root 363 1970-01-01 01:00 default.prop
drwxr-xr-x root root 2015-10-28 09:55 dev
lrwxrwxrwx root root 1970-02-14 02:30 etc -> /system/etc
drwxrwxrwx shell shell 1970-01-01 05:04 factory
-rw-r--r-- root root 36566 1970-01-01 01:00 file_contexts
dr-xr-x--- system system 1970-01-01 01:00 firmware
-rw-r----- root root 922 1970-01-01 01:00 fstab.goldfish
-rw-r----- root root 1063 1970-01-01 01:00 fstab.qcom
-rwxr-x--- root root 408616 1970-01-01 01:00 init
-rwxr-x--- root root 3058 1970-01-01 01:00 init.asus.debugtool.rc
-rwxr-x--- root root 15324 1970-01-01 01:00 init.asus.rc
-rwxr-x--- root root 1577 1970-01-01 01:00 init.asus.thermald.rc
-rwxr-x--- root root 13380 1970-01-01 01:00 init.asus.usb.rc
-rwxr-x--- root root 3265 1970-01-01 01:00 init.class_main.sh
-rwxr-x--- root root 1178 1970-01-01 01:00 init.environ.rc
-rwxr-x--- root root 2836 1970-01-01 01:00 init.goldfish.rc
-rwxr-x--- root root 1730 1970-01-01 01:00 init.mdm.sh
-rwxr-x--- root root 7054 1970-01-01 01:00 init.qcom.class_core.sh
-rwxr-x--- root root 6920 1970-01-01 01:00 init.qcom.early_boot.sh
-rwxr-x--- root root 12878 1970-01-01 01:00 init.qcom.factory.sh
-rwxr-x--- root root 31160 1970-01-01 01:00 init.qcom.rc
-rwxr-x--- root root 6987 1970-01-01 01:00 init.qcom.sh
-rwxr-x--- root root 2965 1970-01-01 01:00 init.qcom.syspart_fixup.
h
-rwxr-x--- root root 60593 1970-01-01 01:00 init.qcom.usb.rc
-rwxr-x--- root root 10516 1970-01-01 01:00 init.qcom.usb.sh
-rwxr-x--- root root 24085 1970-01-01 01:00 init.rc
-rwxr-x--- root root 7223 1970-01-01 01:00 init.target.rc
-rwxr-x--- root root 1927 1970-01-01 01:00 init.trace.rc
-rwxr-x--- root root 3910 1970-01-01 01:00 init.usb.rc
-rwxr-x--- root root 301 1970-01-01 01:00 init.zygote32.rc
-rwxr-x--- root root 531 1970-01-01 01:00 init.zygote64_32.rc
drwxrwxr-x root system 1970-02-14 02:30 mnt
drwxrwx--x system system 1970-01-01 01:00 persist
dr-xr-xr-x root root 1970-01-01 01:00 proc
-rw-r--r-- root root 2832 1970-01-01 01:00 property_contexts
drwxr-xr-x root root 1970-01-01 01:00 res
drwx------ root root 2015-09-15 07:03 root
drwxr-x--- root root 1970-01-01 01:00 sbin
lrwxrwxrwx root root 1970-02-14 02:30 sdcard -> /storage/emula
ed/legacy
-rw-r--r-- root root 746 1970-01-01 01:00 seapp_contexts
-rw-r--r-- root root 76 1970-01-01 01:00 selinux_version
-rw-r--r-- root root 187085 1970-01-01 01:00 sepolicy
-rw-r--r-- root root 10475 1970-01-01 01:00 service_contexts
drwxr-x--x root sdcard_r 1970-02-14 02:30 storage
dr-xr-xr-x root root 1970-02-14 02:30 sys
drwxr-xr-x root root 2015-10-28 09:56 system
drwxr-xr-x root root 2015-10-28 09:55 tmp-mksh
lrwxrwxrwx root root 1970-02-14 02:30 tombstones -> /data/tomb
tones
-rw-r--r-- root root 323 1970-01-01 01:00 ueventd.goldfish.rc
-rw-r--r-- root root 11724 1970-01-01 01:00 ueventd.qcom.rc
-rw-r--r-- root root 4546 1970-01-01 01:00 ueventd.rc
lrwxrwxrwx root root 1970-02-14 02:30 vendor -> /system/vendor
-rw-r--r-- root root 524 1970-01-01 01:00 verity_key
[email protected]_Z00E_1:/ $ ls -la tmp-mksh
ls -la tmp-mksh
-rwxr-xr-x root root 285016 2015-10-28 09:55 tmp-mksh
[email protected]_Z00E_1:/ $ ls -la system/tmp
ls -la system/tmp
drwxrwx--- root root 2015-10-28 09:57 META-INF
-rw------- root root 5602 2015-10-28 10:05 flash-script.sh
drwxrwx--- root root 2015-10-28 09:57 system
[email protected]_Z00E_1:/ $ cp system/tmp/flash-script.sh tmp-mksh
cp system/tmp/flash-script.sh tmp-mksh
cp: system/tmp/flash-script.sh: Permission denied
1|[email protected]_Z00E_1:/ $ cd system/tmp
cd system/tmp
[email protected]_Z00E_1:/system/tmp $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/system/tmp $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/system/tmp $ su
su
[email protected]_Z00E_1:/system/tmp # ./flash-script.sh
./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/system/tmp #
C:\Users\luca.bosso\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ $ chmod 777 tmp-mksh
chmod 777 tmp-mksh
Unable to chmod tmp-mksh: Read-only file system
10|[email protected]_Z00E_1:/ $ su
su
[email protected]_Z00E_1:/ # mount -o remount,rw /tmp-mksh
mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # mount -o remount,rw /
mount -o remount,rw /
[email protected]_Z00E_1:/ # su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ # su -c mount -o remount,rw /tmp-mksh
su -c mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # shell
shell
tmp-mksh: shell: not found
127|[email protected]_Z00E_1:/ # su -c mount -o remount,rw /tmp-mksh
su -c mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # su -c mount -o remount,rw /tmp-mksh
su -c mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # su -c mount -o remount,rw /system
su -c mount -o remount,rw /system
[email protected]_Z00E_1:/ # su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ # chmod 777 tmp-mksh
chmod 777 tmp-mksh
[email protected]_Z00E_1:/ # su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ # su -c cp system/tmp/flash-script.sh /tmp-mksh
su -c cp system/tmp/flash-script.sh /tmp-mksh
[email protected]_Z00E_1:/ # su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ # ls -la /tmp-mksh
ls -la /tmp-mksh
-rw------- root root 5602 2015-10-28 10:16 flash-script.sh
-rwxr-xr-x root root 285016 2015-10-28 09:55 tmp-mksh
[email protected]_Z00E_1:/ # shell
shell
tmp-mksh: shell: not found
127|[email protected]_Z00E_1:/ # cd tmp-mksh
cd tmp-mksh
[email protected]_Z00E_1:/tmp-mksh # ./flash-script.sh
./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/tmp-mksh # chmod 777 flash-script.sh
chmod 777 flash-script.sh
[email protected]_Z00E_1:/tmp-mksh # ./flash-script.sh
./flash-script.sh
******************************
Xposed framework installer zip
******************************
- Mounting /system and /vendor read-write
- Checking environment
./flash-script.sh[113]: head: not found
./flash-script.sh[113]: sed: not found
./flash-script.sh[115]: cut: not found
./flash-script.sh[115]: head: not found
./flash-script.sh[115]: sed: not found
./flash-script.sh[116]: cut: not found
./flash-script.sh[116]: sed: not found
./flash-script.sh[116]: head: not found
./flash-script.sh[117]: head: not found
./flash-script.sh[117]: sed: not found
./flash-script.sh[119]: head: not found
./flash-script.sh[119]: sed: not found
./flash-script.sh[120]: sed: not found
./flash-script.sh[120]: head: not found
./flash-script.sh[121]: sed: not found
./flash-script.sh[121]: head: not found
./flash-script.sh[122]: head: not found
./flash-script.sh[122]: sed: not found
Xposed version:
! Wrong platform: arm
! This file is for:
! Please download the correct package
! for your platform/ROM!
1|[email protected]_Z00E_1:/tmp-mksh # ./flash-script.sh
Xposed ZE500KG
Jhyrachy said:
Since root procedure is the same and the phones are very look-alike.
I suppose that the same package sould work even on ZE500KG
Give it a try and report here the result
Click to expand...
Click to collapse
I already installed xposed on ZE500KG but still can not because framework didn't active in xposed
when i installed error "tmp-mksh: ./flash-script.sh: not found
Thanks.
cannyvio said:
I already installed xposed on ZE500KG but still can not because framework didn't active in xposed
when i installed error "tmp-mksh: ./flash-script.sh: not found
Thanks.
Click to expand...
Click to collapse
Had the same problem, I successfully installed xposed but I'm also having problem with
tmp-mksh: ./flash-script.sh: not found.... We hope we'll have update to fix this. Thank you and God bless
96DANGER96 said:
I have this error running your script:
tmp-mksh: ./flash-script.sh: not found
so tried manually, but encountered an error when starting the install script, here the entire log:
Code:
C:\Users\*************\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ $ su -c mount -o remount,rw /system
su -c mount -o remount,rw /system
[email protected]_Z00E_1:/ $ su -c mkdir /system/tmp
su -c mkdir /system/tmp
mkdir failed for /system/tmp, File exists
255|[email protected]_Z00E_1:/ $ su -c mkdir /sdcard/tmp2
su -c mkdir /sdcard/tmp2
mkdir failed for /sdcard/tmp2, File exists
255|[email protected]_Z00E_1:/ $ su -c chmod 777 /system/tmp
su -c chmod 777 /system/tmp
[email protected]_Z00E_1:/ $ exit
exit
C:\Users\***********\Desktop\Xposed ZE500KL>adb push assets/xposed-sdk21-arm64 /
dcard/tmp2
push: assets/xposed-sdk21-arm64/META-INF/com/google/android/updater-script -> /
dcard/tmp2/META-INF/com/google/android/updater-script
push: assets/xposed-sdk21-arm64/META-INF/com/google/android/update-binary -> /s
card/tmp2/META-INF/com/google/android/update-binary
push: assets/xposed-sdk21-arm64/META-INF/com/google/android/flash-script.sh ->
sdcard/tmp2/META-INF/com/google/android/flash-script.sh
push: assets/xposed-sdk21-arm64/META-INF/MANIFEST.MF -> /sdcard/tmp2/META-INF/M
NIFEST.MF
push: assets/xposed-sdk21-arm64/META-INF/CERT.SF -> /sdcard/tmp2/META-INF/CERT.
F
push: assets/xposed-sdk21-arm64/META-INF/CERT.RSA -> /sdcard/tmp2/META-INF/CERT
RSA
push: assets/xposed-sdk21-arm64/system/bin/patchoat -> /sdcard/tmp2/system/bin/
atchoat
push: assets/xposed-sdk21-arm64/system/bin/oatdump -> /sdcard/tmp2/system/bin/o
tdump
push: assets/xposed-sdk21-arm64/system/bin/dex2oat -> /sdcard/tmp2/system/bin/d
x2oat
push: assets/xposed-sdk21-arm64/system/bin/app_process64_xposed -> /sdcard/tmp2
system/bin/app_process64_xposed
push: assets/xposed-sdk21-arm64/system/bin/app_process32_xposed -> /sdcard/tmp2
system/bin/app_process32_xposed
push: assets/xposed-sdk21-arm64/system/framework/XposedBridge.jar -> /sdcard/tm
2/system/framework/XposedBridge.jar
push: assets/xposed-sdk21-arm64/system/lib/libxposed_art.so -> /sdcard/tmp2/sys
em/lib/libxposed_art.so
push: assets/xposed-sdk21-arm64/system/lib/libsigchain.so -> /sdcard/tmp2/syste
/lib/libsigchain.so
push: assets/xposed-sdk21-arm64/system/lib/libart.so -> /sdcard/tmp2/system/lib
libart.so
push: assets/xposed-sdk21-arm64/system/lib/libart-compiler.so -> /sdcard/tmp2/s
stem/lib/libart-compiler.so
push: assets/xposed-sdk21-arm64/system/lib64/libxposed_art.so -> /sdcard/tmp2/s
stem/lib64/libxposed_art.so
push: assets/xposed-sdk21-arm64/system/lib64/libsigchain.so -> /sdcard/tmp2/sys
em/lib64/libsigchain.so
push: assets/xposed-sdk21-arm64/system/lib64/libart.so -> /sdcard/tmp2/system/l
b64/libart.so
push: assets/xposed-sdk21-arm64/system/lib64/libart-disassembler.so -> /sdcard/
mp2/system/lib64/libart-disassembler.so
push: assets/xposed-sdk21-arm64/system/xposed.prop -> /sdcard/tmp2/system/xpose
.prop
push: assets/xposed-sdk21-arm64/flash-script.sh -> /sdcard/tmp2/flash-script.sh
22 files pushed. 0 files skipped.
5543 KB/s (12807304 bytes in 2.256s)
C:\Users\**************\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c cp -r /sdcard/tmp2/* /system/tmp/
su -c cp -r /sdcard/tmp2/* /system/tmp/
[email protected]_Z00E_1:/ $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ $ dir
dir
/system/bin/sh: dir: not found
127|[email protected]_Z00E_1:/ $ ls -la
ls -la
drwxrwxr-x system system 2015-01-01 01:01 ADF
drwxrwxr-x system system 1970-01-01 01:00 APD
drwxr-xr-x root system 2015-10-28 09:55 Removable
drwxr-xr-x root root 1970-02-14 02:30 acct
drwxrwxrwx root root 2015-10-27 17:30 asdf
drwxrwxr-x system system 1970-01-01 01:00 asusfw
drwxr-xr-x root root 1970-01-01 01:00 bin
drwxrwx--- system cache 2015-10-27 15:05 cache
lrwxrwxrwx root root 1970-01-01 01:00 charger -> /sbin/healthd
dr-x------ root root 1970-02-14 02:30 config
lrwxrwxrwx root root 1970-02-14 02:30 d -> /sys/kernel/debug
drwxrwx--x system system 2015-10-21 17:25 data
-rw-r--r-- root root 363 1970-01-01 01:00 default.prop
drwxr-xr-x root root 2015-10-28 09:55 dev
lrwxrwxrwx root root 1970-02-14 02:30 etc -> /system/etc
drwxrwxrwx shell shell 1970-01-01 05:04 factory
-rw-r--r-- root root 36566 1970-01-01 01:00 file_contexts
dr-xr-x--- system system 1970-01-01 01:00 firmware
-rw-r----- root root 922 1970-01-01 01:00 fstab.goldfish
-rw-r----- root root 1063 1970-01-01 01:00 fstab.qcom
-rwxr-x--- root root 408616 1970-01-01 01:00 init
-rwxr-x--- root root 3058 1970-01-01 01:00 init.asus.debugtool.rc
-rwxr-x--- root root 15324 1970-01-01 01:00 init.asus.rc
-rwxr-x--- root root 1577 1970-01-01 01:00 init.asus.thermald.rc
-rwxr-x--- root root 13380 1970-01-01 01:00 init.asus.usb.rc
-rwxr-x--- root root 3265 1970-01-01 01:00 init.class_main.sh
-rwxr-x--- root root 1178 1970-01-01 01:00 init.environ.rc
-rwxr-x--- root root 2836 1970-01-01 01:00 init.goldfish.rc
-rwxr-x--- root root 1730 1970-01-01 01:00 init.mdm.sh
-rwxr-x--- root root 7054 1970-01-01 01:00 init.qcom.class_core.sh
-rwxr-x--- root root 6920 1970-01-01 01:00 init.qcom.early_boot.sh
-rwxr-x--- root root 12878 1970-01-01 01:00 init.qcom.factory.sh
-rwxr-x--- root root 31160 1970-01-01 01:00 init.qcom.rc
-rwxr-x--- root root 6987 1970-01-01 01:00 init.qcom.sh
-rwxr-x--- root root 2965 1970-01-01 01:00 init.qcom.syspart_fixup.
h
-rwxr-x--- root root 60593 1970-01-01 01:00 init.qcom.usb.rc
-rwxr-x--- root root 10516 1970-01-01 01:00 init.qcom.usb.sh
-rwxr-x--- root root 24085 1970-01-01 01:00 init.rc
-rwxr-x--- root root 7223 1970-01-01 01:00 init.target.rc
-rwxr-x--- root root 1927 1970-01-01 01:00 init.trace.rc
-rwxr-x--- root root 3910 1970-01-01 01:00 init.usb.rc
-rwxr-x--- root root 301 1970-01-01 01:00 init.zygote32.rc
-rwxr-x--- root root 531 1970-01-01 01:00 init.zygote64_32.rc
drwxrwxr-x root system 1970-02-14 02:30 mnt
drwxrwx--x system system 1970-01-01 01:00 persist
dr-xr-xr-x root root 1970-01-01 01:00 proc
-rw-r--r-- root root 2832 1970-01-01 01:00 property_contexts
drwxr-xr-x root root 1970-01-01 01:00 res
drwx------ root root 2015-09-15 07:03 root
drwxr-x--- root root 1970-01-01 01:00 sbin
lrwxrwxrwx root root 1970-02-14 02:30 sdcard -> /storage/emula
ed/legacy
-rw-r--r-- root root 746 1970-01-01 01:00 seapp_contexts
-rw-r--r-- root root 76 1970-01-01 01:00 selinux_version
-rw-r--r-- root root 187085 1970-01-01 01:00 sepolicy
-rw-r--r-- root root 10475 1970-01-01 01:00 service_contexts
drwxr-x--x root sdcard_r 1970-02-14 02:30 storage
dr-xr-xr-x root root 1970-02-14 02:30 sys
drwxr-xr-x root root 2015-10-28 09:56 system
drwxr-xr-x root root 2015-10-28 09:55 tmp-mksh
lrwxrwxrwx root root 1970-02-14 02:30 tombstones -> /data/tomb
tones
-rw-r--r-- root root 323 1970-01-01 01:00 ueventd.goldfish.rc
-rw-r--r-- root root 11724 1970-01-01 01:00 ueventd.qcom.rc
-rw-r--r-- root root 4546 1970-01-01 01:00 ueventd.rc
lrwxrwxrwx root root 1970-02-14 02:30 vendor -> /system/vendor
-rw-r--r-- root root 524 1970-01-01 01:00 verity_key
[email protected]_Z00E_1:/ $ ls -la tmp-mksh
ls -la tmp-mksh
-rwxr-xr-x root root 285016 2015-10-28 09:55 tmp-mksh
[email protected]_Z00E_1:/ $ ls -la system/tmp
ls -la system/tmp
drwxrwx--- root root 2015-10-28 09:57 META-INF
-rw------- root root 5602 2015-10-28 10:05 flash-script.sh
drwxrwx--- root root 2015-10-28 09:57 system
[email protected]_Z00E_1:/ $ cp system/tmp/flash-script.sh tmp-mksh
cp system/tmp/flash-script.sh tmp-mksh
cp: system/tmp/flash-script.sh: Permission denied
1|[email protected]_Z00E_1:/ $ cd system/tmp
cd system/tmp
[email protected]_Z00E_1:/system/tmp $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/system/tmp $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/system/tmp $ su
su
[email protected]_Z00E_1:/system/tmp # ./flash-script.sh
./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/system/tmp #
C:\Users\**********\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ $ chmod 777 tmp-mksh
chmod 777 tmp-mksh
Unable to chmod tmp-mksh: Read-only file system
10|[email protected]_Z00E_1:/ $ su
su
[email protected]_Z00E_1:/ # mount -o remount,rw /tmp-mksh
mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # mount -o remount,rw /
mount -o remount,rw /
[email protected]_Z00E_1:/ # su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ # su -c mount -o remount,rw /tmp-mksh
su -c mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # shell
shell
tmp-mksh: shell: not found
127|[email protected]_Z00E_1:/ # su -c mount -o remount,rw /tmp-mksh
su -c mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # su -c mount -o remount,rw /tmp-mksh
su -c mount -o remount,rw /tmp-mksh
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|[email protected]_Z00E_1:/ # su -c mount -o remount,rw /system
su -c mount -o remount,rw /system
[email protected]_Z00E_1:/ # su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ # chmod 777 tmp-mksh
chmod 777 tmp-mksh
[email protected]_Z00E_1:/ # su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ # su -c cp system/tmp/flash-script.sh /tmp-mksh
su -c cp system/tmp/flash-script.sh /tmp-mksh
[email protected]_Z00E_1:/ # su -c ./flash-script.sh
su -c ./flash-script.sh
tmp-mksh: ./flash-script.sh: not found
127|[email protected]_Z00E_1:/ # ls -la /tmp-mksh
ls -la /tmp-mksh
-rw------- root root 5602 2015-10-28 10:16 flash-script.sh
-rwxr-xr-x root root 285016 2015-10-28 09:55 tmp-mksh
[email protected]_Z00E_1:/ # shell
shell
tmp-mksh: shell: not found
127|[email protected]_Z00E_1:/ # cd tmp-mksh
cd tmp-mksh
[email protected]_Z00E_1:/tmp-mksh # ./flash-script.sh
./flash-script.sh
tmp-mksh: ./flash-script.sh: can't execute: Permission denied
126|[email protected]_Z00E_1:/tmp-mksh # chmod 777 flash-script.sh
chmod 777 flash-script.sh
[email protected]_Z00E_1:/tmp-mksh # ./flash-script.sh
./flash-script.sh
******************************
Xposed framework installer zip
******************************
- Mounting /system and /vendor read-write
- Checking environment
./flash-script.sh[113]: head: not found
./flash-script.sh[113]: sed: not found
./flash-script.sh[115]: cut: not found
./flash-script.sh[115]: head: not found
./flash-script.sh[115]: sed: not found
./flash-script.sh[116]: cut: not found
./flash-script.sh[116]: sed: not found
./flash-script.sh[116]: head: not found
./flash-script.sh[117]: head: not found
./flash-script.sh[117]: sed: not found
./flash-script.sh[119]: head: not found
./flash-script.sh[119]: sed: not found
./flash-script.sh[120]: sed: not found
./flash-script.sh[120]: head: not found
./flash-script.sh[121]: sed: not found
./flash-script.sh[121]: head: not found
./flash-script.sh[122]: head: not found
./flash-script.sh[122]: sed: not found
Xposed version:
! Wrong platform: arm
! This file is for:
! Please download the correct package
! for your platform/ROM!
1|[email protected]_Z00E_1:/tmp-mksh # ./flash-script.sh
Click to expand...
Click to collapse
SOLVED!
Code:
C:\Users\********\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ $ su
su
[email protected]_Z00E_1:/ # mount -o remount,rw /system
mount -o remount,rw /system
[email protected]_Z00E_1:/ # mkdir /system/tmp
mkdir /system/tmp
mkdir failed for /system/tmp, File exists
255|[email protected]_Z00E_1:/ # mkdir /sdcard/tmp2
mkdir /sdcard/tmp2
mkdir failed for /sdcard/tmp2, File exists
255|[email protected]_Z00E_1:/ # ls -la /sdcard/tmp2
ls -la /sdcard/tmp2
drwxrwx--- root sdcard_r 2015-10-28 11:04 META-INF
-rw-rw---- root sdcard_r 5602 2015-10-28 11:04 flash-script.sh
drwxrwx--- root sdcard_r 2015-10-28 11:04 system
[email protected]_Z00E_1:/ # ls -la system/tmp
ls -la system/tmp
drwxrwx--- root root 2015-10-28 11:01 META-INF
-rwxrwxrwx root root 5602 2015-10-28 11:04 flash-script.sh
drwxrwx--- root root 2015-10-28 11:01 system
[email protected]_Z00E_1:/ # chmod 777 system/tmp/flash-script.sh
chmod 777 system/tmp/flash-script.sh
[email protected]_Z00E_1:/ # cd system/tmp
cd system/tmp
[email protected]_Z00E_1:/system/tmp # ./flash-script.sh
./flash-script.sh
******************************
Xposed framework installer zip
******************************
- Mounting /system and /vendor read-write
- Checking environment
Xposed version: 75
- Placing files
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "gz
ip"; caused by library "libsigchain.so" not found
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "ch
own"; caused by library "libsigchain.so" not found
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "ch
mod"; caused by library "libsigchain.so" not found
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "cp
"; caused by library "libsigchain.so" not found
- Done
[email protected]_Z00E_1:/system/tmp # reboot
reboot
To fix your problems you can try this, it worked for me, download this file and place it in the Jyrachy's Xposed ZE500KL folder (with "InstallXposedFramework" and "InstallXposedInstaller" files)
File: https://drive.google.com/file/d/0B7qd8mpcLFB2UGoxS1MwZExJOVk/view?usp=sharing
then after opening it write these commands in the shell
Code:
su
mount -o remount,rw /
mount -o remount,rw /system
chmod 777 system/tmp/flash-script.sh
cd system/tmp
./flash-script.sh
reboot
Click Here!
It's my way to install it. Thank you miau9202 and Jhyrarchy!
I'll update my tool.
but is strange worked onnmine at first try XD
Ok, i noticed one serious problem
Don't install Snapprefs with xposed. I did it, and when i wanted to reboot, some error appeared. So i click on soft reboot, and... android doesn't want to start
I'm flashing now my phone, and i hope it will boot
Ok, added a list of working and not working modules.
Also fixed the problem, i just added a recursive chmod to the /system/tmp folder before launching the script
96DANGER96 said:
SOLVED!
Code:
C:\Users\********\Desktop\Xposed ZE500KL>adb shell
[email protected]_Z00E_1:/ $ su -c mount -o remount,rw /
su -c mount -o remount,rw /
[email protected]_Z00E_1:/ $ su
su
[email protected]_Z00E_1:/ # mount -o remount,rw /system
mount -o remount,rw /system
[email protected]_Z00E_1:/ # mkdir /system/tmp
mkdir /system/tmp
mkdir failed for /system/tmp, File exists
255|[email protected]_Z00E_1:/ # mkdir /sdcard/tmp2
mkdir /sdcard/tmp2
mkdir failed for /sdcard/tmp2, File exists
255|[email protected]_Z00E_1:/ # ls -la /sdcard/tmp2
ls -la /sdcard/tmp2
drwxrwx--- root sdcard_r 2015-10-28 11:04 META-INF
-rw-rw---- root sdcard_r 5602 2015-10-28 11:04 flash-script.sh
drwxrwx--- root sdcard_r 2015-10-28 11:04 system
[email protected]_Z00E_1:/ # ls -la system/tmp
ls -la system/tmp
drwxrwx--- root root 2015-10-28 11:01 META-INF
-rwxrwxrwx root root 5602 2015-10-28 11:04 flash-script.sh
drwxrwx--- root root 2015-10-28 11:01 system
[email protected]_Z00E_1:/ # chmod 777 system/tmp/flash-script.sh
chmod 777 system/tmp/flash-script.sh
[email protected]_Z00E_1:/ # cd system/tmp
cd system/tmp
[email protected]_Z00E_1:/system/tmp # ./flash-script.sh
./flash-script.sh
******************************
Xposed framework installer zip
******************************
- Mounting /system and /vendor read-write
- Checking environment
Xposed version: 75
- Placing files
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "gz
ip"; caused by library "libsigchain.so" not found
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "ch
own"; caused by library "libsigchain.so" not found
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "ch
mod"; caused by library "libsigchain.so" not found
WARNING: linker: could not load library "libsigchain.so" from LD_PRELOAD for "cp
"; caused by library "libsigchain.so" not found
- Done
[email protected]_Z00E_1:/system/tmp # reboot
reboot
To fix your problems you can try this, it worked for me, download this file and place it in the Jyrachy's Xposed ZE500KL folder (with "InstallXposedFramework" and "InstallXposedInstaller" files)
File: https://drive.google.com/file/d/0B7qd8mpcLFB2UGoxS1MwZExJOVk/view?usp=sharing
then after opening it write these commands in the shell
Code:
su
mount -o remount,rw /
mount -o remount,rw /system
chmod 777 system/tmp/flash-script.sh
cd system/tmp
./flash-script.sh
reboot
Click to expand...
Click to collapse
How come when I type the commands, the output is just a copy of what I just typed?
---------- Post added at 01:52 AM ---------- Previous post was at 01:15 AM ----------
bohenian said:
How come when I type the commands, the output is just a copy of what I just typed?
Click to expand...
Click to collapse
nevermind, I just figured it. Thanks again!
can you tell us as well what you've done ? thx
is this possible for ZE550KL? thanks
Added to index, thanks for your work!
is it safe for ze500kg? and how about gravitybox module does it working well?
cpuz99 said:
is it safe for ze500kg? and how about gravitybox module does it working well?
Click to expand...
Click to collapse
I couldn't get gravity box to works 100%.
I never tried personally on ZE500KG, but someone else said it works.
Why not work with a Stock Rom 1:13?
Mandrakerj said:
Why not work with a Stock Rom 1:13?
Click to expand...
Click to collapse
what do you mean?
I'm on stock and it worked
I've mentioned this elsewhere in some of my howtos, but I think this feature is important and useful enough to get its own howto.
Nowadays in the current Android OS version a lot filesystems are mounted read-only and remounting the filesystem read-write does not work anymore. Therefor the files in these filesystems can not be changed anymore.
That's pretty good from a safety standpoint, but sometimes a real showstopper.
But fortunately Android is a Linux based system and therefor there is a solution for this problem called bind mounts. bind mounts are some kind of symbolic links that only exist in memory and are therefor also supported for read-only mounted filesystems. Of course, this is a very simple description for this Linux feature but it should be enough here -- for more in depth details I recommend the Linux documentation.
bind mounts are used by Magisk but they can also be used manually without an installed Magisk - the only requirement for using it manually is root access to the phone.
Here is an example to replace the file /system/etc/hosts with a writable file using a bind mount:
Spoiler: replace the file /system/etc/hosts with a changed version of the file
Code:
#
# use a filesystem that supports all necessary permissions and attributes for the new file
#
# Therefor files in /sdcard/<something> can not be used to replace most of the files in the read-only filesystems
#
# Make sure that the file used to replace the other file is readable by all user that can also read the original file
#
ASUS_I006D:/ # cp -a /system/etc/hosts /data/local/tmp/my_hosts
ASUS_I006D:/ #
# add some additional data to the new file
#
ASUS_I006D:/ # echo "127.0.0.1 www.heise.de" >>/data/local/tmp/my_hosts
ASUS_I006D:/ #
# check the result
#
ASUS_I006D:/ # cat /data/local/tmp/my_hosts
127.0.0.1 localhost
::1 ip6-localhost
127.0.0.1 www.heise.de
ASUS_I006D:/ #
ASUS_I006D:/ # ls -l /system/etc/hosts /data/local/tmp/my_hosts
-rw-r--r-- 1 root root 80 2023-06-11 14:57 /data/local/tmp/my_hosts
-rw-r--r-- 1 root root 56 2009-01-01 01:00 /system/etc/hosts
ASUS_I006D:/ #
# "replace" the file /system/etc/hosts now
#
ASUS_I006D:/ # su - -c mount -o bind /data/local/tmp/my_hosts /system/etc/hosts
ASUS_I006D:/ #
# check the results
#
ASUS_I006D:/ # cat /system/etc/hosts
127.0.0.1 localhost
::1 ip6-localhost
127.0.0.1 www.heise.de
ASUS_I006D:/ #
# add some more data to the file
#
ASUS_I006D:/ # echo "127.0.0.1 www.spiegle.de" >>/system/etc/hosts
ASUS_I006D:/ #
# check the result
#
ASUS_I006D:/ # cat /system/etc/hosts
127.0.0.1 localhost
::1 ip6-localhost
127.0.0.1 www.heise.de
127.0.0.1 www.spiegle.de
ASUS_I006D:/ #
bind mounts are only possible for existing files - bind mounts for non-existent files will fail, e.g:
Spoiler: Example for a bind mount for an non-existent file
Code:
ASUS_I006D:/ $ ls /system/bin/bash
ls: /system/bin/bash: No such file or directory
1|ASUS_I006D:/ $
1|ASUS_I006D:/ $ su - -c mount -o bind /system/bin/sh /system/bin/bash
mount: '/system/bin/sh'->'/system/bin/bash': No such file or directory
1|ASUS_I006D:/ $
bind mounts are also allowed for directories therefor to "create" a new file just copy the directory, create the new file in that new directory, and then do a bind mount for the existing directory.
Example:
Spoiler: create the executable bash by copying the executable sh
Code:
#
# "create" the executable "bash" by copying the executable "sh"
#
# This is only an example that should work on every phone! In real life you should copy a real bash executable to the new directory
#
#
# check for a bash executable in the PATH
#
ASUS_I006D:/ $ which bash
1|ASUS_I006D:/ $
# -> bash does currently not exist on the phone
# create a new directory to be used for the bind mount /system/xbin
#
# Note that this directory must be on a filesystem supporting the standard linux file permissions therefor a directory in /sdcard/<something> is not possible here
# And again the directory used must be readable by all uesrs.
#
ASUS_I006D:/ $ mkdir /data/local/tmp/xbin
ASUS_I006D:/ $
# copy all files from /system/xbin to the new directory
#
ASUS_I006D:/ $ su - -c cp -a -r /system/xbin/* /data/local/tmp/xbin
ASUS_I006D:/ $
ASUS_I006D:/ $ ls -l /data/local/tmp/xbin
total 1772
lrwxrwxrwx 1 root shell 3 2009-01-01 01:00 vi -> vim
-rwxr-xr-x 1 root shell 1813848 2009-01-01 01:00 vim
ASUS_I006D:/ $
# create fake "bash" executable in the new directory
#
ASUS_I006D:/ $ cp /system/bin/sh /data/local/tmp/xbin/bash
ASUS_I006D:/ $
ASUS_I006D:/ $ ls -l /data/local/tmp/xbin
total 2080
-rwxr-xr-x 1 shell shell 312024 2023-06-11 13:56 bash
lrwxrwxrwx 1 root shell 3 2009-01-01 01:00 vi -> vim
-rwxr-xr-x 1 root shell 1813848 2009-01-01 01:00 vim
ASUS_I006D:/ $
# bind mount the directory /system/xbin on the new directory
#
ASUS_I006D:/ $ su - -c mount -o bind /data/local/tmp/xbin /system/xbin
ASUS_I006D:/ $
# and now there is "bash" executable in /system/xbin available
#
ASUS_I006D:/ $ ls -l /system/xbin
total 2080
-rwxr-xr-x 1 shell shell 312024 2023-06-11 13:56 bash
lrwxrwxrwx 1 root shell 3 2009-01-01 01:00 vi -> vim
-rwxr-xr-x 1 root shell 1813848 2009-01-01 01:00 vim
ASUS_I006D:/ $ which bash
/system/xbin/bash
# You can now even copy additional files to the bind mounted directory, e.g.:
ASUS_I006D:/ $ cp /sdcard/Download/zip /system/xbin
ASUS_I006D:/ $
ASUS_I006D:/ $ chmod 755 /system/xbin/zip
ASUS_I006D:/ $
ASUS_I006D:/ $ ls -ltr /system/xbin
total 2576
-rwxr-xr-x 1 root shell 1813848 2009-01-01 01:00 vim
lrwxrwxrwx 1 root shell 3 2009-01-01 01:00 vi -> vim
-rwxr-xr-x 1 shell shell 312024 2023-06-11 13:56 bash
-rwxr-xr-x 1 shell shell 503992 2023-06-11 14:03 zip
ASUS_I006D:/ $
ASUS_I006D:/ $ zip -h
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
Zip 3.0 (July 5th 2008). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
The default action is to add or replace zipfile entries from list, which
can include the special name - to compress standard input.
If zipfile and list are omitted, zip compresses stdin to stdout.
-f freshen: only changed files -u update: only changed or new files
-d delete entries in zipfile -m move into zipfile (delete OS files)
-r recurse into directories -j junk (don't record) directory names
-0 store only -l convert LF to CR LF (-ll CR LF to LF)
-1 compress faster -9 compress better
-q quiet operation -v verbose operation/print version info
-c add one-line comments -z add zipfile comment
[email protected] read names from stdin -o make zipfile as old as latest entry
-x exclude the following names -i include only the following names
-F fix zipfile (-FF try harder) -D do not add directory entries
-A adjust self-extracting exe -J junk zipfile prefix (unzipsfx)
-T test zipfile integrity -X eXclude eXtra file attributes
-y store symbolic links as the link instead of the referenced file
-e encrypt -n don't compress these suffixes
-h2 show more help
Hints
bind mounts are supported by the filesystems ext4, vfat, f2fs. and most probably a lot of other filesystems used on machines running Android.
Be careful when replacing executables, especially when replacing an important file like /system/bin/sh. And you should never replace a file that is just a symbolic link for toybox or busybox.
bind mounts created while the OS is running are only useful for files that are dynamically read by the OS. It does not make sense to replace for example one of the *.rc files using a bind mount because these files are only read once while booting the OS.
The filesystems used for source and target for a bind mount should support the same set of attributes and permissions or the result may not be like expected. E.g. you can not bind mount an executable with a file in the directory /sdcard/<something> because that filesystem for /sdcard does not support the executable permission:
Spoiler: Example for bind mount an executable in /sdcard/Download
Code:
ASUS_I006D:/ $ ls -l /bin/ziptool
-rwxr-xr-x 1 root shell 28688 2009-01-01 01:00 /bin/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ cp -a /bin/ziptool /sdcard/Download/
ASUS_I006D:/ $
ASUS_I006D:/ $ chmod 755 /sdcard/Download/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ ls -l /bin/ziptool /sdcard/Download/ziptool
-rwxr-xr-x 1 root shell 28688 2009-01-01 01:00 /bin/ziptool
-rw-rw---- 1 u0_a121 media_rw 28688 2023-06-11 18:09 /sdcard/Download/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ su - -c mount -o bind /sdcard/Download/ziptool /bin/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ ziptool
/system/bin/sh: ziptool: can't execute: Permission denied
126|ASUS_I006D:/ $ /bin/ziptool
/system/bin/sh: /bin/ziptool: can't execute: Permission denied
126|ASUS_I006D:/ $ ls -l /bin/ziptool
-rw-rw---- 1 u0_a121 media_rw 28688 2023-06-11 18:09 /bin/ziptool
ASUS_I006D:/ $
The source for the bind mount must be in a directory that is readable for all user that use the bind mounted file, e.g.
Spoiler: Example for bind mount an executable in a directory not accessable by all user
Code:
ASUS_I006D:/ $ su - -c cp -a /bin/ziptool /data/adb/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ su - -c ls -l /data/adb/ziptool
-rwxr-xr-x 1 root shell 28688 2009-01-01 01:00 /data/adb/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ su - -c mount -o bind /data/adb/ziptool /bin/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ ziptool
/system/bin/sh: ziptool: inaccessible or not found
127|ASUS_I006D:/ $
127|ASUS_I006D:/ $ file /bin/ziptool
/bin/ziptool: cannot open: Permission denied
ASUS_I006D:/ $
Use the mount command to check if a file is bind mounted. e.g.
Spoiler: Check if a file is bind mounted
Code:
|ASUS_I006D:/ # mount | grep /system/etc/hosts
1|ASUS_I006D:/ #
1|ASUS_I006D:/ # mount -o bind /data/local/tmp/hosts /system/etc/hosts
ASUS_I006D:/ #
ASUS_I006D:/ # mount | grep /system/etc/hosts
/dev/block/dm-33 on /system/etc/hosts type f2fs (rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,fsync_mode=nobarrier)
ASUS_I006D:/ #
To remove a bind mount just do a umount, e.g:
Spoiler: Example for remove a bind mount
Code:
#
# remove the bind mount
#
ASUS_I006D:/ $ su - -c umount /bin/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ which ziptool
/system/bin/ziptool
ASUS_I006D:/ $ ziptool
ziptool: run as ziptool with unzip or zipinfo as the first argument, or symlink
1|ASUS_I006D:/ $
Another method to remove all bind mounts is a reboot of the phone
It's recommended to use a sub directory in the directory /data/local/tmp for executables used in bind mounts, example:
Spoiler: Example for bind mount an executable in /data/local/tmp/
Code:
ASUS_I006D:/ $ mkdir /data/local/tmp/bind_mounts
ASUS_I006D:/ $
ASUS_I006D:/ $ cp -a /bin/ziptool /data/local/tmp/bind_mounts
ASUS_I006D:/ $
ASUS_I006D:/ $ ls -l /data/local/tmp/bind_mounts/ziptool
-rwxr-xr-x 1 shell shell 28688 2009-01-01 01:00 /data/local/tmp/bind_mounts/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ su - -c mount -o bind /data/local/tmp/bind_mounts/ziptool /bin/ziptool
ASUS_I006D:/ $
ASUS_I006D:/ $ ziptool
ziptool: run as ziptool with unzip or zipinfo as the first argument, or symlink
1|ASUS_I006D:/ $
bind mounts are also useful for writable files to be able to revert the changes to a file. Example:
Spoiler: Example for using bind mount for a writable file
Code:
ASUS_I006D:/ $ cat /data/local/tmp/testfile.txt
This is a test file
ASUS_I006D:/ $
#
# create a copy of the writable file
#
ASUS_I006D:/ $ cat /data/local/tmp/testfile_for_tests.txt
This is another test file
#
# bind mount the file with the copy of the file
#
ASUS_I006D:/ $ su - -c mount -o bind /data/local/tmp/testfile_for_tests.txt /data/local/tmp/testfile.txt
ASUS_I006D:/ $
#
# check the result
#
ASUS_I006D:/ $ cat /data/local/tmp/testfile.txt
This is another test file
ASUS_I006D:/ $
#
# add some data to the bind mounted file now
#
ASUS_I006D:/ $ echo "This text will not change the original file" >> /data/local/tmp/testfile.txt
ASUS_I006D:/ $
ASUS_I006D:/ $ cat /data/local/tmp/testfile.txt
This is another test file
This text will not change the original file
ASUS_I006D:/ $
#
# remove the bind mount to restore the original file contents
#
ASUS_I006D:/ $ su - -c umount /data/local/tmp/testfile.txt
ASUS_I006D:/ $
ASUS_I006D:/ $ cat /data/local/tmp/testfile.txt
This is a test file
ASUS_I006D:/ $
Of course, this can also be done by creating a backup copy of the file and restoring the backup copy if necessary. But if the changes to the file make the phone unusable or cause it to crash, it is more difficult to restore the file. If you use a bind mount, the file will be restored "automatically" at the next reboot.
Notes
see the forum entry How to upgrade the OS with another Android "distribution" for an example usage for this method
See the forum entry How To change any file or directory using Magisk for how to use this method in Magisk module for persisent changes
See the forum entry How to make files in /system writable for another exampe how to use this feature in Magisk
Up to version 25.x of Magisk (at least in Magisk v24.x and v25.x) Magisk mounted the /system/bin directory read-write, so that temporary changes for the files in /system/bin were possible. But because of the more or less not existent free space in the filesystem used for /system the use of this feature was very limited. And this feature does not exist in Magisk v26.x or newer anymore.
(see also this forum message: https://forum.xda-developers.com/t/magisk-general-support-discussion.3432382/page-2815#post-88617909 )