|
|
AIWROK adb.exec() ʵÓù¤¾ß¿â ¡ª¡ª ³£Óù¦ÄÜÖ±½Óµ÷Óðæ
- // =============================================================================
- // AIWROK adb.exec() ʵÓù¤¾ß¿â ¡ª¡ª ³£Óù¦ÄÜÖ±½Óµ÷Óðæ
- // =============================================================================
- // ÊÊÓÃÆ½Ì¨£ºAIWROK °²×¿×Ô¶¯»¯Èí¼þ
- // ÒýÇæ£ºRhino (ES5)
- // ˵Ã÷£º´Ó adb_exec¸ß¼¶Ó÷¨Ê¾Àý.js ÖгéÈ¡×î³£ÓõŦÄÜ£¬
- // ·â×°³É¿ÉÖ±½Óµ÷ÓõŤ¾ßº¯Êý£¬ÄÃÀ´¼´Óá£
- //
- // adb.exec(command, isRoot) ²ÎÊý˵Ã÷£º
- // - command: shell ÃüÁî×Ö·û´®
- // - isRoot: true=ÒÔ root ȨÏÞÖ´ÐÐ(su -c), false=ÆÕͨȨÏÞ
- // - ·µ»ØÖµ: JSON ¸ñʽ {"errorMsg":"","success":"ʵ¼ÊÄÚÈÝ"}
- //
- // ʹÓ÷½Ê½£º
- // ·½Ê½1£ºÖ±½ÓÔËÐб¾½Å±¾ ¡ú ²é¿´¸÷¹¦ÄÜÑÝʾÊä³ö
- // ·½Ê½2£º½«±¾ÎļþÄÚÈݸ´ÖƵ½ÄãµÄÏîÄ¿ÖÐ ¡ú µ÷Óà AdbUtil.·½·¨Ãû()
- // =============================================================================
- print.log("===== adb.exec() ʵÓù¤¾ß¿â =====\n");
- // =============================================================================
- // ºËÐŤ¾ß²ã£º·µ»ØÖµÇåÏ´ + °²È«Ö´ÐÐ
- // =============================================================================
- /**
- * ÇåÏ´ adb.exec ·µ»ØÖµ
- * ´¦ÀíÁ½ÖÖ¸ñʽ£ºJSON {"success":"..."} ºÍ¾É¸ñʽ successMsg:...,errorMsg:...
- */
- function ÇåÏ´Êä³ö(Ôʼ½á¹û) {
- if (!Ôʼ½á¹û) return "";
- var ½á¹û = String(Ôʼ½á¹û);
- // ¸ñʽ1: JSON {"errorMsg":"","success":"ʵ¼ÊÄÚÈÝ"}
- if (½á¹û.charAt(0) === "{") {
- try {
- var json = JSON.parse(½á¹û);
- if (json && json.success !== undefined) {
- // ¹ýÂË Broken pipe ¾¯¸æ£¨| head/grep Ìáǰ¹Ø±Õ¹ÜµÀµ¼Ö£¬²»Ó°Ïìʵ¼Ê½á¹û£©
- if (json.errorMsg && json.errorMsg !== "" &&
- json.errorMsg.indexOf("Broken pipe") === -1 &&
- json.errorMsg.indexOf("Failed to write") === -1) {
- print.log(" [¾¯¸æ] ÃüÁî´íÎó: " + json.errorMsg);
- }
- return String(json.success).trim();
- }
- } catch (e) {
- // JSON.parse ʧ°Ü£¬ÕýÔòÌáÈ¡ success ×Ö¶Î
- var m = ½á¹û.match(/"success"\s*:\s*"([\s\S]*?)"\s*[,}]/);
- if (m) {
- return m[1].replace(/\\n/g, "\n").replace(/\\t/g, "\t")
- .replace(/\\"/g, '"').replace(/\\\\/g, "\\").trim();
- }
- }
- return ½á¹û.trim();
- }
- // ¸ñʽ2: ¾É¸ñʽ successMsg:ÄÚÈÝ,errorMsg:ÄÚÈÝ
- if (½á¹û.indexOf("successMsg:") === 0) {
- ½á¹û = ½á¹û.substring("successMsg:".length);
- }
- var ´íÎóË÷Òý = ½á¹û.indexOf(",errorMsg:");
- if (´íÎóË÷Òý !== -1) {
- ½á¹û = ½á¹û.substring(0, ´íÎóË÷Òý);
- }
- return ½á¹û.trim();
- }
- /**
- * °²È«Ö´ÐÐÃüÁî²¢·µ»ØÇåÏ´ºóµÄ½á¹û
- * @param {string} ÃüÁî - shell ÃüÁî
- * @param {boolean} ÊÇ·ñroot - ÊÇ·ñÒÔ root ȨÏÞÖ´ÐÐ
- * @returns {string} ÇåÏ´ºóµÄÊä³ö
- */
- function Ö´ÐÐÃüÁî(ÃüÁî, ÊÇ·ñroot) {
- try {
- var Ôʼ = adb.exec(ÃüÁî, ÊÇ·ñroot || false);
- return ÇåÏ´Êä³ö(String(Ôʼ));
- } catch (e) {
- print.log(" [Òì³£] " + ÃüÁî + " ¡ú " + e.message);
- return "";
- }
- }
- /**
- * °²È«Ö´ÐÐÃüÁ²»¹ØÐÄ·µ»ØÖµ£¬Ö»¹ØÐÄÊÇ·ñ³É¹¦£©
- * @returns {boolean} ÊÇ·ñÖ´ÐÐÎÞÒì³£
- */
- function Ö´ÐÐÃüÁĬ(ÃüÁî, ÊÇ·ñroot) {
- try {
- adb.exec(ÃüÁî, ÊÇ·ñroot || false);
- return true;
- } catch (e) {
- return false;
- }
- }
- // =============================================================================
- // Ä£¿éÒ»£ºÉ豸ÐÅÏ¢²É¼¯
- // =============================================================================
- var AdbUtil = {};
- /**
- * »ñÈ¡É豸»ù´¡ÐÅÏ¢£¨ÐͺÅ/Æ·ÅÆ/°²×¿°æ±¾/SDK/ÐòÁкţ©
- * @returns {Object} É豸ÐÅÏ¢¶ÔÏó
- */
- AdbUtil.»ñÈ¡É豸ÐÅÏ¢ = function() {
- return {
- ÐͺÅ: Ö´ÐÐÃüÁî("getprop ro.product.model", false),
- Æ·ÅÆ: Ö´ÐÐÃüÁî("getprop ro.product.brand", false),
- °²×¿°æ±¾: Ö´ÐÐÃüÁî("getprop ro.build.version.release", false),
- SDK°æ±¾: Ö´ÐÐÃüÁî("getprop ro.build.version.sdk", false),
- ÖÆÔìÉÌ: Ö´ÐÐÃüÁî("getprop ro.product.manufacturer", false),
- ÐòÁкÅ: Ö´ÐÐÃüÁî("getprop ro.serialno", false)
- };
- };
- /**
- * »ñÈ¡ÆÁÄ»·Ö±æÂʺÍÃܶÈ
- * @returns {Object} {·Ö±æÂÊ:"Physical size: 1080x2400", ÃܶÈ:"Physical density: 440"}
- */
- AdbUtil.»ñÈ¡ÆÁÄ»ÐÅÏ¢ = function() {
- return {
- ·Ö±æÂÊ: Ö´ÐÐÃüÁî("wm size", false),
- ÃܶÈ: Ö´ÐÐÃüÁî("wm density", false)
- };
- };
- /**
- * »ñÈ¡µç³ØÐÅÏ¢£¨¶à²ßÂÔ£ºdumpsys battery ¡ú sysfs Îļþ½âÎö£©
- * @returns {Object} {µçÁ¿:"85", ζÈ:"32.5¡ãC", ״̬:"³äµçÖÐ", ¼¼Êõ:"Li-ion"}
- */
- AdbUtil.»ñÈ¡µç³ØÐÅÏ¢ = function() {
- var µç³Ø = { µçÁ¿: "", ζÈ: "", ״̬: "", ¼¼Êõ: "" };
- var ״̬ӳÉä = {
- "Charging": "³äµçÖÐ", "Discharging": "·ÅµçÖÐ",
- "Full": "ÒѳäÂú", "Not charging": "δ³äµç",
- "2": "³äµçÖÐ", "3": "·ÅµçÖÐ", "4": "ÒѳäÂú", "5": "δ³äµç"
- };
- // ²ßÂÔ1£ºdumpsys battery£¨ÐèÒª root ȨÏÞ£¬ÆÕͨȨÏÞȱÉÙ DUMP ȨÏÞ£©
- var µç³ØÔʼ = Ö´ÐÐÃüÁî("dumpsys battery", true);
- if (µç³ØÔʼ && µç³ØÔʼ.length > 0 && µç³ØÔʼ.indexOf("Permission Denial") === -1) {
- var ÐÐ1 = µç³ØÔʼ.split("\n");
- for (var i = 0; i < ÐÐ1.length; i++) {
- var r = ÐÐ1[i].trim();
- if (r.indexOf("level:") !== -1)
- µç³Ø.µçÁ¿ = r.replace("level:", "").trim();
- if (r.indexOf("temperature:") !== -1) {
- var t = parseInt(r.replace("temperature:", "").trim(), 10);
- µç³Ø.ÎÂ¶È = isNaN(t) ? "" : (t / 10) + "¡ãC";
- }
- if (r.indexOf("status:") !== -1) {
- var s = r.replace("status:", "").trim();
- µç³Ø.״̬ = ״̬ӳÉä[s] || s || "";
- }
- if (r.indexOf("technology:") !== -1)
- µç³Ø.¼¼Êõ = r.replace("technology:", "").trim();
- }
- }
- // ²ßÂÔ2£ºsysfs Îļþϵͳ£¨root ȨÏÞ£¬Â·¾¶¿ÉÄÜÒòÉ豸²»Í¬¶øÒ죩
- if (!µç³Ø.µçÁ¿) {
- var ·¾¶Áбí = [
- "/sys/class/power_supply/battery",
- "/sys/class/power_supply/bms",
- "/sys/class/power_supply/max170xx_battery"
- ];
- for (var pi = 0; pi < ·¾¶Áбí.length && !µç³Ø.µçÁ¿; pi++) {
- var »ù´¡Â·¾¶ = ·¾¶Áбí[pi];
- var cap = Ö´ÐÐÃüÁî("cat " + »ù´¡Â·¾¶ + "/capacity", true);
- if (cap && /^\d+$/.test(cap.trim())) µç³Ø.µçÁ¿ = cap.trim();
- var ζÈÔʼ = Ö´ÐÐÃüÁî("cat " + »ù´¡Â·¾¶ + "/temp", true);
- if (ζÈÔʼ && /^\d+$/.test(ζÈÔʼ.trim())) {
- var t2 = parseInt(ζÈÔʼ.trim(), 10);
- µç³Ø.ÎÂ¶È = isNaN(t2) ? "" : (t2 / 10) + "¡ãC";
- }
- var ״̬Ôʼ = Ö´ÐÐÃüÁî("cat " + »ù´¡Â·¾¶ + "/status", true);
- if (״̬Ôʼ && ״̬Ôʼ.indexOf("No such") === -1 && ״̬Ôʼ.indexOf("Permission") === -1)
- µç³Ø.״̬ = ״̬ӳÉä[״̬Ôʼ.trim()] || ״̬Ôʼ.trim() || "";
- var ¼¼ÊõÔʼ = Ö´ÐÐÃüÁî("cat " + »ù´¡Â·¾¶ + "/technology", true);
- if (¼¼ÊõÔʼ && ¼¼ÊõÔʼ.indexOf("No such") === -1 && ¼¼ÊõÔʼ.indexOf("Permission") === -1)
- µç³Ø.¼¼Êõ = ¼¼ÊõÔʼ.trim();
- }
- }
- return µç³Ø;
- };
- /**
- * »ñÈ¡ÄÚ´æÐÅÏ¢
- * @returns {string} MemTotal / MemFree / MemAvailable ÐÐ
- */
- AdbUtil.»ñÈ¡ÄÚ´æÐÅÏ¢ = function() {
- return Ö´ÐÐÃüÁî("cat /proc/meminfo | head -3", false);
- };
- /**
- * »ñÈ¡´æ´¢ÐÅÏ¢
- * @returns {string} df Êä³ö
- */
- AdbUtil.»ñÈ¡´æ´¢ÐÅÏ¢ = function() {
- return Ö´ÐÐÃüÁî("df /sdcard", false);
- };
- // =============================================================================
- // Ä£¿é¶þ£ºÓ¦ÓùÜÀí
- // =============================================================================
- /**
- * ÁгöËùÓеÚÈý·½Ó¦ÓðüÃû
- * @returns {Array} °üÃûÊý×飬Èç ["com.tencent.mm", "com.taobao.taobao", ...]
- */
- AdbUtil.ÁгöµÚÈý·½Ó¦Óà = function() {
- var Êä³ö = Ö´ÐÐÃüÁî("pm list packages -3", false);
- if (!Êä³ö) return [];
- var ÐÐ = Êä³ö.split("\n");
- var ½á¹û = [];
- for (var i = 0; i < ÐÐ.length; i++) {
- var °üÃû = ÐÐ[i].replace("package:", "").trim();
- if (°üÃû) ½á¹û.push(°üÃû);
- }
- return ½á¹û;
- };
- /**
- * ¼ì²éÓ¦ÓÃÊÇ·ñÒѰ²×°
- * @param {string} °üÃû - Ó¦ÓðüÃû
- * @returns {boolean} ÊÇ·ñÒѰ²×°
- */
- AdbUtil.Ó¦ÓÃÊÇ·ñ°²×° = function(°üÃû) {
- var ½á¹û = Ö´ÐÐÃüÁî("pm list packages " + °üÃû, false);
- return !!(½á¹û && ½á¹û.indexOf(°üÃû) !== -1);
- };
- /**
- * Æô¶¯Ó¦ÓÃ
- * @param {string} °üÃû - Ó¦ÓðüÃû
- * @returns {boolean} ÊÇ·ñÖ´Ðгɹ¦
- */
- AdbUtil.Æô¶¯Ó¦Óà = function(°üÃû) {
- // ·½Ê½1£ºmonkey Æô¶¯£¨×îͨÓã©
- var ½á¹û = Ö´ÐÐÃüÁĬ("monkey -p " + °üÃû + " 1 2>/dev/null", false);
- if (½á¹û) return true;
- // ·½Ê½2£ºam start£¨ÐèÒªÖªµÀÖ÷ Activity£¬ÕâÀïÓðüÃû³¢ÊÔ£©
- return Ö´ÐÐÃüÁĬ("am start -n " + °üÃû + "/.MainActivity 2>/dev/null", false);
- };
- /**
- * ͨ¹ý Action Æô¶¯ÏµÍ³Ò³Ãæ
- * @param {string} action - Android action ³£Á¿
- * @returns {boolean}
- */
- AdbUtil.Æô¶¯Action = function(action) {
- return Ö´ÐÐÃüÁĬ("am start -a " + action, false);
- };
- /**
- * Ç¿ÖÆÍ£Ö¹Ó¦ÓÃ
- * @param {string} °üÃû
- * @returns {boolean}
- */
- AdbUtil.Í£Ö¹Ó¦Óà = function(°üÃû) {
- return Ö´ÐÐÃüÁĬ("am force-stop " + °üÃû, false);
- };
- /**
- * °²×° APK
- * @param {string} apk·¾¶ - APK Îļþ·¾¶£¬Èç /sdcard/app.apk
- * @param {boolean} ¸²¸Ç°²×° - true ʹÓà -r ¸²¸Ç°²×°
- * @returns {boolean}
- */
- AdbUtil.°²×°Ó¦Óà = function(apk·¾¶, ¸²¸Ç°²×°) {
- var ²ÎÊý = ¸²¸Ç°²×° ? "-r " : "";
- var ½á¹û = Ö´ÐÐÃüÁî("pm install " + ²ÎÊý + apk·¾¶, false);
- return !!(½á¹û && ½á¹û.indexOf("Success") !== -1);
- };
- /**
- * Ð¶ÔØÓ¦ÓÃ
- * @param {string} °üÃû
- * @returns {boolean}
- */
- AdbUtil.Ð¶ÔØÓ¦Óà = function(°üÃû) {
- var ½á¹û = Ö´ÐÐÃüÁî("pm uninstall " + °üÃû, false);
- return !!(½á¹û && ½á¹û.indexOf("Success") !== -1);
- };
- /**
- * »ñȡӦÓð汾ÐÅÏ¢
- * @param {string} °üÃû
- * @returns {Object} {°æ±¾Ãû:"1.0.0", °æ±¾ºÅ:"10", °²×°Â·¾¶:"/data/app/..."}
- */
- AdbUtil.»ñȡӦÓÃÐÅÏ¢ = function(°üÃû) {
- var ÐÅÏ¢ = { °æ±¾Ãû: "", °æ±¾ºÅ: "", °²×°Â·¾¶: "" };
- // ²ßÂÔ1£ºpm path »ñÈ¡°²×°Â·¾¶£¨ÇáÁ¿ÃüÁ²»¿¨ËÀ£©
- var ·¾¶ = Ö´ÐÐÃüÁî("pm path " + °üÃû, false);
- if (·¾¶) ÐÅÏ¢.°²×°Â·¾¶ = ·¾¶.replace("package:", "").trim();
- // ²ßÂÔ2£ºdumpsys package | grep version£¨grep ¶ÁÈ¡ÍêÕûÊä³öµ«Ö»Êä³öÆ¥ÅäÐУ¬JSON·µ»ØÖµºÜС£©
- // ×¢Ò⣺²»ÄÜÓà head ½Ø¶Ï£¨°æ±¾ÐÅÏ¢ÔÚÊä³öĩβµÄ Packages ¶Î£¬head »á½Øµô£©
- var °æ±¾Êä³ö = Ö´ÐÐÃüÁî("dumpsys package " + °üÃû + " | grep version", true);
- if (°æ±¾Êä³ö && °æ±¾Êä³ö.length > 0 && °æ±¾Êä³ö.indexOf("Permission Denial") === -1) {
- var ÐÐÊý×é = °æ±¾Êä³ö.split("\n");
- for (var i = 0; i < ÐÐÊý×é.length; i++) {
- var r = ÐÐÊý×é[i].trim();
- if (r.indexOf("versionName=") !== -1 && !ÐÅÏ¢.°æ±¾Ãû) {
- ÐÅÏ¢.°æ±¾Ãû = r.replace("versionName=", "").split(" ")[0].trim();
- } else if (r.indexOf("versionName ") !== -1 && !ÐÅÏ¢.°æ±¾Ãû) {
- ÐÅÏ¢.°æ±¾Ãû = r.replace("versionName ", "").split(" ")[0].trim();
- }
- if (r.indexOf("versionCode=") !== -1 && !ÐÅÏ¢.°æ±¾ºÅ) {
- ÐÅÏ¢.°æ±¾ºÅ = r.replace("versionCode=", "").split(" ")[0].trim();
- } else if (r.indexOf("versionCode ") !== -1 && !ÐÅÏ¢.°æ±¾ºÅ) {
- ÐÅÏ¢.°æ±¾ºÅ = r.replace("versionCode ", "").split(" ")[0].trim();
- }
- // Ò²´¦Àí "versionName=xxx" ¸ñʽ£¨²»´ø¿Õ¸ñµÄÕûÐУ©
- if (r.indexOf("versionName=") !== -1 && !ÐÅÏ¢.°æ±¾Ãû) {
- var m = r.match(/versionName=(\S+)/);
- if (m) ÐÅÏ¢.°æ±¾Ãû = m[1];
- }
- if (r.indexOf("versionCode=") !== -1 && !ÐÅÏ¢.°æ±¾ºÅ) {
- var m2 = r.match(/versionCode=(\S+)/);
- if (m2) ÐÅÏ¢.°æ±¾ºÅ = m2[1];
- }
- }
- }
- // ²ßÂÔ3£ºpm dump | grep version£¨»ØÍË·½°¸£©
- if (!ÐÅÏ¢.°æ±¾Ãû) {
- var pmÊä³ö = Ö´ÐÐÃüÁî("pm dump " + °üÃû + " | grep version", true);
- if (pmÊä³ö && pmÊä³ö.length > 0 && pmÊä³ö.indexOf("Permission Denial") === -1) {
- var pmÐÐ = pmÊä³ö.split("\n");
- for (var j = 0; j < pmÐÐ.length; j++) {
- var pr = pmÐÐ[j].trim();
- if (pr.indexOf("versionName=") !== -1 && !ÐÅÏ¢.°æ±¾Ãû) {
- var pmM = pr.match(/versionName=(\S+)/);
- if (pmM) ÐÅÏ¢.°æ±¾Ãû = pmM[1];
- }
- if (pr.indexOf("versionCode=") !== -1 && !ÐÅÏ¢.°æ±¾ºÅ) {
- var pmM2 = pr.match(/versionCode=(\S+)/);
- if (pmM2) ÐÅÏ¢.°æ±¾ºÅ = pmM2[1];
- }
- }
- }
- }
- return ÐÅÏ¢;
- };
- // =============================================================================
- // Ä£¿éÈý£ºÎļþ²Ù×÷
- // =============================================================================
- /**
- * ÁгöĿ¼ÄÚÈÝ
- * @param {string} Ŀ¼·¾¶
- * @returns {string} ls -la Êä³ö
- */
- AdbUtil.ÁÐĿ¼ = function(Ŀ¼·¾¶) {
- return Ö´ÐÐÃüÁî("ls -la " + Ŀ¼·¾¶, false);
- };
- /**
- * ¶ÁÈ¡ÎļþÄÚÈÝ
- * @param {string} Îļþ·¾¶
- * @returns {string} ÎļþÄÚÈÝ
- */
- AdbUtil.¶ÁÎļþ = function(Îļþ·¾¶) {
- return Ö´ÐÐÃüÁî("cat " + Îļþ·¾¶ + " 2>/dev/null", false);
- };
- /**
- * дÈëÎļþ£¨¸²¸ÇдÈ룩
- * @param {string} Îļþ·¾¶
- * @param {string} ÄÚÈÝ - ½öÖ§³Ö²»º¬µ¥ÒýºÅµÄÄÚÈÝ£¬º¬µ¥ÒýºÅÐè×ÔÐÐתÒå
- * @returns {boolean}
- */
- AdbUtil.дÎļþ = function(Îļþ·¾¶, ÄÚÈÝ) {
- return Ö´ÐÐÃüÁĬ("echo '" + ÄÚÈÝ + "' > " + Îļþ·¾¶, false);
- };
- /**
- * ×·¼ÓдÈëÎļþ
- * @param {string} Îļþ·¾¶
- * @param {string} ÄÚÈÝ
- * @returns {boolean}
- */
- AdbUtil.×·¼ÓдÎļþ = function(Îļþ·¾¶, ÄÚÈÝ) {
- return Ö´ÐÐÃüÁĬ("echo '" + ÄÚÈÝ + "' >> " + Îļþ·¾¶, false);
- };
- /**
- * ¸´ÖÆÎļþ
- * @param {string} Դ·¾¶
- * @param {string} Ä¿±ê·¾¶
- * @returns {boolean}
- */
- AdbUtil.¸´ÖÆÎļþ = function(Դ·¾¶, Ä¿±ê·¾¶) {
- return Ö´ÐÐÃüÁĬ("cp " + Դ·¾¶ + " " + Ä¿±ê·¾¶ + " 2>/dev/null", false);
- };
- /**
- * ´´½¨Ä¿Â¼£¨µÝ¹é´´½¨£©
- * @param {string} Ŀ¼·¾¶
- * @returns {boolean}
- */
- AdbUtil.´´½¨Ä¿Â¼ = function(Ŀ¼·¾¶) {
- return Ö´ÐÐÃüÁĬ("mkdir -p " + Ŀ¼·¾¶, false);
- };
- /**
- * ɾ³ýÎļþ»òĿ¼
- * @param {string} ·¾¶
- * @returns {boolean}
- */
- AdbUtil.ɾ³ý = function(·¾¶) {
- return Ö´ÐÐÃüÁĬ("rm -rf " + ·¾¶ + " 2>/dev/null", false);
- };
- /**
- * »ñÈ¡Îļþ´óС£¨×Ö½Ú£©
- * @param {string} Îļþ·¾¶
- * @returns {number} Îļþ´óС£¨×Ö½Ú£©£¬Ê§°Ü·µ»Ø -1
- */
- AdbUtil.Îļþ´óС = function(Îļþ·¾¶) {
- var ½á¹û = Ö´ÐÐÃüÁî("stat -c %s " + Îļþ·¾¶ + " 2>/dev/null", false);
- var ´óС = parseInt(½á¹û.trim(), 10);
- return isNaN(´óС) ? -1 : ´óС;
- };
- // =============================================================================
- // Ä£¿éËÄ£ºÊäÈëÄ£Äâ
- // =============================================================================
- /**
- * Ä£Äâµã»÷×ø±ê
- * @param {number} x - X ×ø±ê
- * @param {number} y - Y ×ø±ê
- * @returns {boolean}
- */
- AdbUtil.µã»÷ = function(x, y) {
- return Ö´ÐÐÃüÁĬ("input tap " + x + " " + y, false);
- };
- /**
- * Ä£Ä⻬¶¯
- * @param {number} x1 - Æðµã X
- * @param {number} y1 - Æðµã Y
- * @param {number} x2 - ÖÕµã X
- * @param {number} y2 - ÖÕµã Y
- * @param {number} ʱ³¤ - »¬¶¯Ê±³¤£¨ºÁÃ룩£¬Ä¬ÈÏ 300
- * @returns {boolean}
- */
- AdbUtil.»¬¶¯ = function(x1, y1, x2, y2, ʱ³¤) {
- ʱ³¤ = ʱ³¤ || 300;
- return Ö´ÐÐÃüÁĬ("input swipe " + x1 + " " + y1 + " " + x2 + " " + y2 + " " + ʱ³¤, false);
- };
- /**
- * Ä£Äⳤ°´£¨ÆðµãÖÕµãÏàͬ£¬Ê±³¤ > 500ms£©
- * @param {number} x
- * @param {number} y
- * @param {number} ʱ³¤ - ³¤°´Ê±³¤£¨ºÁÃ룩£¬Ä¬ÈÏ 1000
- * @returns {boolean}
- */
- AdbUtil.³¤°´ = function(x, y, ʱ³¤) {
- ʱ³¤ = ʱ³¤ || 1000;
- return Ö´ÐÐÃüÁĬ("input swipe " + x + " " + y + " " + x + " " + y + " " + ʱ³¤, false);
- };
- /**
- * Ä£ÄâÊäÈëÎÄ×Ö£¨½öÖ§³Ö ASCII£©
- * @param {string} ÎÄ×Ö
- * @returns {boolean}
- */
- AdbUtil.ÊäÈëÎÄ×Ö = function(ÎÄ×Ö) {
- // input text ²»Ö§³Ö¿Õ¸ñ£¬ÐèÓà %s Ìæ´ú
- var Ìæ»» = ÎÄ×Ö.replace(/ /g, "%s");
- return Ö´ÐÐÃüÁĬ("input text '" + Ìæ»» + "'", false);
- };
- /**
- * Ä£Äâ°´¼üʼþ
- * @param {number|string} ¼üÂë - KeyEvent ¼üÂ룬Èç 4=·µ»Ø, 3=Home, 26=µçÔ´
- * @returns {boolean}
- *
- * ³£ÓüüÂëËٲ飺
- * 3=HOME 4=BACK 5=ºô½Ð 6=¹Ò¶Ï 24=ÒôÁ¿+ 25=ÒôÁ¿-
- * 26=µçÔ´ 27=Ïà»ú 66=»Ø³µ 82=²Ëµ¥ 84=ËÑË÷ 279=Õ³Ìù
- */
- AdbUtil.°´¼ü = function(¼üÂë) {
- return Ö´ÐÐÃüÁĬ("input keyevent " + ¼üÂë, false);
- };
- /**
- * Ä£Äâ·µ»Ø¼ü
- */
- AdbUtil.·µ»Ø¼ü = function() {
- return AdbUtil.°´¼ü(4);
- };
- /**
- * Ä£Äâ Home ¼ü
- */
- AdbUtil.Home¼ü = function() {
- return AdbUtil.°´¼ü(3);
- };
- // =============================================================================
- // Ä£¿éÎ壺ǰ̨ӦÓüì²â + ½ø³Ì¹ÜÀí
- // =============================================================================
- /**
- * »ñÈ¡µ±Ç°Ç°Ì¨°üÃû£¨¶à²ßÂÔ£ºdumpsys window ¡ú dumpsys activity ¡ú ÔÉú·½·¨£©
- * @returns {string} ǰ̨°üÃû£¬Èç "com.tencent.mm"
- */
- AdbUtil.»ñȡǰ̨°üÃû = function() {
- // ²ßÂÔ1£ºdumpsys activity activities | head -50£¨ÏÞÖÆÊä³ö·ÀÖ¹¿¨ËÀ£¬mResumedActivityÔÚǰ30ÐÐÄÚ£©
- var activityÊä³ö = Ö´ÐÐÃüÁî("dumpsys activity activities | head -50", true);
- if (activityÊä³ö && activityÊä³ö.length > 0 && activityÊä³ö.indexOf("Permission Denial") === -1) {
- var ÐÐÊý×é = activityÊä³ö.split("\n");
- for (var fi = 0; fi < ÐÐÊý×é.length; fi++) {
- var ÐÐ = ÐÐÊý×é[fi].trim();
- if (ÐÐ.indexOf("mResumedActivity") !== -1 ||
- ÐÐ.indexOf("topResumedActivity") !== -1 ||
- ÐÐ.indexOf("ResumedActivity") !== -1) {
- var б¸Ü = ÐÐ.indexOf("/");
- if (б¸Ü !== -1) {
- var ǰ¶Î = ÐÐ.substring(0, б¸Ü);
- var ¿Õ¸ñ = ǰ¶Î.lastIndexOf(" ");
- if (¿Õ¸ñ !== -1) {
- var °üÃû = ǰ¶Î.substring(¿Õ¸ñ + 1).trim();
- if (°üÃû && °üÃû.indexOf(".") !== -1) return °üÃû;
- }
- }
- }
- }
- }
- // ²ßÂÔ2£ºdumpsys window | head -30£¨ÏÞÖÆÊä³ö·ÀÖ¹¿¨ËÀ£¬mCurrentFocusÔÚǰ10ÐÐÄÚ£©
- var windowÊä³ö = Ö´ÐÐÃüÁî("dumpsys window | head -30", true);
- if (windowÊä³ö && windowÊä³ö.length > 0 && windowÊä³ö.indexOf("Permission Denial") === -1) {
- var winÐÐ = windowÊä³ö.split("\n");
- for (var wi = 0; wi < winÐÐ.length; wi++) {
- var wÐÐ = winÐÐ[wi].trim();
- if (wÐÐ.indexOf("mCurrentFocus") !== -1 ||
- wÐÐ.indexOf("mFocusedApp") !== -1 ||
- wÐÐ.indexOf("mFocusedWindow") !== -1) {
- var wб¸Ü = wÐÐ.indexOf("/");
- if (wб¸Ü !== -1) {
- var wǰ¶Î = wÐÐ.substring(0, wб¸Ü);
- var w¿Õ¸ñ = wǰ¶Î.lastIndexOf(" ");
- if (w¿Õ¸ñ !== -1) {
- var w°üÃû = wǰ¶Î.substring(w¿Õ¸ñ + 1).trim();
- if (w°üÃû && w°üÃû.indexOf(".") !== -1) return w°üÃû;
- }
- }
- }
- }
- }
- // ²ßÂÔ3£ºAIWROK ÔÉú·½·¨
- try {
- if (typeof auto !== "undefined") {
- if (auto.getTopPackName) {
- var p = String(auto.getTopPackName());
- if (p && p.length > 0) return p;
- }
- }
- } catch (e) {}
- return "";
- };
- /**
- * »ñÈ¡µ±Ç°Ç°Ì¨ Activity È«Ãû
- * @returns {string} Èç "com.tencent.mm/.ui.LauncherUI"
- */
- AdbUtil.»ñȡǰ̨Activity = function() {
- // ²ßÂÔ1£ºdumpsys activity activities | head -50£¨ÏÞÖÆÊä³ö·ÀÖ¹¿¨ËÀ£©
- var activityÊä³ö = Ö´ÐÐÃüÁî("dumpsys activity activities | head -50", true);
- if (activityÊä³ö && activityÊä³ö.length > 0 && activityÊä³ö.indexOf("Permission Denial") === -1) {
- var ÐÐÊý×é = activityÊä³ö.split("\n");
- for (var fi = 0; fi < ÐÐÊý×é.length; fi++) {
- var ÐÐ = ÐÐÊý×é[fi].trim();
- if (ÐÐ.indexOf("mResumedActivity") !== -1 ||
- ÐÐ.indexOf("topResumedActivity") !== -1) {
- var m = ÐÐ.match(/(\w+\.\w+\.\w+\/\S+)/);
- if (m) return m[1].replace(/[}]/g, "").trim();
- }
- }
- }
- // ²ßÂÔ2£ºdumpsys window | head -30£¨ÏÞÖÆÊä³ö·ÀÖ¹¿¨ËÀ£©
- var windowÊä³ö = Ö´ÐÐÃüÁî("dumpsys window | head -30", true);
- if (windowÊä³ö && windowÊä³ö.length > 0 && windowÊä³ö.indexOf("Permission Denial") === -1) {
- var winÐÐ = windowÊä³ö.split("\n");
- for (var wi = 0; wi < winÐÐ.length; wi++) {
- var wÐÐ = winÐÐ[wi].trim();
- if (wÐÐ.indexOf("mCurrentFocus") !== -1 ||
- wÐÐ.indexOf("mFocusedApp") !== -1) {
- var m2 = wÐÐ.match(/(\w+\.\w+\.\w+\/\S+)/);
- if (m2) return m2[1].replace(/[}]/g, "").trim();
- }
- }
- }
- return "";
- };
- /**
- * ¼ì²éÖ¸¶¨Ó¦ÓÃÊÇ·ñÔÚǰ̨
- * @param {string} °üÃû
- * @returns {boolean}
- */
- AdbUtil.ÊÇ·ñÔÚǰ̨ = function(°üÃû) {
- var ǰ̨ = AdbUtil.»ñȡǰ̨°üÃû();
- return ǰ̨ === °üÃû;
- };
- /**
- * ¼ì²éÖ¸¶¨½ø³ÌÊÇ·ñÔÚÔËÐÐ
- * @param {string} °üÃû»ò½ø³ÌÃû
- * @returns {boolean}
- */
- AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ = function(°üÃû) {
- // ²ßÂÔ1£ºps -A | grep£¨ÐèÒª root ȨÏÞ£¬Android 14 ÆÕͨȨÏÞÖ»ÄÜ¿´µ½µ±Ç°»á»°½ø³Ì£©
- var ½á¹û = Ö´ÐÐÃüÁî("ps -A | grep " + °üÃû, true);
- if (½á¹û && ½á¹û.length > 0 && ½á¹û.indexOf(°üÃû) !== -1) return true;
- // ²ßÂÔ2£ºpgrep -f£¨ÐèÒª root ȨÏÞ£©
- var pgrep½á¹û = Ö´ÐÐÃüÁî("pgrep -f " + °üÃû, true);
- if (pgrep½á¹û && pgrep½á¹û.length > 0 && /^\d+/.test(pgrep½á¹û.trim())) return true;
- // ²ßÂÔ3£ºpidof£¨ÐèÒª root ȨÏÞ£©
- var pidof½á¹û = Ö´ÐÐÃüÁî("pidof " + °üÃû, true);
- if (pidof½á¹û && pidof½á¹û.length > 0 && pidof½á¹û.indexOf("pidof:") === -1 && /^\d+/.test(pidof½á¹û.trim())) return true;
- // ²ßÂÔ4£ºps -A È«Á¿Êä³öÔÚ JS ÖÐËÑË÷£¨root ȨÏÞ£©
- var psÊä³ö = Ö´ÐÐÃüÁî("ps -A", true);
- if (psÊä³ö && psÊä³ö.length > 0) {
- var psÐÐ = psÊä³ö.split("\n");
- for (var pi = 0; pi < psÐÐ.length; pi++) {
- if (psÐÐ[pi].indexOf(°üÃû) !== -1) return true;
- }
- }
- return false;
- };
- /**
- * »ñÈ¡ CPU Õ¼ÓÃ×î¸ßµÄ½ø³Ì
- * @returns {string} top ÃüÁîǰ 15 ÐÐ
- */
- AdbUtil.»ñÈ¡CPUÕ¼Óà = function() {
- // ÐèÒª root ȨÏÞ£¬ÆÕͨȨÏÞ top Ö»ÏÔʾµ±Ç°»á»°µÄ 3 ¸ö½ø³Ì
- return Ö´ÐÐÃüÁî("top -n 1 -b | head -15", true);
- };
- /**
- * ɱËÀÖ¸¶¨½ø³Ì£¨ÐèÒª root »òͬ UID£©
- * @param {number|string} pid - ½ø³Ì ID »ò°üÃû
- * @param {boolean} ÊÇ·ñroot
- * @returns {boolean}
- */
- AdbUtil.ɱËÀ½ø³Ì = function(pid, ÊÇ·ñroot) {
- // Èç¹û´«ÈëµÄÊǰüÃû£¬ÏÈ»ñÈ¡ PID£¨ÐèÒª root ȨÏÞ£©
- if (typeof pid === "string" && pid.indexOf(".") !== -1) {
- var ps½á¹û = Ö´ÐÐÃüÁî("ps -A | grep " + pid, true);
- if (ps½á¹û && ps½á¹û.indexOf(pid) !== -1) {
- var ×Ö¶Î = ps½á¹û.trim().split(/\s+/);
- if (×Ö¶Î.length >= 2) pid = ×Ö¶Î[1]; // ps Êä³öµÚ¶þÁÐÊÇ PID
- }
- }
- return Ö´ÐÐÃüÁĬ("kill " + pid, ÊÇ·ñroot || true);
- };
- // =============================================================================
- // Ä£¿éÁù£º½ØÍ¼ + ÍøÂçÕï¶Ï
- // =============================================================================
- /**
- * ½ØÍ¼±£´æµ½Îļþ
- * @param {string} ±£´æÂ·¾¶ - Èç /sdcard/screenshot.png
- * @returns {boolean} ÊÇ·ñ³É¹¦
- */
- AdbUtil.½ØÍ¼ = function(±£´æÂ·¾¶) {
- ±£´æÂ·¾¶ = ±£´æÂ·¾¶ || ("/sdcard/screenshot_" + Date.now() + ".png");
- // ²ßÂÔ1£ºscreencap ÆÕͨȨÏÞ£¨Ôö¼ÓÑÓʱȷ±£ÎļþдÈëÍê³É£©
- Ö´ÐÐÃüÁĬ("screencap -p " + ±£´æÂ·¾¶, false);
- sleep.millisecond(1000);
- var ´óС1 = AdbUtil.Îļþ´óС(±£´æÂ·¾¶);
- if (´óС1 > 0) {
- print.log(" ½ØÍ¼Òѱ£´æ: " + ±£´æÂ·¾¶);
- return true;
- }
- // ²ßÂÔ2£ºscreencap root ȨÏÞ
- Ö´ÐÐÃüÁĬ("screencap -p " + ±£´æÂ·¾¶, true);
- sleep.millisecond(1000);
- var ´óС2 = AdbUtil.Îļþ´óС(±£´æÂ·¾¶);
- if (´óС2 > 0) {
- print.log(" ½ØÍ¼Òѱ£´æ(root): " + ±£´æÂ·¾¶);
- return true;
- }
- // ²ßÂÔ3£ºÏȽØÍ¼µ½ÁÙʱÎļþÔÙ¸´ÖÆ£¨²¿·ÖÉ豸 screencap ²»Ö§³ÖÖ±½Óд sdcard£©
- var ÁÙʱ·¾¶ = "/data/local/tmp/screenshot_tmp.png";
- Ö´ÐÐÃüÁĬ("screencap -p " + ÁÙʱ·¾¶, false);
- sleep.millisecond(1000);
- var ´óС3 = AdbUtil.Îļþ´óС(ÁÙʱ·¾¶);
- if (´óС3 > 0) {
- Ö´ÐÐÃüÁĬ("cp " + ÁÙʱ·¾¶ + " " + ±£´æÂ·¾¶, false);
- sleep.millisecond(300);
- Ö´ÐÐÃüÁĬ("rm -f " + ÁÙʱ·¾¶, false);
- print.log(" ½ØÍ¼Òѱ£´æ(ÁÙʱÎļþÖÐת): " + ±£´æÂ·¾¶);
- return true;
- }
- // ²ßÂÔ4£ºÊ¹Óà input keyevent 120 (KEYCODE_SYSRQ) ½ØÆÁϵͳ¿ì½Ý¼ü
- Ö´ÐÐÃüÁĬ("input keyevent 120", false);
- sleep.millisecond(1500);
- // ϵͳ½ØÍ¼Ä¬Èϱ£´æµ½ /sdcard/Pictures/Screenshots/
- var ϵͳ½ØÍ¼Ä¿Â¼ = Ö´ÐÐÃüÁî("ls -t /sdcard/Pictures/Screenshots/ | head -1", false);
- if (ϵͳ½ØÍ¼Ä¿Â¼ && ϵͳ½ØÍ¼Ä¿Â¼.length > 0) {
- var ϵͳ½ØÍ¼Â·¾¶ = "/sdcard/Pictures/Screenshots/" + ϵͳ½ØÍ¼Ä¿Â¼.trim();
- var ϵͳ´óС = AdbUtil.Îļþ´óС(ϵͳ½ØÍ¼Â·¾¶);
- if (ϵͳ´óС > 0) {
- Ö´ÐÐÃüÁĬ("cp " + ϵͳ½ØÍ¼Â·¾¶ + " " + ±£´æÂ·¾¶, false);
- sleep.millisecond(300);
- print.log(" ½ØÍ¼Òѱ£´æ(ϵͳ¿ì½Ý¼ü): " + ±£´æÂ·¾¶);
- return true;
- }
- }
- print.log(" ½ØÍ¼Ê§°Ü£¨screencap ²»¿ÉÓûòȨÏÞ²»×㣩");
- return false;
- };
- /**
- * Ping ²âÊÔ
- * @param {string} µØÖ· - ÓòÃû»ò IP£¬Ä¬ÈÏ www.baidu.com
- * @param {number} ´ÎÊý - ping ´ÎÊý£¬Ä¬ÈÏ 3
- * @returns {string} ping Êä³ö
- */
- AdbUtil.Ping = function(µØÖ·, ´ÎÊý) {
- µØÖ· = µØÖ· || "www.baidu.com";
- ´ÎÊý = ´ÎÊý || 3;
- return Ö´ÐÐÃüÁî("ping -c " + ´ÎÊý + " " + µØÖ·, false);
- };
- /**
- * »ñÈ¡ WiFi IP µØÖ·
- * @returns {string} Èç "192.168.1.100"
- */
- AdbUtil.»ñÈ¡WiFiIP = function() {
- var Êä³ö = Ö´ÐÐÃüÁî("ip addr show wlan0 2>/dev/null", false);
- if (Êä³ö) {
- var m = Êä³ö.match(/inet\s+(\d+\.\d+\.\d+\.\d+)/);
- if (m) return m[1];
- }
- return "";
- };
- /**
- * »ñÈ¡ÍøÂç½Ó¿ÚÐÅÏ¢
- * @returns {string} ip addr Êä³ö
- */
- AdbUtil.»ñÈ¡ÍøÂç½Ó¿Ú = function() {
- return Ö´ÐÐÃüÁî("ip addr", false);
- };
- /**
- * »ñȡ·Óɱí
- * @returns {string}
- */
- AdbUtil.»ñȡ·Óɱí = function() {
- return Ö´ÐÐÃüÁî("ip route", false);
- };
- // =============================================================================
- // Ä£¿éÆß£ºÏµÍ³ÉèÖ㨲¿·ÖÐèÒª root£©
- // =============================================================================
- /**
- * »ñȡϵͳÉèÖÃÖµ
- * @param {string} ÃüÃû¿Õ¼ä - "system" / "secure" / "global"
- * @param {string} ¼üÃû - ÉèÖüüÃû
- * @param {boolean} ÊÇ·ñroot
- * @returns {string} ÉèÖÃÖµ
- */
- AdbUtil.»ñÈ¡ÉèÖà = function(ÃüÃû¿Õ¼ä, ¼üÃû, ÊÇ·ñroot) {
- // ²ßÂÔ1£ºsettings get
- var ½á¹û = Ö´ÐÐÃüÁî("settings get " + ÃüÃû¿Õ¼ä + " " + ¼üÃû, ÊÇ·ñroot || false);
- if (½á¹û && ½á¹û.indexOf("Exception") === -1 && ½á¹û.indexOf("null") !== 0) {
- return ½á¹û.trim();
- }
- // ²ßÂÔ2£ºcontent query£¨·Ç root »ØÍË£©
- var ²éѯ = Ö´ÐÐÃüÁî(
- "content query --uri content://settings/" + ÃüÃû¿Õ¼ä +
- " --where \"name='" + ¼üÃû + "'\"", false
- );
- if (²éѯ && ²éѯ.indexOf("value=") !== -1) {
- var vIdx = ²éѯ.indexOf("value=");
- return ²éѯ.substring(vIdx + 6).split(",")[0].trim();
- }
- return "";
- };
- /**
- * ÐÞ¸ÄϵͳÉèÖÃÖµ£¨Í¨³£ÐèÒª root£©
- * @param {string} ÃüÃû¿Õ¼ä
- * @param {string} ¼üÃû
- * @param {string} Öµ
- * @param {boolean} ÊÇ·ñroot
- * @returns {boolean}
- */
- AdbUtil.ÉèÖÃÖµ = function(ÃüÃû¿Õ¼ä, ¼üÃû, Öµ, ÊÇ·ñroot) {
- return Ö´ÐÐÃüÁĬ(
- "settings put " + ÃüÃû¿Õ¼ä + " " + ¼üÃû + " " + Öµ,
- ÊÇ·ñroot || false
- );
- };
- /**
- * »ñÈ¡ÆÁÄ»³¬Ê±Ê±¼ä£¨ºÁÃ룩
- * @returns {string}
- */
- AdbUtil.»ñÈ¡ÆÁÄ»³¬Ê± = function() {
- return AdbUtil.»ñÈ¡ÉèÖÃ("system", "screen_off_timeout", true);
- };
- /**
- * ÉèÖÃÆÁÄ»³¬Ê±Ê±¼ä
- * @param {number} ºÁÃë - ³¬Ê±Ê±¼ä£¬Èç 60000=60Ãë
- * @returns {boolean}
- */
- AdbUtil.ÉèÖÃÆÁÄ»³¬Ê± = function(ºÁÃë) {
- return AdbUtil.ÉèÖÃÖµ("system", "screen_off_timeout", ºÁÃë, true);
- };
- // =============================================================================
- // ×ÛºÏʵսÑÝʾ ¡ª¡ª È«²¿¹¦ÄÜÔËÐÐÒ»±é£¬Ã¿¸ö¹¦ÄÜǰ 3 Ãëµ¹¼ÆÊ±
- // =============================================================================
- /**
- * 3Ãëµ¹¼ÆÊ±º¯Êý ¡ª¡ª ÿ¸ö¹¦ÄÜǰִÐУ¬Ôö¼Ó½Ú×à¸Ð
- * @param {string} ¹¦ÄÜÃû³Æ - ¼´½«Ö´ÐеŦÄÜÃû³Æ
- */
- function µ¹¼ÆÊ±(¹¦ÄÜÃû³Æ) {
- print.log("\n©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤");
- print.log(" ¼´½«Ö´ÐÐ: " + ¹¦ÄÜÃû³Æ);
- for (var i = 3; i > 0; i--) {
- print.log(" ⏳ µ¹¼ÆÊ± " + i + " Ãë...");
- sleep.second(1);
- }
- print.log(" ▶ ¿ªÊ¼Ö´ÐÐ: " + ¹¦ÄÜÃû³Æ);
- print.log("©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤\n");
- }
- print.log("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
- print.log("¨U adb.exec() È«¹¦ÄÜʵ»úÔËÐÐÑÝʾ ¨U");
- print.log("¨U ¹² 12 ¸ö¹¦ÄÜÄ£¿é£¬Ã¿¸ö¼ä¸ô 3 Ãëµ¹¼ÆÊ± ¨U");
- print.log("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a\n");
- // ===== ÑÝʾ1£ºÉ豸ÐÅÏ¢Ò»¼ü²É¼¯ =====
- µ¹¼ÆÊ±("ÑÝʾ1 / É豸ÐÅÏ¢Ò»¼ü²É¼¯");
- print.log("¡¾ÑÝʾ1¡¿É豸ÐÅÏ¢Ò»¼ü²É¼¯");
- var É豸 = AdbUtil.»ñÈ¡É豸ÐÅÏ¢();
- print.log(" ÐͺÅ: " + É豸.ÐͺÅ);
- print.log(" Æ·ÅÆ: " + É豸.Æ·ÅÆ);
- print.log(" °²×¿°æ±¾: " + É豸.°²×¿°æ±¾ + " (SDK " + É豸.SDK°æ±¾ + ")");
- print.log(" ÖÆÔìÉÌ: " + É豸.ÖÆÔìÉÌ);
- print.log(" ÐòÁкÅ: " + É豸.ÐòÁкÅ);
- var ÆÁÄ» = AdbUtil.»ñÈ¡ÆÁÄ»ÐÅÏ¢();
- print.log(" ·Ö±æÂÊ: " + ÆÁÄ».·Ö±æÂÊ);
- print.log(" ÃܶÈ: " + ÆÁÄ».ÃܶÈ);
- var µç³Ø = AdbUtil.»ñÈ¡µç³ØÐÅÏ¢();
- print.log(" µçÁ¿: " + (µç³Ø.µçÁ¿ || "?") + "% | ζÈ: " + (µç³Ø.ÎÂ¶È || "?") + " | ״̬: " + (µç³Ø.״̬ || "?"));
- print.log(" µç³Ø¼¼Êõ: " + (µç³Ø.¼¼Êõ || "?"));
- // Õï¶Ï£ºÈç¹ûµç³ØÐÅϢΪ¿Õ£¬´òÓ¡ dumpsys battery ǰ5ÐаïÖúÅŲé
- if (!µç³Ø.µçÁ¿) {
- print.log(" [Õï¶Ï] dumpsys battery ǰ5ÐÐ:");
- var Õï¶Ïµç³Ø = Ö´ÐÐÃüÁî("dumpsys battery", true);
- if (Õï¶Ïµç³Ø && Õï¶Ïµç³Ø.length > 0) {
- var Õï¶ÏÐÐ = Õï¶Ïµç³Ø.split("\n");
- for (var di = 0; di < Math.min(5, Õï¶ÏÐÐ.length); di++) {
- print.log(" " + Õï¶ÏÐÐ[di].trim());
- }
- } else {
- print.log(" dumpsys battery ·µ»Ø¿Õ!");
- }
- }
- var ÄÚ´æ = AdbUtil.»ñÈ¡ÄÚ´æÐÅÏ¢();
- print.log(" ÄÚ´æÐÅÏ¢:");
- var ÄÚ´æÐÐ = ÄÚ´æ.split("\n");
- for (var mi = 0; mi < ÄÚ´æÐÐ.length; mi++) {
- if (ÄÚ´æÐÐ[mi].trim()) print.log(" " + ÄÚ´æÐÐ[mi].trim());
- }
- print.log("✅ ÑÝʾ1 Íê³É");
- // ===== ÑÝʾ2£ºÇ°Ì¨Ó¦Óüì²â =====
- µ¹¼ÆÊ±("ÑÝʾ2 / ǰ̨ӦÓüì²â");
- print.log("¡¾ÑÝʾ2¡¿Ç°Ì¨Ó¦Óüì²â");
- var ǰ̨°üÃû = AdbUtil.»ñȡǰ̨°üÃû();
- print.log(" µ±Ç°Ç°Ì¨°üÃû: " + (ǰ̨°üÃû || "»ñȡʧ°Ü"));
- var ǰ̨Activity = AdbUtil.»ñȡǰ̨Activity();
- print.log(" µ±Ç°Ç°Ì¨Activity: " + (ǰ̨Activity || "»ñȡʧ°Ü"));
- // Õï¶Ï£ºÈç¹ûǰ̨°üÃûΪ¿Õ£¬´òÓ¡ dumpsys activity activities Öаüº¬ Resumed µÄÐÐ
- if (!ǰ̨°üÃû) {
- print.log(" [Õï¶Ï] dumpsys activity activities ÖÐ Resumed Ïà¹ØÐÐ:");
- var Õï¶Ïactivity = Ö´ÐÐÃüÁî("dumpsys activity activities | head -100", true);
- if (Õï¶Ïactivity && Õï¶Ïactivity.length > 0) {
- var Õï¶ÏÐÐ = Õï¶Ïactivity.split("\n");
- var ÕÒµ½ = 0;
- for (var di2 = 0; di2 < Õï¶ÏÐÐ.length && ÕÒµ½ < 3; di2++) {
- if (Õï¶ÏÐÐ[di2].indexOf("Resumed") !== -1 ||
- Õï¶ÏÐÐ[di2].indexOf("resumed") !== -1 ||
- Õï¶ÏÐÐ[di2].indexOf("topResumed") !== -1) {
- print.log(" " + Õï¶ÏÐÐ[di2].trim());
- ÕÒµ½++;
- }
- }
- if (ÕÒµ½ === 0) print.log(" δÕÒµ½ Resumed Ïà¹ØÐУ¬Êä³öǰ3ÐÐ:");
- for (var di3 = 0; di3 < Math.min(3, Õï¶ÏÐÐ.length); di3++) {
- print.log(" " + Õï¶ÏÐÐ[di3].trim());
- }
- } else {
- print.log(" dumpsys activity activities ·µ»Ø¿Õ!");
- }
- }
- if (ǰ̨°üÃû) {
- print.log(" ÊÇ·ñÔÚǰ̨ÅжÏ: " + (AdbUtil.ÊÇ·ñÔÚǰ̨(ǰ̨°üÃû) ? "ÊÇ ✓" : "·ñ"));
- }
- print.log("✅ ÑÝʾ2 Íê³É");
- // ===== ÑÝʾ3£ºµÚÈý·½Ó¦ÓÃÁбí =====
- µ¹¼ÆÊ±("ÑÝʾ3 / µÚÈý·½Ó¦ÓÃÁбí");
- print.log("¡¾ÑÝʾ3¡¿µÚÈý·½Ó¦ÓÃÁÐ±í£¨Ç°5¸ö£©");
- var Ó¦ÓÃÁбí = AdbUtil.ÁгöµÚÈý·½Ó¦ÓÃ();
- print.log(" ¹² " + Ó¦ÓÃÁбí.length + " ¸öµÚÈý·½Ó¦ÓÃ");
- for (var i = 0; i < Math.min(5, Ó¦ÓÃÁбí.length); i++) {
- var ÐÅÏ¢ = AdbUtil.»ñȡӦÓÃÐÅÏ¢(Ó¦ÓÃÁбí[i]);
- print.log(" " + (i + 1) + ". " + Ó¦ÓÃÁбí[i] + " v" + (ÐÅÏ¢.°æ±¾Ãû || "?"));
- // Õï¶Ï£ºµÚÒ»¸öÓ¦Óð汾Ϊ¿Õʱ£¬´òÓ¡ grep version µÄÔʼÊä³ö
- if (!ÐÅÏ¢.°æ±¾Ãû && i === 0) {
- print.log(" [Õï¶Ï] dumpsys package " + Ó¦ÓÃÁбí[i] + " | grep version Êä³ö:");
- var Õï¶Ïpkg = Ö´ÐÐÃüÁî("dumpsys package " + Ó¦ÓÃÁбí[i] + " | grep version", true);
- if (Õï¶Ïpkg && Õï¶Ïpkg.length > 0) {
- var pkgÐÐ = Õï¶Ïpkg.split("\n");
- for (var dpk = 0; dpk < Math.min(5, pkgÐÐ.length); dpk++) {
- print.log(" " + pkgÐÐ[dpk].trim());
- }
- } else {
- print.log(" dumpsys package | grep version ·µ»Ø¿Õ!");
- }
- }
- }
- print.log("✅ ÑÝʾ3 Íê³É");
- // ===== ÑÝʾ4£º½ø³Ì¼ì²é =====
- µ¹¼ÆÊ±("ÑÝʾ4 / ½ø³Ì¼ì²é");
- print.log("¡¾ÑÝʾ4¡¿½ø³Ì¼ì²é");
- print.log(" ΢ÐÅÊÇ·ñÔËÐÐ: " + (AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ("com.tencent.mm") ? "ÊÇ ✓" : "·ñ"));
- print.log(" ÌÔ±¦ÊÇ·ñÔËÐÐ: " + (AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ("com.taobao.taobao") ? "ÊÇ ✓" : "·ñ"));
- print.log(" QQÊÇ·ñÔËÐÐ: " + (AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ("com.tencent.mobileqq") ? "ÊÇ ✓" : "·ñ"));
- print.log(" ÉèÖÃÊÇ·ñÔËÐÐ: " + (AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ("com.android.settings") ? "ÊÇ ✓" : "·ñ"));
- print.log("✅ ÑÝʾ4 Íê³É");
- // ===== ÑÝʾ5£ºÍøÂçÕï¶Ï =====
- µ¹¼ÆÊ±("ÑÝʾ5 / ÍøÂçÕï¶Ï");
- print.log("¡¾ÑÝʾ5¡¿ÍøÂçÕï¶Ï");
- var ip = AdbUtil.»ñÈ¡WiFiIP();
- print.log(" WiFi IP: " + (ip || "δÁ¬½Ó WiFi"));
- print.log(" Ping °Ù¶È: ");
- var ping½á¹û = AdbUtil.Ping("www.baidu.com", 3);
- var pingÐÐ = ping½á¹û.split("\n");
- var ͳ¼ÆÐÐ = [];
- for (var j = pingÐÐ.length - 1; j >= 0 && ͳ¼ÆÐÐ.length < 3; j--) {
- if (pingÐÐ[j].trim()) ͳ¼ÆÐÐ.unshift(pingÐÐ[j].trim());
- }
- for (var k = 0; k < ͳ¼ÆÐÐ.length; k++) {
- print.log(" " + ͳ¼ÆÐÐ[k]);
- }
- print.log("✅ ÑÝʾ5 Íê³É");
- // ===== ÑÝʾ6£ºÎļþ²Ù×÷ =====
- µ¹¼ÆÊ±("ÑÝʾ6 / Îļþ²Ù×÷");
- print.log("¡¾ÑÝʾ6¡¿Îļþ²Ù×÷");
- AdbUtil.´´½¨Ä¿Â¼("/sdcard/aiwrok_test");
- print.log(" ✓ ´´½¨Ä¿Â¼ /sdcard/aiwrok_test");
- var дÈëʱ¼ä = new Date().toLocaleString();
- AdbUtil.дÎļþ("/sdcard/aiwrok_test/test.txt", "AIWROK adb.exec ²âÊÔ " + дÈëʱ¼ä);
- print.log(" ✓ дÈëÎļþ: AIWROK adb.exec ²âÊÔ " + дÈëʱ¼ä);
- var ÄÚÈÝ = AdbUtil.¶ÁÎļþ("/sdcard/aiwrok_test/test.txt");
- print.log(" ✓ ¶ÁÈ¡Îļþ: " + ÄÚÈÝ);
- var ´óС = AdbUtil.Îļþ´óС("/sdcard/aiwrok_test/test.txt");
- print.log(" ✓ Îļþ´óС: " + ´óС + " ×Ö½Ú");
- // ²âÊÔ×·¼ÓдÈë
- AdbUtil.×·¼ÓдÎļþ("/sdcard/aiwrok_test/test.txt", "¡ª¡ª×·¼ÓµÄµÚ¶þÐÐ");
- var ÄÚÈÝ2 = AdbUtil.¶ÁÎļþ("/sdcard/aiwrok_test/test.txt");
- print.log(" ✓ ×·¼ÓºóÄÚÈÝ: " + ÄÚÈÝ2.replace(/\n/g, " | "));
- // ²âÊÔÁÐĿ¼
- var Ŀ¼ÄÚÈÝ = AdbUtil.ÁÐĿ¼("/sdcard/aiwrok_test/");
- print.log(" ✓ Ŀ¼ÄÚÈÝ:");
- var Ŀ¼ÐÐ = Ŀ¼ÄÚÈÝ.split("\n");
- for (var di = 0; di < Math.min(5, Ŀ¼ÐÐ.length); di++) {
- if (Ŀ¼ÐÐ[di].trim()) print.log(" " + Ŀ¼ÐÐ[di].trim());
- }
- // ²âÊÔ¸´ÖÆÎļþ
- AdbUtil.¸´ÖÆÎļþ("/sdcard/aiwrok_test/test.txt", "/sdcard/aiwrok_test/test_backup.txt");
- print.log(" ✓ ¸´ÖÆÎļþ ¡ú test_backup.txt");
- print.log("✅ ÑÝʾ6 Íê³É");
- // ===== ÑÝʾ7£º½ØÍ¼ =====
- µ¹¼ÆÊ±("ÑÝʾ7 / ½ØÍ¼");
- print.log("¡¾ÑÝʾ7¡¿½ØÍ¼");
- var ½ØÍ¼Â·¾¶ = "/sdcard/aiwrok_test/screenshot_" + Date.now() + ".png";
- AdbUtil.½ØÍ¼(½ØÍ¼Â·¾¶);
- var ½ØÍ¼´óС = AdbUtil.Îļþ´óС(½ØÍ¼Â·¾¶);
- print.log(" ½ØÍ¼Îļþ´óС: " + ½ØÍ¼´óС + " ×Ö½Ú");
- print.log("✅ ÑÝʾ7 Íê³É");
- // ===== ÑÝʾ8£ºÆÁÄ»³¬Ê± =====
- µ¹¼ÆÊ±("ÑÝʾ8 / ÆÁÄ»³¬Ê±ÉèÖÃ");
- print.log("¡¾ÑÝʾ8¡¿ÆÁÄ»³¬Ê±");
- var ³¬Ê± = AdbUtil.»ñÈ¡ÆÁÄ»³¬Ê±();
- print.log(" µ±Ç°ÆÁÄ»³¬Ê±: " + (³¬Ê± || "»ñȡʧ°Ü") + " ºÁÃë");
- if (³¬Ê±) {
- var ÃëÊý = Math.floor(parseInt(³¬Ê±, 10) / 1000);
- print.log(" ¼´: " + ÃëÊý + " Ãë");
- }
- print.log("✅ ÑÝʾ8 Íê³É");
- // ===== ÑÝʾ9£ºÊäÈëÄ£Äâ =====
- µ¹¼ÆÊ±("ÑÝʾ9 / ÊäÈëÄ£Ä⣨Home/µã»÷/»¬¶¯/°´¼ü£©");
- print.log("¡¾ÑÝʾ9¡¿ÊäÈëÄ£Äâ£¨ÕæÊµÖ´ÐУ©");
- print.log(" [9.1] °´ Home ¼ü»Øµ½×ÀÃæ...");
- AdbUtil.Home¼ü();
- sleep.second(1);
- print.log(" ✓ ÒѰ´ Home ¼ü");
- var »Ø×ÀÃæºó = AdbUtil.»ñȡǰ̨°üÃû();
- print.log(" µ±Ç°Ç°Ì¨: " + (»Ø×ÀÃæºó || "δ֪"));
- var ÆÁÄ»ÐÅÏ¢9 = AdbUtil.»ñÈ¡ÆÁÄ»ÐÅÏ¢();
- var ·Ö±æÂÊÎı¾ = ÆÁÄ»ÐÅÏ¢9.·Ö±æÂÊ || "";
- var ³ß´çÆ¥Åä = ·Ö±æÂÊÎı¾.match(/(\d+)x(\d+)/);
- if (³ß´çÆ¥Åä) {
- var ¿í¶È = parseInt(³ß´çÆ¥Åä[1], 10);
- var ¸ß¶È = parseInt(³ß´çÆ¥Åä[2], 10);
- var ÖÐÐÄX = Math.floor(¿í¶È / 2);
- var ÖÐÐÄY = Math.floor(¸ß¶È / 2);
- print.log(" [9.2] ÆÁÄ»·Ö±æÂÊ " + ¿í¶È + "x" + ¸ß¶È + "£¬ÖÐÐĵã (" + ÖÐÐÄX + ", " + ÖÐÐÄY + ")");
- print.log(" [9.3] µã»÷ÆÁÄ»ÖÐÐÄ...");
- AdbUtil.µã»÷(ÖÐÐÄX, ÖÐÐÄY);
- sleep.millisecond(500);
- print.log(" ✓ Òѵã»÷ (" + ÖÐÐÄX + ", " + ÖÐÐÄY + ")");
- print.log(" [9.4] ÏòÉÏ»¬¶¯...");
- AdbUtil.»¬¶¯(ÖÐÐÄX, Math.floor(¸ß¶È * 0.8), ÖÐÐÄX, Math.floor(¸ß¶È * 0.2), 300);
- sleep.millisecond(500);
- print.log(" ✓ ÒÑÏòÉÏ»¬¶¯");
- print.log(" [9.5] ÏÂÀ֪ͨÀ¸...");
- AdbUtil.»¬¶¯(ÖÐÐÄX, Math.floor(¸ß¶È * 0.1), ÖÐÐÄX, Math.floor(¸ß¶È * 0.5), 300);
- sleep.second(1);
- print.log(" ✓ ÒÑÏÂÀ֪ͨÀ¸");
- print.log(" [9.6] ÊÕÆð֪ͨÀ¸...");
- AdbUtil.»¬¶¯(ÖÐÐÄX, Math.floor(¸ß¶È * 0.5), ÖÐÐÄX, Math.floor(¸ß¶È * 0.1), 300);
- sleep.millisecond(500);
- print.log(" ✓ ÒÑÊÕÆð֪ͨÀ¸");
- } else {
- print.log(" [9.2] ÎÞ·¨½âÎöÆÁÄ»·Ö±æÂÊ: " + ·Ö±æÂÊÎı¾);
- }
- print.log(" [9.7] °´·µ»Ø¼ü...");
- AdbUtil.·µ»Ø¼ü();
- sleep.millisecond(500);
- print.log(" ✓ ÒѰ´·µ»Ø¼ü");
- print.log(" [9.8] °´ÒôÁ¿¼õ¼ü...");
- AdbUtil.°´¼ü(25);
- sleep.millisecond(500);
- print.log(" ✓ ÒѰ´ÒôÁ¿¼õ¼ü");
- print.log(" [9.9] °´ÒôÁ¿¼Ó¼ü»Ö¸´...");
- AdbUtil.°´¼ü(24);
- sleep.millisecond(500);
- print.log(" ✓ ÒѰ´ÒôÁ¿¼Ó¼ü");
- print.log("✅ ÑÝʾ9 Íê³É");
- // ===== ÑÝʾ10£ºÓ¦ÓùÜÀí =====
- µ¹¼ÆÊ±("ÑÝʾ10 / Ó¦ÓùÜÀí£¨°²×°¼ì²â/Æô¶¯ÉèÖÃ/½ØÍ¼£©");
- print.log("¡¾ÑÝʾ10¡¿Ó¦ÓùÜÀí£¨ÕæÊµÖ´ÐУ©");
- print.log(" [10.1] ¼ì²é³£¼ûÓ¦Óð²×°×´Ì¬");
- var ³£¼ûÓ¦ÓÃ = [
- "com.tencent.mm", // ΢ÐÅ
- "com.taobao.taobao", // ÌÔ±¦
- "com.android.settings", // ϵͳÉèÖÃ
- "com.tencent.mobileqq", // QQ
- "com.eg.android.AlipayGphone" // Ö§¸¶±¦
- ];
- for (var ai = 0; ai < ³£¼ûÓ¦ÓÃ.length; ai++) {
- var ÒѰ²×° = AdbUtil.Ó¦ÓÃÊÇ·ñ°²×°(³£¼ûÓ¦ÓÃ[ai]);
- print.log(" " + ³£¼ûÓ¦ÓÃ[ai] + ": " + (ÒѰ²×° ? "ÒѰ²×° ✓" : "δ°²×°"));
- }
- print.log("\n [10.2] »ñÈ¡ÒѰ²×°Ó¦ÓÃÏêϸÐÅÏ¢");
- var ÒѰ²×°Ó¦Óà = null;
- for (var bi = 0; bi < ³£¼ûÓ¦ÓÃ.length; bi++) {
- if (AdbUtil.Ó¦ÓÃÊÇ·ñ°²×°(³£¼ûÓ¦ÓÃ[bi])) {
- ÒѰ²×°Ó¦Óà = ³£¼ûÓ¦ÓÃ[bi];
- break;
- }
- }
- if (ÒѰ²×°Ó¦ÓÃ) {
- var ÏêÇé = AdbUtil.»ñȡӦÓÃÐÅÏ¢(ÒѰ²×°Ó¦ÓÃ);
- print.log(" °üÃû: " + ÒѰ²×°Ó¦ÓÃ);
- print.log(" °æ±¾Ãû: " + (ÏêÇé.°æ±¾Ãû || "δ֪"));
- print.log(" °æ±¾ºÅ: " + (ÏêÇé.°æ±¾ºÅ || "δ֪"));
- print.log(" °²×°Â·¾¶: " + (ÏêÇé.°²×°Â·¾¶ || "δ֪"));
- } else {
- print.log(" ³£¼ûÓ¦Óþùδ°²×°");
- }
- print.log("\n [10.3] Æô¶¯ÏµÍ³ÉèÖÃ");
- var Æô¶¯½á¹û = AdbUtil.Æô¶¯Action("android.settings.SETTINGS");
- sleep.second(2);
- print.log(" Æô¶¯ÃüÁîÒÑÖ´ÐÐ: " + (Æô¶¯½á¹û ? "✓" : "✗"));
- var ÉèÖÃǰ̨ = AdbUtil.»ñȡǰ̨°üÃû();
- print.log(" µ±Ç°Ç°Ì¨°üÃû: " + (ÉèÖÃǰ̨ || "δ֪"));
- if (ÉèÖÃǰ̨ && ÉèÖÃǰ̨.indexOf("settings") !== -1) {
- print.log(" ✓ ϵͳÉèÖÃÒÑ´ò¿ª");
- } else {
- print.log(" £¨ÉèÖÃÒ³Ãæ¿ÉÄÜÕýÔÚ¼ÓÔØ»òÉ豸²»Ö§³Ö£©");
- }
- var ÉèÖÃActivity = AdbUtil.»ñȡǰ̨Activity();
- print.log(" µ±Ç°Ç°Ì¨Activity: " + (ÉèÖÃActivity || "δ֪"));
- print.log("\n [10.4] ½ØÍ¼±£´æÉèÖÃÒ³Ãæ");
- AdbUtil.½ØÍ¼("/sdcard/aiwrok_test/settings_page.png");
- print.log(" [10.5] ¼ì²éÉèÖýø³Ì״̬");
- var ÉèÖÃÔËÐÐ = AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ("com.android.settings");
- if (!ÉèÖÃÔËÐÐ) ÉèÖÃÔËÐÐ = AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ("settings");
- print.log(" ÉèÖýø³ÌÔËÐÐÖÐ: " + (ÉèÖÃÔËÐÐ ? "ÊÇ ✓" : "·ñ"));
- print.log(" [10.6] °´ Home ¼ü»Øµ½×ÀÃæ");
- AdbUtil.Home¼ü();
- sleep.second(1);
- var »Ø×ÀÃæºó2 = AdbUtil.»ñȡǰ̨°üÃû();
- print.log(" µ±Ç°Ç°Ì¨: " + (»Ø×ÀÃæºó2 || "δ֪"));
- print.log("✅ ÑÝʾ10 Íê³É");
- // ===== ÑÝʾ11£º´æ´¢ÓëCPUÐÅÏ¢ =====
- µ¹¼ÆÊ±("ÑÝʾ11 / ´æ´¢ÓëCPUÐÅÏ¢");
- print.log("¡¾ÑÝʾ11¡¿´æ´¢ÓëCPUÐÅÏ¢");
- var ´æ´¢ = AdbUtil.»ñÈ¡´æ´¢ÐÅÏ¢();
- print.log(" ´æ´¢ÐÅÏ¢:");
- var ´æ´¢ÐÐ = ´æ´¢.split("\n");
- for (var si = 0; si < ´æ´¢ÐÐ.length; si++) {
- if (´æ´¢ÐÐ[si].trim()) print.log(" " + ´æ´¢ÐÐ[si].trim());
- }
- print.log("\n CPU Õ¼Óà TOP ½ø³Ì:");
- var cpu = AdbUtil.»ñÈ¡CPUÕ¼ÓÃ();
- var cpuÐÐ = cpu.split("\n");
- for (var ci = 0; ci < Math.min(8, cpuÐÐ.length); ci++) {
- if (cpuÐÐ[ci].trim()) print.log(" " + cpuÐÐ[ci].trim());
- }
- print.log("✅ ÑÝʾ11 Íê³É");
- // ===== ÑÝʾ12£ºÍøÂçÍêÕûÕï¶Ï =====
- µ¹¼ÆÊ±("ÑÝʾ12 / ÍøÂçÍêÕûÕï¶Ï");
- print.log("¡¾ÑÝʾ12¡¿ÍøÂçÍêÕûÕï¶Ï");
- print.log(" WiFi IP: " + (AdbUtil.»ñÈ¡WiFiIP() || "δÁ¬½Ó"));
- var ·ÓÉ = AdbUtil.»ñȡ·Óɱí();
- print.log(" ·Óɱí:");
- var ·ÓÉÐÐ = ·ÓÉ.split("\n");
- for (var ri = 0; ri < Math.min(3, ·ÓÉÐÐ.length); ri++) {
- if (·ÓÉÐÐ[ri].trim()) print.log(" " + ·ÓÉÐÐ[ri].trim());
- }
- print.log(" ÍøÂç½Ó¿ÚÐÅÏ¢:");
- var ½Ó¿Ú = AdbUtil.»ñÈ¡ÍøÂç½Ó¿Ú();
- var ½Ó¿ÚÐÐ = ½Ó¿Ú.split("\n");
- for (var ni = 0; ni < Math.min(5, ½Ó¿ÚÐÐ.length); ni++) {
- if (½Ó¿ÚÐÐ[ni].trim()) print.log(" " + ½Ó¿ÚÐÐ[ni].trim());
- }
- print.log("✅ ÑÝʾ12 Íê³É");
- // =============================================================================
- // ËÙ²é±í
- // =============================================================================
- print.log("\n========== AdbUtil ·½·¨ËÙ²é±í ==========\n");
- print.log("É豸ÐÅÏ¢:");
- print.log(" AdbUtil.»ñÈ¡É豸ÐÅÏ¢() ¡ú {ÐͺÅ,Æ·ÅÆ,°²×¿°æ±¾,SDK°æ±¾,ÖÆÔìÉÌ,ÐòÁкÅ}");
- print.log(" AdbUtil.»ñÈ¡ÆÁÄ»ÐÅÏ¢() ¡ú {·Ö±æÂÊ,ÃܶÈ}");
- print.log(" AdbUtil.»ñÈ¡µç³ØÐÅÏ¢() ¡ú {µçÁ¿,ζÈ,״̬,¼¼Êõ}");
- print.log(" AdbUtil.»ñÈ¡ÄÚ´æÐÅÏ¢() ¡ú MemTotal/MemFree/MemAvailable");
- print.log(" AdbUtil.»ñÈ¡´æ´¢ÐÅÏ¢() ¡ú df Êä³ö");
- print.log("");
- print.log("Ó¦ÓùÜÀí:");
- print.log(" AdbUtil.ÁгöµÚÈý·½Ó¦ÓÃ() ¡ú [°üÃûÊý×é]");
- print.log(" AdbUtil.Ó¦ÓÃÊÇ·ñ°²×°(°üÃû) ¡ú true/false");
- print.log(" AdbUtil.Æô¶¯Ó¦ÓÃ(°üÃû) ¡ú true/false");
- print.log(" AdbUtil.Í£Ö¹Ó¦ÓÃ(°üÃû) ¡ú true/false");
- print.log(" AdbUtil.°²×°Ó¦ÓÃ(·¾¶,¸²¸Ç) ¡ú true/false");
- print.log(" AdbUtil.Ð¶ÔØÓ¦ÓÃ(°üÃû) ¡ú true/false");
- print.log(" AdbUtil.»ñȡӦÓÃÐÅÏ¢(°üÃû) ¡ú {°æ±¾Ãû,°æ±¾ºÅ,°²×°Â·¾¶}");
- print.log("");
- print.log("Îļþ²Ù×÷:");
- print.log(" AdbUtil.ÁÐĿ¼(·¾¶) ¡ú ls Êä³ö");
- print.log(" AdbUtil.¶ÁÎļþ(·¾¶) ¡ú ÎļþÄÚÈÝ");
- print.log(" AdbUtil.дÎļþ(·¾¶,ÄÚÈÝ) ¡ú true/false");
- print.log(" AdbUtil.×·¼ÓдÎļþ(·¾¶,ÄÚÈÝ) ¡ú true/false");
- print.log(" AdbUtil.¸´ÖÆÎļþ(Ô´,Ä¿±ê) ¡ú true/false");
- print.log(" AdbUtil.´´½¨Ä¿Â¼(·¾¶) ¡ú true/false");
- print.log(" AdbUtil.ɾ³ý(·¾¶) ¡ú true/false");
- print.log(" AdbUtil.Îļþ´óС(·¾¶) ¡ú ×Ö½ÚÊý");
- print.log("");
- print.log("ÊäÈëÄ£Äâ:");
- print.log(" AdbUtil.µã»÷(x, y) ¡ú true/false");
- print.log(" AdbUtil.»¬¶¯(x1,y1,x2,y2,ʱ³¤) ¡ú true/false");
- print.log(" AdbUtil.³¤°´(x, y, ʱ³¤) ¡ú true/false");
- print.log(" AdbUtil.ÊäÈëÎÄ×Ö(ÎÄ×Ö) ¡ú true/false (½öASCII)");
- print.log(" AdbUtil.°´¼ü(¼üÂë) ¡ú true/false");
- print.log(" AdbUtil.·µ»Ø¼ü() ¡ú Ä£Äâ·µ»Ø");
- print.log(" AdbUtil.Home¼ü() ¡ú Ä£ÄâHome");
- print.log("");
- print.log("ǰ̨¼ì²â+½ø³Ì:");
- print.log(" AdbUtil.»ñȡǰ̨°üÃû() ¡ú 'com.xxx.xxx'");
- print.log(" AdbUtil.»ñȡǰ̨Activity() ¡ú 'com.xxx/.Activity'");
- print.log(" AdbUtil.ÊÇ·ñÔÚǰ̨(°üÃû) ¡ú true/false");
- print.log(" AdbUtil.½ø³ÌÊÇ·ñ´æÔÚ(°üÃû) ¡ú true/false");
- print.log(" AdbUtil.»ñÈ¡CPUÕ¼ÓÃ() ¡ú top Êä³ö");
- print.log(" AdbUtil.ɱËÀ½ø³Ì(pid,root) ¡ú true/false");
- print.log("");
- print.log("½ØÍ¼+ÍøÂç:");
- print.log(" AdbUtil.½ØÍ¼(·¾¶) ¡ú true/false");
- print.log(" AdbUtil.Ping(µØÖ·,´ÎÊý) ¡ú ping Êä³ö");
- print.log(" AdbUtil.»ñÈ¡WiFiIP() ¡ú '192.168.x.x'");
- print.log(" AdbUtil.»ñÈ¡ÍøÂç½Ó¿Ú() ¡ú ip addr Êä³ö");
- print.log(" AdbUtil.»ñȡ·Óɱí() ¡ú ip route Êä³ö");
- print.log("");
- print.log("ϵͳÉèÖÃ:");
- print.log(" AdbUtil.»ñÈ¡ÉèÖÃ(ÃüÃû¿Õ¼ä,¼üÃû,root) ¡ú ÉèÖÃÖµ");
- print.log(" AdbUtil.ÉèÖÃÖµ(ÃüÃû¿Õ¼ä,¼üÃû,Öµ,root) ¡ú true/false");
- print.log(" AdbUtil.»ñÈ¡ÆÁÄ»³¬Ê±() ¡ú ºÁÃëÊý");
- print.log(" AdbUtil.ÉèÖÃÆÁÄ»³¬Ê±(ºÁÃë) ¡ú true/false");
- print.log("\n✅ adb.exec() ʵÓù¤¾ß¿âÖ´ÐÐÍê±Ï");
- print.log("Ìáʾ£º½«±¾ÎļþÄÚÈݸ´ÖƵ½ÄãµÄÏîÄ¿ÖУ¬¼´¿Éͨ¹ý AdbUtil.·½·¨Ãû() Ö±½Óµ÷ÓÃ");
¸´ÖÆ´úÂë
|
|