当前位置: 首页 > backend >正文

Auto.js 脚本:清理手机数据但保留账号

Auto.js 脚本:清理手机数据但保留账号

以下是一个使用 Auto.js 实现的脚本,它可以帮你清理手机数据(类似恢复出厂设置),同时尽可能保留已登录的账号状态。请注意,这个脚本不能完全等同于真正的恢复出厂设置,但可以实现类似效果。

// 脚本功能:清理手机数据但保留账号状态
// 需要 Auto.js 4.1.1 以上版本
// 需要 root 权限或无障碍权限// 配置区域 ==================================
var config = {keepAccounts: true,      // 是否保留账号clearAppData: true,      // 是否清除应用数据clearCache: true,        // 是否清除缓存whitelist: [             // 不想清理的应用包名列表"com.tencent.mm",    // 微信"com.tencent.mobileqq", // QQ"com.google.android.gms", // Google服务"com.android.vending",   // Google Play商店// 添加其他你想保留的应用]
};
// ==========================================// 主函数
function main() {// 请求必要的权限requestPermissions();// 显示警告信息alert("警告", "此脚本将清理手机数据,请确保重要数据已备份!", function(){// 开始执行清理startCleaning();});
}// 请求权限
function requestPermissions() {// 请求root权限if (!requestRoot()) {toast("未获取root权限,部分功能可能无法使用");}// 请求无障碍服务auto.waitFor();
}// 开始清理流程
function startCleaning() {// 显示进度对话框let progressDialog = dialogs.build({title: "正在清理",progress: {max: 100,showMinMax: true},cancelable: false}).show();// 步骤1: 清理应用缓存 (10%)if (config.clearCache) {progressDialog.setProgress(10);progressDialog.setMessage("正在清理应用缓存...");clearAllAppCache();}// 步骤2: 清理应用数据 (40%)if (config.clearAppData) {progressDialog.setProgress(40);progressDialog.setMessage("正在清理应用数据...");clearAppData();}// 步骤3: 清理系统缓存 (70%)progressDialog.setProgress(70);progressDialog.setMessage("正在清理系统缓存...");clearSystemCache();// 步骤4: 保留账号数据 (90%)if (config.keepAccounts) {progressDialog.setProgress(90);progressDialog.setMessage("正在保留账号数据...");backupAccounts();}// 完成 (100%)progressDialog.setProgress(100);progressDialog.setMessage("清理完成!");sleep(1000);progressDialog.dismiss();toast("清理完成!");
}// 清理所有应用缓存
function clearAllAppCache() {let pm = context.getPackageManager();let apps = pm.getInstalledApplications(0);apps.forEach(app => {if (!config.whitelist.includes(app.packageName)) {try {let cmd = "pm clear " + app.packageName;shell(cmd, true);} catch (e) {console.log("清理缓存失败: " + app.packageName);}}});
}// 清理应用数据
function clearAppData() {let pm = context.getPackageManager();let apps = pm.getInstalledApplications(0);apps.forEach(app => {if (!config.whitelist.includes(app.packageName)) {try {// 删除应用数据目录let dataDir = "/data/data/" + app.packageName;if (files.exists(dataDir)) {shell("rm -rf " + dataDir, true);}// 删除外部存储数据let extDir = "/sdcard/Android/data/" + app.packageName;if (files.exists(extDir)) {shell("rm -rf " + extDir, true);}} catch (e) {console.log("清理数据失败: " + app.packageName);}}});
}// 清理系统缓存
function clearSystemCache() {try {// 清理dalvik缓存shell("rm -rf /data/dalvik-cache", true);// 清理临时文件shell("rm -rf /data/local/tmp/*", true);shell("rm -rf /cache/*", true);// 清理日志shell("rm -rf /data/log/*", true);shell("rm -rf /data/tombstones/*", true);} catch (e) {console.log("清理系统缓存失败: " + e);}
}// 备份账号数据
function backupAccounts() {try {// 备份账号数据库 (需要root)let accountDb = "/data/system/users/0/accounts.db";let backupDir = "/sdcard/account_backup/";if (files.exists(accountDb)) {if (!files.exists(backupDir)) {files.createWithDirs(backupDir);}shell("cp " + accountDb + " " + backupDir + "accounts.db", true);}} catch (e) {console.log("备份账号数据失败: " + e);}
}// 运行主函数
main();

使用说明

  1. 准备工作:

    • 安装 Auto.js 应用 (建议4.1.1以上版本)
    • 确保手机已root (部分功能需要root权限)
    • 备份重要数据
  2. 配置脚本:

    • 修改 config 部分,设置你想保留的应用包名
    • 设置是否保留账号、清除应用数据等选项
  3. 运行脚本:

    • 将脚本导入Auto.js并运行
    • 授予必要的权限
    • 脚本会逐步清理手机数据

注意事项

  1. 此脚本不能完全等同于恢复出厂设置,但可以达到类似效果
  2. 部分账号可能仍需要重新登录,取决于应用的账号管理机制
  3. 建议在执行前手动备份重要数据
  4. 某些系统可能需要调整文件路径
  5. 首次运行建议先在测试设备上尝试

高级选项

如果你需要更彻底的清理,可以添加以下功能:

  • 清理媒体存储数据库
  • 重置系统设置
  • 清理更多系统目录

但请注意,这些操作可能有风险,建议在充分了解后果后再实施。

http://www.xdnf.cn/news/4033.html

相关文章:

  • 第R8周:RNN实现阿尔兹海默病诊断(pytorch)
  • 基于EFISH-SCB-RK3576工控机/SAIL-RK3576核心板的网络安全防火墙技术方案‌(国产化替代J1900的全栈技术解析)
  • Python生活手册-正则表达式:从快递单到咖啡订单的文本魔法
  • Level DB --- MergingIterator
  • Compose 中使用 WebView
  • 基于YOLOv的目标检测训练数据构建方法研究—图像采集、标注、划分与增强一体化流程设计
  • Softmax回归与单层感知机对比
  • 【platform push 提示 Invalid source ref: HEAD】
  • 双目视觉的核心目标
  • NGINX 的 ngx_http_auth_jwt_module模块
  • 模块方法模式(Module Method Pattern)
  • JavaScript 实现输入框的撤销功能
  • 算力经济模型推演:从中心化到去中心化算力市场的转变(区块链+智能合约的算力交易原型设计)
  • Python项目源码57:数据格式转换工具1.0(csv+json+excel+sqlite3)
  • C++ 类与对象(下)—— 进阶特性与底层机制解析(构造函数初始化,类型转换,static成员,友元,内部类,匿名对象)
  • 基于 HTML 和 CSS 实现的 3D 翻转卡片效果
  • WebRTC 服务器之SRS服务器概述和环境搭建
  • 【算法笔记】动态规划基础(二):背包dp
  • TopK题-快速选择方法
  • 数据结构实验8.1:图的基本操作
  • 联邦学习的深度解析,有望打破数据孤岛
  • 005-nlohmann/json 基础方法-C++开源库108杰
  • Sim Studio 是一个开源的代理工作流程构建器。Sim Studio 的界面是一种轻量级、直观的方式,可快速构建和部署LLMs与您最喜欢的工具连接
  • 网络安全自动化:找准边界才能筑牢安全防线
  • 数据结构中 数组、链表、图的概念
  • 深入理解CSS盒子模型
  • 如何使用QWidgets设计一个类似于Web Toast的控件?
  • 【Java ee初阶】多线程(5)
  • Electron 架构详解:主进程与渲染进程的协作机制
  • [低代码 + AI] 明道云与 Dify 的三种融合实践方式详解