脚本能跑通只是第一步。真想拿它变现,绕不开打包、分发、防破解、授权这四件事,每一件都比写脚本本身琐碎。
打包、分发、迭代、授权
脚本要卖出去,得把四件事做完:打包、分发、迭代、授权。用户拿到的是什么,怎么到用户手里,以后怎么改,谁能用、用多久。
| 环节 | 做什么 | 解决什么问题 |
|---|---|---|
| 打包 | 把脚本工程编译成可安装的 APK 应用 | 用户拿到的是即装即用的安装包 |
| 分发 | 把打包产物发布给终端用户 | 让产品触达用户,独立于开发者的电脑运行 |
| 迭代 | 持续修复 bug、更新逻辑、加功能 | 卖出去之后还能改、还能修 |
| 授权 | 卡密/授权校验,控制谁能用、用多久 | 防止破解与盗用,把一次性劳动变成可持续收入 |
少一件,脚本就还是自己用。后面用 EasyClick 安卓版举例(官方文档)。它是免 root 的安卓自动化平台,支持安卓 5.0 到当前系统,脚本用 JavaScript 写,可以调用 Java 类库。当前 EC 版本是 12.4,配套 IDEA 插件在 IDEA 2026.2 及以上不用激活(第一个工程教程)。
打包时先决定源码在哪编译。EasyClick 在 IDEA 插件里一键打包,全程在本机,不用上传云端(产品介绍),产物是可以直接安装的 APK。云端打包要把源码传到第三方服务器编译,多一次流转,就多一分泄露的可能。
| 对比维度 | 本地离线打包 | 云端打包方案 |
|---|---|---|
| 源码去向 | 不出本机,全程本地编译 | 需上传第三方服务器编译 |
| 泄露风险 | 可控,取决于本机安全 | 取决于第三方服务器的安全与信任 |
| 网络依赖 | 打包过程离线完成 | 通常需要联网等待编译 |
| 适合场景 | 商业化脚本、源码安全敏感 | 对源码流转不敏感的场景 |
源码不经过第三方服务器,是本地打包最直接的差别。商业脚本的源码多转一次,就多一次被复制、被转卖的机会。
包打出来还要能交出去。脱机运行和单独发布是两件相关的事(产品介绍)。脱机运行是脚本不依赖电脑和 IDE,拔掉线、插上电,任务照样跑。单独发布是 APK 直接给用户装,用户不用碰你的开发环境。客户不用会开发,你也不用在场。
热更新迭代与防破解
卖出去之后,需求和 bug 会一直来。每次都重新打包、发新 APK、让用户卸载重装,迭代会很慢。热更新改的是编译后的 IEC 脚这份文档,APK 不用重装(热更新文档)。工程里的 update.json 配服务端地址:update_url 是更新接口,version 是当前脚本版本,timeout 是请求超时,appendDeviceInfo 决定要不要附带基础设备信息。脚本启动时请求这个接口。服务端返回空字符串表示不用更新,返回 JSON 表示有新版本。JSON 里带 download_url 和 version,可选 md5、dialog、msg、force。EC 下载新的 IEC 并加载。
注意:
update.json里配置的版本号要与服务端接口返回的版本保持一致,否则可能导致异常情况。
可以在 UI 启动时自动更新,也可以在脚本运行中用 hotupdater 的 updateReq、updateDownload、getUpdateResp、getErrorMsg 主动请求、下载并重启。不想自己写服务端的话,网络验证平台自带热更新:对接阿里云 OSS,上传 IEC 后生成下载地址和 MD5,把地址填进 update.json(网络验证文档)。
| 对比维度 | 传统 APK 更新 | 代码热更新 |
|---|---|---|
| 更新对象 | 整个 APK 应用 | 编译后的 IEC 脚这份文档 |
| 用户操作 | 下载安装新 APK | 无感,脚本自动加载新版本 |
| 发布速度 | 重新打包 + 分发 + 用户安装 | 服务端放一个新包即可 |
| 出错代价 | 装错版本难回滚 | 强制更新、MD5 校验等机制可控 |
| 典型场景 | 首次安装、大版本发布 | 日常迭代、修 bug、加功能 |
热更新把日常改脚本从重新发 APK,收成服务端放一个新包。持续收费靠的是还能改、还能发。
代码在用户设备上跑,就有被逆向、被提取的可能。卡密逻辑被绕过,脚本就白送了。做不到绝对防破解,能做的是把破解成本抬到不值得。混淆在编译时做花指令、改流程,让代码难读、难还原(代码混淆文档)。新版 IDEA 插件会在工程下生成 obfuscator.json,参数来自 javascript-obfuscator。配好混淆器路径后,编译时先混淆 JS,再二次编译,JS 和 DEX 两种产物都会覆盖。混淆会让体积变大,代码拆到多个文件更好管。它也比较吃电脑资源,调试时关掉,发布和打包时再开。自己改配置可能导致混淆后跑不起来,恢复默认即可。混淆挡不住所有逆向,只是把成本抬高。
卡密授权、变现路径与合规
打包、分发、迭代齐了,还要授权。没有授权,脚本流出去就控不住。有了授权,谁用、用多久、用几台,都在后台里。EasyClick 的网络验证平台在 http://uc.ieasyclick.com(网络验证文档)。新增软件拿到 appid 和密钥,脚本用 ecNetCard.netCardInit 初始化后就能校验。脚本列表登记版本、包名和指纹。卡密可以一个设备一张,也可以多个设备一张。有效天数从第一次绑定设备开始算,不用就不计时。可以设解绑密码、顶号(后请求的设备把最先绑定的踢下线)、禁用。到期或要加设备,用批量加时间、批量加在线量,客户不用重新绑卡。指纹可以验 APK 和 IEC,上传文件只算 MD5,不保存文件。填了软件包名之后,包名对不上的脚本跑不了。关键业务代码或参数可以放云端变量,用 ecNetCard.netCardGetCloudVar 取。发现被破解,用 ecNetCard.netCardUpdateCloudVar 远程换掉。文档里的做法是几样一起用:
| 手段 | 作用 | 成本/代价 |
|---|---|---|
| 网络验证卡密 | 授权校验,卡密无效脚本无法运行 | 需要注册平台、生成卡密 |
| 关键代码混淆 | 提高逆向门槛 | 增加体积、耗资源,建议发布时开启 |
| 包名/APK/脚本指纹验证 | 校验安装包与脚本是否被篡改 | 每次打包需上传记录,略繁琐 |
| 云端变量/远程代码 | 被破解后可远程替换代码止损 | 关键逻辑要设计成可远程下发 |
卡密、混淆、指纹、云端变量放在一起,才盖得住授权和被改包这两头。前后顺序是:本地打包,脱机分发,热更新,卡密授权。
| 阶段 | 动作 | 产出/目标 |
|---|---|---|
| ① 本地打包 | IDEA 插件一键打包 APK,全程本地 | 可安装、可发布的安装包 |
| ② 脱机分发 | 把 APK 发布给终端用户 | 用户即装即用,不依赖你的电脑 |
| ③ 热更新迭代 | update.json 接好更新地址,服务端随时放新 IEC |
修 bug、加功能无需重装 |
| ④ 卡密授权变现 | 网络验证平台生成卡密、开启指纹验证 | 授权可控,收入可持续 |
打包前把源码拆成模块,后面混淆和维护都轻一些。分发时把第一次激活做短,少让人卡在安装之后。热更新和网络验证在用户变多之前就接上。卡密时长按场景设,按天、按月或更长都行,后台留着批量加时间。宣传里别写兑现不了的「永久」「无限」。
无障碍和 ADB 是系统官方能力。脚本拿去做什么,要单独看。灰产不要碰,细节见手机群控合规指南。卡密售卖按平台和市场的规则来,售后和退款先说清楚。热更新请求可以带 deviceId、机型这类基础设备信息,采集设备信息或用户数据时要告知,并拿到授权。
关于 EasyClick:手机自动化脚本开发平台,覆盖安卓免 ROOT、iOS 免越狱、鸿蒙三大手机生态,还提供苹果脚本编写、苹果群控、安卓群控、远程云控、AI 群控手机等。→ 了解全部产品
想要真实跑起来?
本文介绍的方案均可基于 EasyClick 能力在 iEasyClick 落地。官网提供完整文档、开发工具与自动化产品,免费体验。