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

时间:2025-05-07 07:30:47
// 脚本功能:清理手机数据但保留账号状态 // 需要 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();