使用定制ROM(客制ROM)来实现自动化脚本

Leijunge
Nov 18, 2024, 3:54:16 PM

实现自动化脚本时,传统上我们一般使用基于adb,root等方案,这些方案比较容易被app检测到,导致很多自动化任务和自动化测试无法进行。今天给大家介绍一个自动化脚本领域的终极方案,定制ROM,使用定制ROM(客制ROM)来实现自动化脚本是一种强大的方法,可以为你的设备带来更高的自定义能力和自动化能力。

一、什么是定制ROM

定制ROM(Custom ROM)是指基于Android操作系统源代码进行修改和优化后,由第三方开发者或社区创建的移动设备操作系统版本。它不同于设备制造商提供的官方ROM,允许用户对手机或平板电脑的软件进行更深入的个性化定制。

以下是定制ROM的一些主要特点和优势:

  1. 个性化:定制ROM通常允许用户根据个人喜好调整界面、功能,甚至添加独特的操作逻辑。

  2. 性能优化:通过移除不必要的系统应用(俗称“精简”)和优化代码,可以提高设备的运行速度和电池续航。

  3. 最新功能:定制ROM往往能更快地引入Android的最新版本功能,尤其是对于那些不再接收官方更新的旧设备,比如内置自动化脚本功能。

  4. 软件选择:用户可以选择不同的定制ROM,以获得不同的体验和功能集。

定制ROM的主要步骤通常包括:

  • 获取源代码:通常从Android开源项目(AOSP)或其他开源项目获取。
  • 修改和优化:根据开发者和用户的需要,对系统进行修改。
  • 编译:将修改后的代码编译成可安装的ROM包。

二、具体实战

在实际操作中并不需要我们自己去编译ROM(专业程度太高,一般人搞不定),可以找专业人士定制,或者购买现成的ROM。冰狐智能辅助自带支持各种定制ROM,现在就以冰狐智能辅助使用定制ROM来实现自动化脚本为例子来介绍具体如何使用定制ROM。

function main() {
    click(200, 700);
}

// 灭屏
function blacken() {
    exeCommand('sleep')
}
 
// 亮屏
function lighten() {
    exeCommand('wakeup')
}
 
// 一般不需要调用,因为开启冰狐后会自动关闭锁屏功能
function unlock() {
    exeCommand('unlock')
}
 
// 按下home
function home() {
    exeCommand('home')
}
 
// 按下power
function power() {
    exeCommand('power')
}
 
// 按下back
function back() {
    exeCommand('back')
}
 
// 停止某个应用程序
function stop(packageName) {
    exeCommand('stop', {packageName: packageName})
}
 
// 模拟点击
function click(x, y) {
    exeCommand('click', {x: x, y: y})
}
 
// 模拟点击
function tap(x, y) {
    exeCommand('tap', {x: x, y: y})
}
 
// 模拟点击
function swipe(x1, y1, x2, y2, duration) {
    if (undefined == duration) {
        duration = 500
    }
 
    exeCommand('swipe', {x1: x1, y1: y1, x2: x2, y2: y2, duration: duration})
}
 
// 长按
function longClick(x, y) {
    exeCommand('longClick', {x: x, y: y})
}
 
// 开启改输入法后才能使用iputText输入中文
function enableIME(enable) {
    exeCommand('enableIME', {enable: enable})
}
 
// 输入文本
function inputText(text) {
    exeCommand('inputText', {text: text})
}
 
// 剪切
function cut() {
    exeCommand('cut')
}
 
// 拷贝
function copy() {
    exeCommand('copy')
}
 
// 粘贴
function paste() {
    exeCommand('paste')
}
 
// 音量+
function valumeUp() {
    exeCommand('valumeUp')
}
 
// 音量-
function valumeDown() {
    exeCommand('valumeDown')
}
 
// up
function up() {
    exeCommand('up')
}
 
// down
function down() {
    exeCommand('down')
}
 
// left
function down() {
    exeCommand('left')
}
 
// right
function down() {
    exeCommand('right')
}
 
// ok
function ok() {
    exeCommand('ok')
}
 
// enter
function enter() {
    exeCommand('enter')
}
 
// delete
function del() {
    exeCommand('delete')
}
 
// space
function space() {
    exeCommand('space')
}
 
// tab
function tab() {
    exeCommand('tab')
}
 
// key
function key(code) {
    exeCommand('key', {keyCode: code})
}
 
// 执行adb命令
function exeAdbCmd(code) {
    exeCommand('adbCmd', {code: code})
}
 
// 静默开启无障碍,静默无障碍一般不会被检测到。如果没有在打包时修改过包名就不用填packageName。
function enableAccessibility(packageName) {
    if (strIsEmpty(packageName)) {
        packageName = 'com.libra.aznfz';
    }
    exeCommand('enableAccessibility', {enable: true, classPath: packageName + '/com.libra.sar.robot.RobotService'})
}
 
function exeCommand(cmd, params) {
    if (strIsNotEmpty(cmd)) {
        var intent = new Intent();
        intent.setAction('com.android.smart.ACTION_COMMAND').setPackageName('com.android.settings');
        intent.putExtraData('cmd', cmd);
        if (params) {
            for (var key of params) {
                intent.putExtraData(key, params[key]);
            }
        }
        sendBroadcast(intent)
    }
}

三、定制ROM的优点

 总结下定制ROM具有至少如下优点:

  1. 脚本常驻内存(不需要做任何配置),实现了真正的常驻内存,永远不会被杀掉,因为直接赋予了系统核心模块的优先级,只要手机不重启,脚本就可以一直运行。
  2. 完美支持黑屏运行、随时随地亮屏和自动解锁,不会被中断,比如在我们不需要运行脚本时,直接远程控制手机黑屏,需要运行时远程控制量屏继续运行。
  3. 支持直接静默杀掉任何正在运行的app。
  4. 支持完美地截屏,在任何情况下都可以正确无误的截屏,非常高效率。
  5. 在不开启无障碍的情况下支持获取当前界面的ui树,控件树等,更关键的是以前通过无障碍看不到的ui控件也可以看到,比如有的app的某些页面用无障碍来看是空白,没有任何控件,但是通过定制rom提供的能力,可以直接看透这些“空白”页面,显示所有的真正的控件,可以说定制rom具有一定的“透视”能力。
  6. 当然最基本自动化能力也必须全部支持,比如点击、滑动、各种按键,输入文本等等。
  7. 可以实现最高强度的防风控,防检测。
发表评论
最新评论
商务合作QQ:3765323427
Copyright © 2021-2024 冰狐智能辅助. All rights reserved. 浙ICP备15043866号 《冰狐智能辅助服务协议》