牙医大叔教程很好理解。
第一步:写一个测试的启动脚本。

主页. 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文档,最后,组题——牙叔教程。
声明
部分内容来自互联网。本教程仅供学习,禁止用于其他目的。


