前言

tips:此文适用于安卓系统,root用户观看。为笔者原创的技术教程分享。

每次使用GameGuardian(GG修改器,以下简称gg)对其他应用进行内存搜索前,gg会将设备的selinux状态改为permissive宽容模式。一般来说,正常未root的设备,selinux状态都是enforcing的,而某些app会检测这个selinux状态,如不背单词app,如果检测到不是enforcing状态,那么app就会闪退,即使你使用shamiko+HMA隐藏root也依然会闪退。简单的解决办法就是,去终端执行setenforce 1将selinux改为enforcing状态。但是怎么说呢,这样会有点烦人,笔者每天都会用不背单词app打卡,但是每次用完gg都忘了把selinux改回去,每天一点开不背单词就是闪退,然后再去手动改selinux状态。于是笔者想,能不能做到启动不背单词app前自动执行setenforce 1呢,这样就可以正常使用不背单词了。

这里简单提一下,安卓系统是基于Linux的,在Linux中selinux是有两种状态的,分别是permissive,enforcing。在su即root身份下,我们可以用setenforce 1命令将设备的selinux状态改为enforcing,setenforce 0命令将selinux状态改为permissive。

基于上述场景,笔者想到了一个完美的解决办法,实测也是可行。下面一起来看看吧。

实现

实现原理是用Xposed edge pro+shell实现,以下以不背单词为例。 笔者是重度Xposed edge pro模块使用者,每一次换机都会装上这个模块,用了也有6年多了,这个模块也叫边缘手势模块,简单来说,就是可以提供更多边缘手势、触发器、shell命令等,你可以理解为是手机自带的全面屏手势的pro max plusssssss版本,软件非常精巧、强大且实用,从某种意义上将它还可以让你使用手机系统的体验更丝滑,这点从小返回和大返回这点就可以非常清晰直观的看出来。

主要思路是使用边缘手势模块启动的时候,先去执行setenforce 1,再配合am和pm命令启动app。

首先我们要获取到不背单词app的启动活动,可以用mt管理器抓取,这里我已经抓取了为:cn.com.langeasy.LangEasyLexis.activity.MainActivity,使用am命令启动该app

 am start cn.com.langeasy.LangEasyLexis/cn.com.langeasy.LangEasyLexis.activity.MainActivity

再考虑到冰箱用户,所以我们需要使用pm命令先解冻。这样app才能正常启动,使用pm命令解冻:

 pm enable cn.com.langeasy.LangEasyLexis

综上,在用边缘手势模块启动不背单词app前,我们需要执行的shell命令如下:

 setenforce 1
 pm enable cn.com.langeasy.LangEasyLexis
 am start cn.com.langeasy.LangEasyLexis/cn.com.langeasy.LangEasyLexis.activity.MainActivity

这里我们以边缘手势模块的pie功能为例子,将不背单词添加到pie中,不要直接添加不背单词app,添加为shell,shell命令复制上面的,可以参考下面操作步骤,久按弹出选项按钮,添加shell命令和app图标就可以了,如果你还是不知道怎么操作,加我QQ,v我50,我手把手教你:

此时相望不相闻,愿逐月华流照君。