forked from FlymeOS/tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsu-chmod
executable file
·67 lines (57 loc) · 1.48 KB
/
su-chmod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
# author: tangliuxiang
function usage()
{
echo "USAGE: su-chmod [OPTION] MODE FILE"
echo " -R, --recursive"
echo " change files and directories recursively"
}
prog="$0"
while [ -h "${prog}" ]; do
newProg=`/bin/ls -ld "${prog}"`
#echo ${newProg}
newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
if expr "x${newProg}" : 'x/' >/dev/null; then
prog="${newProg}"
else
progdir=`dirname "${prog}"`
prog="${progdir}/${newProg}"
fi
done
oldwd=`pwd`
progdir=`dirname "${prog}"`
cd "${progdir}"
progdir=`pwd`
prog="${progdir}"/`basename "${prog}"`
cd "${oldwd}"
if [ $# -lt 2 ]; then
usage
exit 1
fi
pushed_file=""
if [ "x$1" == "x--after-push" ] || [ "x$1" == "x-a" ]; then
pushed_file="--after-push $2"
shift
shift
fi
RECURSIVE=""
if [ "x$1" == "x--recursive" ] || [ "x$1" == "x-R" ]; then
RECURSIVE="-R"
shift
fi
permission=$1
target=$2
p_chmod="$progdir/phone-chmod"
phone_chmod=/data/local/tmp/phone-chmod
adb push $p_chmod $phone_chmod
adb shell chmod 777 $phone_chmod
chmod_cmd="$phone_chmod $pushed_file $RECURSIVE $permission $target"
if [[ $target == "/system/"* ]] || [[ $target == "system/"* ]];then
#echo "su -c \"mount -o remount,rw /system; $chmod_cmd ;mount -o remount,ro /system\"; exit $?" | adb shell
adb shell su -c mount -o remount,rw /system;
adb shell su -c $chmod_cmd
# adb shell su -c mount -o remount,ro /system
else
#echo "su -c \"$chmod_cmd; \"; exit $?" | adb shell
adb shell su -c $chmod_cmd;
fi