|
|
AIWROKÈí¼þ´úÀíģʽһ¼üɾ³ý×ÀÃæËùÓÐAPP°æÊ¾Àý
- //// AIWROKÈí¼þ´úÀíģʽһ¼üɾ³ý×ÀÃæËùÓÐAPP°æÊ¾Àý
- // ʹÓÃpm uninstallÃüÁîÅúÁ¿Ð¶ÔصÚÈý·½Ó¦ÓÃ
- print.log("===== agent ´úÀí API Ò»¼üɾ³ýËùÓÐÓ¦Óðæ =====");
- print.log("📌 ÖØÒªÌáʾ£ºÇëÈ·±£ÊÖ»úÆÁÄ»µ±Ç°ÏÔʾ×ÀÃæ£¡");
- var ÆÁÄ»¿í = screen.getScreenWidth();
- var ÆÁÄ»¸ß = screen.getScreenHeight();
- print.log("µ±Ç°ÆÁÄ»£º" + ÆÁÄ»¿í + " x " + ÆÁÄ»¸ß);
- var Åųý°üÃûÁбí = [
- "com.android.launcher3",
- "com.android.settings",
- "com.android.systemui",
- "com.android.phone",
- "com.android.mms",
- "com.android.camera",
- "com.android.contacts",
- "com.android.dialer",
- "com.android.email",
- "com.android.calendar",
- "com.android.gallery",
- "com.android.filemanager",
- "com.android.browser",
- "com.android.inputmethod",
- "com.google.android",
- "com.android.webview",
- "com.android.fallback",
- "com.android.providers",
- "com.android.server",
- "com.android.internal",
- "com.android.location",
- "com.android.wifi",
- "com.android.bluetooth",
- "com.android.nfc",
- "com.android.usb",
- "com.android.media",
- "com.android.audio",
- "com.android.soundrecorder",
- "com.android.packageinstaller",
- "com.android.vending",
- "com.android.market",
- "com.android.keychain",
- "com.android.print",
- "com.android.dreams",
- "com.android.externalstorage",
- "com.android.sharedstoragebackup",
- "com.android.backup",
- "com.android.proxyhandler",
- "com.android.captiveportallogin",
- "com.android.documentsui",
- "com.android.pacprocessor",
- "com.android.storagemanager",
- "com.android.managedprovisioning",
- "com.android.cts",
- "com.android.flags",
- "com.android.egg",
- "com.android.framework",
- "com.android.settings.intelligence",
- "com.android.shell",
- "com.android.system",
- "com.android.traceur",
- "com.android.uirenderer",
- "com.android.wallpaper",
- "com.android.wallpaper.livepicker",
- "com.android.launcher",
- "com.android.inputmethod.latin",
- "com.android.inputmethod.pinyin",
- "com.android.inputmethod.sogou",
- "com.baidu.input",
- "com.tencent.input",
- "io.aiwork",
- "com.aiwork",
- "aiwork",
- "com.layernet.launcher",
- "com.autoapp"
- ];
- function ÊÇ·ñÅųý°üÃû(pkg) {
- for (var i = 0; i < Åųý°üÃûÁбí.length; i++) {
- var exclude = Åųý°üÃûÁбí[i];
- if (pkg === exclude || pkg.indexOf(exclude) === 0) {
- return true;
- }
- }
- if (pkg.indexOf("com.android.") === 0) {
- return true;
- }
- if (pkg.indexOf("android.") === 0) {
- return true;
- }
- return false;
- }
- function Ö´ÐÐShell(cmd) {
- var ½á¹û = agent.shell(cmd);
- if (!½á¹û) return "";
-
- var ½á¹û×Ö·û´® = "";
- if (typeof ½á¹û === "string") {
- ½á¹û×Ö·û´® = ½á¹û;
- } else if (½á¹û.toString) {
- ½á¹û×Ö·û´® = ½á¹û.toString();
- } else {
- ½á¹û×Ö·û´® = "" + ½á¹û;
- }
-
- var startIdx = -1;
- if (typeof ½á¹û×Ö·û´®.indexOf === "function") {
- startIdx = ½á¹û×Ö·û´®.indexOf("successMsg:");
- }
-
- var content = "";
- if (startIdx !== -1) {
- var afterSuccess = ½á¹û×Ö·û´®.substring(startIdx + 11);
- var errorIdx = afterSuccess.indexOf(",errorMsg:");
- if (errorIdx !== -1) {
- content = afterSuccess.substring(0, errorIdx);
- } else {
- content = afterSuccess;
- }
- content = content.trim();
- } else {
- content = ½á¹û×Ö·û´®;
- }
-
- return "" + content;
- }
- function »ñÈ¡UI() {
- var ÁÙʱÎļþ = "/sdcard/ui_dump.xml";
- agent.shell("uiautomator dump --compressed " + ÁÙʱÎļþ + " 2>/dev/null");
- return Ö´ÐÐShell("cat " + ÁÙʱÎļþ);
- }
- function ½âÎö°üÃûÁбí(½á¹û) {
- var packages = [];
- var pkgParts = ½á¹û.split("package:");
- for (var i = 0; i < pkgParts.length; i++) {
- var pkg = pkgParts[i].trim();
- if (pkg !== "") {
- var endIdx = pkg.indexOf("\n");
- if (endIdx !== -1) {
- pkg = pkg.substring(0, endIdx).trim();
- }
- endIdx = pkg.indexOf("package:");
- if (endIdx !== -1) {
- pkg = pkg.substring(0, endIdx).trim();
- }
- if (pkg !== "" && !ÊÇ·ñÅųý°üÃû(pkg) && packages.indexOf(pkg) === -1) {
- packages.push(pkg);
- }
- }
- }
- return packages;
- }
- function »ñÈ¡ËùÓÐÓ¦ÓðüÃû() {
- print.log("🔍 ÕýÔÚ»ñÈ¡ËùÓÐÓ¦ÓðüÃû...");
- var ½á¹û = Ö´ÐÐShell("pm list packages");
- print.log("📝 pm list packages ·µ»Ø£º" + ½á¹û.substring(0, 200) + "...");
- return ½âÎö°üÃûÁбí(½á¹û);
- }
- function »ñÈ¡µÚÈý·½Ó¦ÓðüÃû() {
- print.log("🔍 ÕýÔÚ»ñÈ¡µÚÈý·½Ó¦ÓðüÃû...");
- var ½á¹û = Ö´ÐÐShell("pm list packages -3");
- print.log("📝 pm list packages -3 ·µ»Ø£º" + ½á¹û.substring(0, 200) + "...");
-
- var packages = ½âÎö°üÃûÁбí(½á¹û);
-
- if (packages.length === 0) {
- print.log("⚠ pm list packages -3 ·µ»Ø0¸ö£¬³¢ÊÔ²»´ø-3²ÎÊý...");
- return »ñÈ¡ËùÓÐÓ¦ÓðüÃû();
- }
- return packages;
- }
- function Ð¶ÔØÓ¦ÓÃ(pkg) {
- var ´¿¾»°üÃû = pkg;
- if (´¿¾»°üÃû.indexOf("/") !== -1) {
- ´¿¾»°üÃû = ´¿¾»°üÃû.substring(0, ´¿¾»°üÃû.indexOf("/"));
- }
- if (´¿¾»°üÃû.indexOf(" ") !== -1) {
- ´¿¾»°üÃû = ´¿¾»°üÃû.substring(0, ´¿¾»°üÃû.indexOf(" "));
- }
- if (´¿¾»°üÃû.indexOf("(") !== -1) {
- ´¿¾»°üÃû = ´¿¾»°üÃû.substring(0, ´¿¾»°üÃû.indexOf("("));
- }
- ´¿¾»°üÃû = ´¿¾»°üÃû.trim();
-
- print.log("🔄 ÕýÔÚÐ¶ÔØ£º" + pkg + " -> ´¿¾»°üÃû£º" + ´¿¾»°üÃû);
-
- var ½á¹û = Ö´ÐÐShell("pm uninstall " + ´¿¾»°üÃû);
- var ½á¹û×Ö·û´® = "" + ½á¹û;
- print.log("📝 Ð¶ÔØ·µ»Ø£º" + ½á¹û×Ö·û´®);
-
- if (½á¹û×Ö·û´®.indexOf("Success") !== -1 || ½á¹û×Ö·û´®.indexOf("success") !== -1) {
- print.log("✓ Ð¶ÔØ³É¹¦£º" + ´¿¾»°üÃû);
- return true;
- } else if (½á¹û×Ö·û´®.indexOf("not installed") !== -1 || ½á¹û×Ö·û´®.indexOf("Unknown package") !== -1) {
- print.log("⚠ δ°²×°»òÒÑÐ¶ÔØ£º" + ´¿¾»°üÃû);
- return false;
- } else if (½á¹û×Ö·û´®.indexOf("Permission denied") !== -1) {
- print.log("⚠ ȨÏÞ²»×㣬³¢ÊÔʹÓÃsu...");
- ½á¹û = Ö´ÐÐShell("su -c 'pm uninstall " + ´¿¾»°üÃû + "'");
- ½á¹û×Ö·û´® = "" + ½á¹û;
- print.log("📝 suÐ¶ÔØ·µ»Ø£º" + ½á¹û×Ö·û´®);
- if (½á¹û×Ö·û´®.indexOf("Success") !== -1 || ½á¹û×Ö·û´®.indexOf("success") !== -1) {
- print.log("✓ ʹÓÃsuÐ¶ÔØ³É¹¦£º" + ´¿¾»°üÃû);
- return true;
- }
- print.log("✗ ȨÏÞ²»×㣬ÎÞ·¨Ð¶ÔØ£º" + ´¿¾»°üÃû);
- return false;
- } else {
- print.log("✗ Ð¶ÔØÊ§°Ü£º" + ´¿¾»°üÃû + "£¬·µ»Ø£º" + ½á¹û×Ö·û´®.trim());
- return false;
- }
- }
- print.log("\n--- ²½Öè1£º¿ªÊ¼ÊµÊ±ÅúÁ¿Ð¶ÔØ ---");
- var ³É¹¦Êý = 0;
- var ʧ°ÜÊý = 0;
- var ÒÑÐ¶ÔØÁбí = [];
- var Î´Ð¶ÔØÁбí = [];
- var Òѳ¢ÊÔ¼¯ºÏ = {};
- while (true) {
- var ´ýÐ¶ÔØÁбí = »ñÈ¡µÚÈý·½Ó¦ÓðüÃû();
-
- print.log("\n📋 µ±Ç°´ýÐ¶ÔØÓ¦Óù² " + ´ýÐ¶ÔØÁбí.length + " ¸ö");
- if (´ýÐ¶ÔØÁбí.length > 0) {
- print.log(" ÁÐ±í£º" + ´ýÐ¶ÔØÁбí.join(", "));
- }
-
- if (´ýÐ¶ÔØÁбí.length === 0) {
- print.log("✓ δÕÒµ½¿ÉÐ¶ÔØµÄÓ¦Ó㬽áÊøÐ¶ÔØ");
- break;
- }
-
- var ÕÒµ½ÐÂÓ¦Óà = false;
- for (var i = 0; i < ´ýÐ¶ÔØÁбí.length; i++) {
- var pkg = ´ýÐ¶ÔØÁбí[i];
-
- if (!Òѳ¢ÊÔ¼¯ºÏ[pkg]) {
- ÕÒµ½ÐÂÓ¦Óà = true;
- Òѳ¢ÊÔ¼¯ºÏ[pkg] = true;
-
- var success = Ð¶ÔØÓ¦ÓÃ(pkg);
- if (success) {
- ³É¹¦Êý++;
- ÒÑÐ¶ÔØÁбí.push(pkg);
- } else {
- ʧ°ÜÊý++;
- Î´Ð¶ÔØÁбí.push(pkg);
- }
-
- sleep.second(1);
- break;
- } else {
- print.log("⚠ " + pkg + " Òѳ¢ÊÔ¹ý£¬Ìø¹ý");
- }
- }
-
- if (!ÕÒµ½ÐÂÓ¦ÓÃ) {
- print.log("✓ ËùÓÐÓ¦Óö¼Òѳ¢ÊÔ¹ý£¬½áÊøÐ¶ÔØ");
- break;
- }
- }
- print.log("\n--- ²½Öè2£ºÐ¶Ôؽá¹ûͳ¼Æ ---");
- print.log("📊 Ð¶ÔØÍ³¼Æ£º");
- print.log(" ✅ ³É¹¦£º" + ³É¹¦Êý + " ¸ö");
- print.log(" ❌ ʧ°Ü£º" + ʧ°ÜÊý + " ¸ö");
- if (ÒÑÐ¶ÔØÁбí.length > 0) {
- print.log("\n✅ ³É¹¦Ð¶ÔصÄÓ¦Óãº");
- for (var i = 0; i < ÒÑÐ¶ÔØÁбí.length; i++) {
- print.log(" " + (i + 1) + ". " + ÒÑÐ¶ÔØÁбí[i]);
- }
- }
- if (Î´Ð¶ÔØÁбí.length > 0) {
- print.log("\n❌ Î´Ð¶ÔØ³É¹¦µÄÓ¦Óãº");
- for (var i = 0; i < Î´Ð¶ÔØÁбí.length; i++) {
- print.log(" " + (i + 1) + ". " + Î´Ð¶ÔØÁбí[i]);
- }
- print.log("\n⚠ Ìáʾ£ºÊ§°ÜµÄÓ¦ÓÿÉÄÜÊÇϵͳӦÓûòÐèÒªÌØÊâȨÏÞ²ÅÄÜÐ¶ÔØ");
- }
- print.log("\n===== Ò»¼üɾ³ýËùÓÐÓ¦ÓÃʾÀý½áÊø =====");
¸´ÖÆ´úÂë
|
|