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();
使用說明
-
準備工作:
- 安裝 Auto.js 應用 (建議4.1.1以上版本)
- 確保手機已root (部分功能需要root權限)
- 備份重要數據
-
配置腳本:
- 修改
config
部分,設置你想保留的應用包名 - 設置是否保留賬號、清除應用數據等選項
- 修改
-
運行腳本:
- 將腳本導入Auto.js并運行
- 授予必要的權限
- 腳本會逐步清理手機數據
注意事項
- 此腳本不能完全等同于恢復出廠設置,但可以達到類似效果
- 部分賬號可能仍需要重新登錄,取決于應用的賬號管理機制
- 建議在執行前手動備份重要數據
- 某些系統可能需要調整文件路徑
- 首次運行建議先在測試設備上嘗試
高級選項
如果你需要更徹底的清理,可以添加以下功能:
- 清理媒體存儲數據庫
- 重置系統設置
- 清理更多系統目錄
但請注意,這些操作可能有風險,建議在充分了解后果后再實施。