开机自启动

核心提示牙叔教程 简单易懂第一步: 编写用于测试的开机运行脚本main.js"ui";ui.layout;第二步: 打包这个脚本, 打包单文件或者项目都可以,第三步: 添加启动类这里我们使用的是mt管理器,首先我们看看test.dex里面写的什么,

牙医大叔教程很好理解。

第一步:写一个测试的启动脚本。

主页. js

”用户界面”;ui.layout

步骤2:打包这个脚本,可以是一个文件,也可以是一个项目。

步骤3:添加启动类。

我们在这里使用机器翻译管理器,

首先我们看看test.dex里面写了什么,检查一下dex的工具。这里使用的是jadx-gui。

包com导入Android . content . broadcast receiver;导入Android . content . context;导入Android . content . intent;导入com . stardust . auto js . inrt . splash activity;public class autoboot activity扩展broadcast receiver { @ Override//Android . content . broadcast receiver public void on receive { if。equals) { Intent intent2 =新意图;intent 2 . set flags;context.startActivity} }}

这个代码继承了广播接收机。如果是开机广播,那就是intent2,intent2,也就是SplashActivity,也就是一般app的启动页面。

接下来,开始将这个引导类与mt Manager合并;

Android使用smali文件,上面类对应的smali是

。类公共Lcom/autoboot activity;。超级land roid/内容/广播接收器;。source“autoboot activity . Java”# direct methods . method公共构造函数V .registers 1。序言。第7行invoke-direct {p0},land roid/content/broadcast receiver;-> V return-void . end method # virtual methods . method public on receivev。寄存器6。param p1," Context " # land roid/content/Context;。param p2," Intent " # land roid/content/Intent;。序言。第10行invoke-virtual {p2},land roid/content/Intent;-> getActionLjava/lang/String;move-result-object v1 const-String v2," Android . intent . action . boot _ COMPLETED " invoke-virtual { v1,v2},Ljava/lang/String;->equalsZ移动-结果v1 if-eqz v1,:cond_1b。第11行new-instance v0,land roid/content/Intent;const-class v1,Lcom/stardust/auto js/inrt/splash activity;invoke-direct {v0,p1,v1},land roid/content/Intent;->诉第12行。本地v0,“意图2”:land roid/内容/意图;const/high16 v1,0x10000000 invoke-virtual {v0,v1},land roid/content/Intent;-> setFlagsLandroid/content/Intent;。第13行invoke-virtual {p1,v0},land roid/content/Context;->startActivityV。第15行。end local v 0 #“Intent 2”:land roid/content/Intent;:cond_1b return-void.end方法

使用mt管理器添加smali

第一步:使用mt Manager的安装包提取功能,提取我们刚刚打包的app。

mt的安卓包提取选项:打开mt,点击左上角的更多菜单,就可以看到安装包提取选项。

提取的apk的路径:

该文件已保存到/storage/emulated/0/MT2/apks/boot up _ 1 . 0 . 0 . apk。

检查应用程序的文件。

我们发现他有三个dex文件,所以我们选择了一个文件较小的dex。Classs2.dex文件最小,309k,就这样;

单击他,然后选择dex editor++

按j$,单击添加,

包名更改为com

类名已更改为AutoBootActivity

单击确定。

再次单击autobootactivity文件。

删除里面的所有内容,然后粘贴上面smali文件的内容。

点击保存,然后按返回键,保存并退出,确定。

那就完了。接下来,我们来测试一下它是否可以自行开启和启动。

卸载原来的app,然后安装我们修改后的app,

我先删除开机密码,然后打开app一次,给app自启动权限,然后重启手机;

嗯,我开机后等了一分钟,没用。

我也会给他后台弹出界面,再次重启手机,

嗯,开机后等了一分钟,还是不行。

省电策略,改成无限制,给他浮动窗口,

突然想到列表文件还没有添加。这是

注册静态广播并监控引导广播。

Mt manager查看修改后的应用程序,然后点击它并进行反编译。

搜索接收器标签,并将静态注册的广播代码贴在标签上,

只要把标签放在同一层,然后保存确认即可;

卸载原app,安装修改后的app。

打开app一次,授予他自启动权限,后台弹出界面,

进入开发者选项,勾选直接进入系统,

再次重启手机,开机后等待一分钟,还是没有反应;

这次多给一些许可,

浮动窗口

无限节能策略

等了48秒,启动成功。

环境

手机:小米11proMIUI: 13.0.12Android版本:12Autojs版本:9.1.22

正式表示感谢

js中autojs内部测试组成员的共享

大年夜,西苑,临海,无名姐姐

名人名言

思路最重要,其他,bing,stackoverflow,github,Android文档,autojs文档,最后,组题——牙叔教程。

声明

部分内容来自互联网。本教程仅供学习,禁止用于其他目的。

 
友情链接
鄂ICP备19019357号-22