自激活函数
说明
- 自激活模块目标是实现无电脑情况下对手机进行最大权限的操作,比如重启手机等
- 这个模块所有功能的前提是完成自激活的配置,详情请看 高级功能-自激活配置
提示
- 想要实现代理IPA永生,先完成自激活的配置,检测代理没有反应后使用killApp函数杀死,再使用openApp重启代理IPA
activeSelf.openLocalDevVpn 打开LocalDevVpn
- 打开LocalDevVpn 链接VPN
- 需要主程序在前台才能打开
- 适配EC 脱机版 6.1.0+
- @returns
{boolean}true 代表成功 false 代表失败
function main() {
// 打开外部的LocalDevVpn APP并且进行链接
var data = activeSelf.openLocalDevVpn();
logd(data);
sleep(3000)
activeSelf.disableLocalDevVpn();
}
main();
activeSelf.disableLocalDevVpn 断开LocalDevVpn
- 断开 LocalDevVpn 链接VPN
- 需要主程序在前台才能打开
- 适配EC 脱机版 6.1.0+
- @returns
{boolean}true 代表成功 false 代表失败
function main() {
// 打开外部的LocalDevVpn APP并且进行链接
var data = activeSelf.disableLocalDevVpn();
logd(data);
sleep(3000)
activeSelf.disableLocalDevVpn();
}
main();
activeSelf.mountImageOk 开发者镜像是否刷入成功
- 开发者镜像是否刷入成功
- 适配EC 脱机版 6.1.0+
- @returns
{boolean}true 代表成功 false 代表失败
function main() {
var data = activeSelf.mountImageOk();
logd(data);
}
main();
activeSelf.startActiveMySelf 启动自激活
- 启动自激活,请细看 自激活 章节的配置文档
- 适配EC 脱机版 6.1.0+
- @param timeout 超时时间 单位是毫秒
- @returns
{JSON}code = 0 代表成功,msg 代表错误信息
function testactive1_ext_vpn() {
logd("testactive1_self_vpn")
activeSelf.openSelfVpn();
// 休眠一下 防止捕捉不到vpn的错误消息
sleep(3000)
let ar = activeSelf.getOpenSelfVpnError()
if (ar != "") {
loge("打开自带VPN失败")
loge("错误消息是: " + activeSelf.getOpenSelfVpnError())
return false;
}
sleep(2000)
let acData = activeSelf.startActiveMySelf(30000);
if (!acData) {
loge("自激活失败,无任何返回");
return false;
}
if (acData["code"] != 0) {
loge("自激活失败, err : " + acData["msg"]);
return false;
}
logd("自激活成功!!")
logd("mount -> " + activeSelf.mountImageOk())
activeSelf.disableSelfVpn();
return true;
}
function main() {
testactive1_ext_vpn();
}
main();
activeSelf.openApp 打开APP
- 通过 bundleId 打开一个app
- 如果你打开的是代理IPA
- 记得先自激活一次 调用 activeSelf.startActiveMySelf
- 挂载镜 像 防止起不了代理ipa
- 适配EC 脱机版 6.1.0+
- @param bundleId 要启动的bundleid
- @param start_suspended 好像没什么意义,写0就行
- @param kill_existing 1 = 杀死存在的进程,好像不成功,写0就行
- @param timeout 超时时间 单位是毫秒
- @returns
{JSON}code = 0 代表成功,msg 代表错误信息,data 代表成功后的pid
function testOpenApp() {
// 如果你打开的是代理IPA
// 记得先自激活一次 调用 activeSelf.startActiveMySelf
// 挂载镜像 防止起步不代理ipa
logd("testOpenApp")
activeSelf.openSelfVpn();
// 休眠一下 防止捕捉不到vpn的错误消息
sleep(5000)
let ar = activeSelf.getOpenSelfVpnError()
if (ar != "") {
loge("打开自带VPN失败")
loge("错误消息是: " + activeSelf.getOpenSelfVpnError())
activeSelf.disableSelfVpn();
return false;
}
sleep(2000)
// 代理ipa的 bundleId
let runner = "com.cy.ceshi";
let rsd = activeSelf.openApp(runner, 0, 0,30000)
if (!rsd) {
loge("打开失败")
activeSelf.disableSelfVpn();
return false;
}
if (rsd["code"] != 0) {
loge("打开失败, err : " + rsd["msg"]);
activeSelf.disableSelfVpn();
return false;
}
logd(JSON.stringify(rsd))
logd("打开app成功")
activeSelf.disableSelfVpn();
return true;
}
function main() {
testOpenApp();
}
main();
activeSelf.killApp 杀死app
- 通过 bundleId 杀死一个app
- 适配EC 脱机版 6.1.0+
- @param bundleId 要启动的bundleid
- @param timeout 超时时间 单位是毫秒
- @returns
{JSON}code = 0 代表成功,msg 代表错误信息
function testKillApp() {
logd("testKillApp")
activeSelf.openSelfVpn();
// 休眠一下 防止捕捉不到vpn的错误消息
sleep(5000)
let ar = activeSelf.getOpenSelfVpnError()
if (ar != "") {
loge("打开自带VPN失败")
loge("错误消息是: " + activeSelf.getOpenSelfVpnError())
activeSelf.disableSelfVpn();
return false;
}
sleep(2000)
// 代理ipa的 bundleId
let runner = "com.cy.ceshi";
let rsd = activeSelf.killApp(runner,30000)
if (!rsd) {
loge("杀死进程失败")
activeSelf.disableSelfVpn();
return false;
}
if (rsd["code"] != 0) {
loge("杀死进程失败, err : " + rsd["msg"]);
activeSelf.disableSelfVpn();
return false;
}
logd(JSON.stringify(rsd))
logd("杀死app进程成功")
activeSelf.disableSelfVpn();
return true;
}
function main() {
testKillApp();
}
main();