Commit | Line | Data |
---|---|---|
ff51d66d S |
1 | #!/system/bin/.krsh |
2 | ||
3 | API_LEVEL=$(cat /system/build.prop | grep "ro.build.version.sdk=" | dd bs=1 skip=21 count=2) | |
4 | SUPERUSER_NAME=Kinguser | |
5 | ||
6 | ||
7 | func_kr_pidof() { | |
8 | /system/xbin/krdem kingroot-dev 3 $1 | |
9 | } | |
10 | ||
11 | func_wait_system_server() | |
12 | { | |
13 | while [ -z "$(func_kr_pidof system_server)" ]; do | |
14 | echo "waiting for system_server" | |
15 | sleep 1 | |
16 | done | |
17 | } | |
18 | ||
19 | func_wait_package_manager() | |
20 | { | |
21 | while [ ! -z "$(func_kr_pidof system_server)" ]; do | |
22 | echo "waiting for package_manager" | |
23 | service list | grep -p "android.content.pm.IPackageManager" > /dev/null 2>&1 && break | |
24 | sleep 1 | |
25 | done | |
26 | sleep 1 | |
27 | } | |
28 | ||
29 | func_kr_isInstalled() { | |
30 | pm path com.kingroot.kinguser | grep -q "package:" > /dev/null && echo 1 || echo 0 | |
31 | } | |
32 | ||
33 | func_bypass_coolsec() { | |
34 | func_wait_system_server | |
35 | func_wait_package_manager | |
36 | ||
37 | /system/xbin/krdem kingroot-dev 100002 | |
38 | ||
39 | echo "rooting ..." | |
40 | mount -o remount,rw /system | |
41 | mount | |
42 | ||
43 | if [ -f "/system/xbin/ku.sud" ]; then | |
44 | cat /system/xbin/ku.sud > /system/xbin/su | |
45 | chown 0.0 /system/xbin/su | |
46 | chmod 00755 /system/xbin/su | |
47 | chcon u:object_r:system_file:s0 /system/xbin/su | |
48 | ln -s /system/xbin/su /system/bin/su | |
49 | chown 0.0 /system/bin/su | |
50 | chmod 00755 /system/bin/su | |
51 | chcon u:object_r:system_file:s0 /system/bin/su | |
52 | fi | |
53 | ||
54 | if [ "$(func_kr_isInstalled)" != "1" ]; then | |
55 | KU_SRC_FULL_PATH=/system/app/$SUPERUSER_NAME.apk.cool | |
56 | if [ "$API_LEVEL" -ge "21" ]; then | |
57 | KU_SRC_FULL_PATH=/system/app/$SUPERUSER_NAME/$SUPERUSER_NAME.apk.cool | |
58 | fi | |
59 | echo "$KU_SRC_FULL_PATH" | |
60 | ||
61 | if [ -f "$KU_SRC_FULL_PATH" ]; then | |
62 | rm -f /data/local/tmp/$SUPERUSER_NAME.apk | |
63 | cat $KU_SRC_FULL_PATH > /data/local/tmp/$SUPERUSER_NAME.apk | |
64 | chown 0.0 /data/local/tmp/$SUPERUSER_NAME.apk | |
65 | chmod 00644 /data/local/tmp/$SUPERUSER_NAME.apk | |
66 | chcon u:object_r:system_file:s0 /data/local/tmp/$SUPERUSER_NAME.apk | |
67 | pm install -r -d /data/local/tmp/$SUPERUSER_NAME.apk | |
68 | rm -f /data/local/tmp/$SUPERUSER_NAME.apk | |
69 | fi | |
70 | else | |
71 | echo "ku already installed" | |
72 | fi | |
73 | ||
74 | mount -o remount,ro /system | |
75 | } | |
76 | ||
77 | func_do_and_launch() { | |
78 | if [ -f "/system/xbin/krdem" ]; then | |
79 | if [ -f "/sbin/coolsec" -o -f "/sbin/coolsec.kr" ]; then | |
80 | func_bypass_coolsec | |
81 | else | |
82 | /system/xbin/krdem kingroot-dev 100002 | |
83 | fi | |
84 | fi | |
85 | ||
86 | if [ -f "/system/xbin/ku.sud" ]; then | |
87 | echo "launching daemon ..." | |
88 | /system/xbin/ku.sud -d & | |
89 | fi | |
90 | } | |
91 | ||
92 | KR_TMP_FNAME=krperm | |
93 | ||
94 | LOG_FILE_TMP=/data/local/tmp/$KR_TMP_FNAME.txt.tmp | |
95 | LOG_FILE=/data/local/tmp/$KR_TMP_FNAME.txt | |
96 | ||
97 | rm -f $LOG_FILE_TMP | |
98 | rm -f $LOG_FILE | |
99 | ||
100 | setenforce 0 | |
101 | /system/xbin/supolicy --live | |
102 | /system/xbin/supolicy --live "permissive init" | |
103 | /system/xbin/supolicy --live "permissive kernel" | |
104 | /system/xbin/supolicy --live "permissive toolbox" | |
105 | /system/xbin/supolicy --live "permissive toolbox_exec" | |
106 | /system/xbin/supolicy --live "permissive s_init_shell" | |
107 | /system/xbin/supolicy --live "permissive init_shell" | |
108 | /system/xbin/supolicy --live "permissive shell" | |
109 | /system/xbin/supolicy --live "permissive su" | |
110 | /system/xbin/supolicy --live "permissive adbd" | |
111 | setenforce 0 | |
112 | ||
113 | echo "[$0] begin ..." > $LOG_FILE_TMP | |
114 | chmod 0777 $LOG_FILE_TMP | |
115 | ||
116 | id >> $LOG_FILE_TMP 2>&1 | |
117 | echo "API_LEVEL=$API_LEVEL" >> $LOG_FILE_TMP 2>&1 | |
118 | ||
119 | func_do_and_launch >> $LOG_FILE_TMP 2>&1 | |
120 | ||
121 | echo "[$0] end!" >> $LOG_FILE_TMP | |
122 | ||
123 | chcon u:object_r:shell_data_file:s0 $LOG_FILE_TMP | |
124 | chown shell.shell $LOG_FILE_TMP | |
125 | chmod 00644 $LOG_FILE_TMP | |
126 | mv $LOG_FILE_TMP $LOG_FILE | |
127 | #sync | |
128 | ||
129 | echo "launching debuggerd_real ..." | |
130 | /system/bin/debuggerd_real |