Răsfoiți Sursa

Merge branch '2.0.7' of Karl/MiWatchKleaner into master

Karl 4 ani în urmă
părinte
comite
5b00b13373
5 a modificat fișierele cu 81 adăugiri și 5 ștergeri
  1. 9 0
      lib/common.js
  2. 1 0
      lib/inquirer.js
  3. 6 1
      package-lock.json
  4. 2 1
      package.json
  5. 63 3
      pages/pages.js

+ 9 - 0
lib/common.js

@@ -3,6 +3,8 @@ const clear = require('clear');
 const figlet = require('figlet');
 const fs = require('fs')
 var pjson = require('../package.json');
+const fetch = require('node-fetch');
+
 
 module.exports = {
     header: (page) => {
@@ -36,5 +38,12 @@ module.exports = {
         } else {
             console.log(chalk.white('MiWatch IP: ' + chalk.green(miwatchData.ipAddress)))
         }
+    },
+    downloadFile: async (url) => {
+        let settings = { method: "Get" };
+
+        const response = await fetch(url, settings)
+        .then(res => res.json())
+            return response
     }
 }

+ 1 - 0
lib/inquirer.js

@@ -13,6 +13,7 @@ module.exports = {
       message: "What do you want to do?",
       choices: [
         "Connect to MiWatch via Wifi",
+        "1-Click Karl0ss Klean",
         "Remove Xiaomi Apps",
         "Restore Xiaomi Apps",
         "Install Compatible Apps",

+ 6 - 1
package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "miwatchkleaner2.0",
-  "version": "2.0.3",
+  "version": "2.0.7",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -907,6 +907,11 @@
       "resolved": "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-1.0.12.tgz",
       "integrity": "sha512-2t3h3g3xK5kxhRbwD+0WgKotHyoVEQlE+V93rn97tqzUtbw8cFpHn0uhsc2LeKkDlsQI1iy5XZoS3vACzBdW8A=="
     },
+    "node-fetch": {
+      "version": "2.6.0",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+      "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+    },
     "oauth-sign": {
       "version": "0.9.0",
       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",

+ 2 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "miwatchkleaner2.0",
-  "version": "2.0.6",
+  "version": "2.0.7",
   "description": "MiWatch Cleaning Tool",
   "main": "app.js",
   "bin": "app.js",
@@ -22,6 +22,7 @@
     "get-files-in": "^1.2.0",
     "inquirer": "^7.1.0",
     "node-downloader-helper": "^1.0.12",
+    "node-fetch": "^2.6.0",
     "perfect-logger": "^2.0.1",
     "pkg": "^4.4.7",
     "request-promise-native": "^1.0.8",

+ 63 - 3
pages/pages.js

@@ -12,6 +12,7 @@ const http = require('http')
 var shell = require('shelljs');
 let logger = require('perfect-logger');
 
+
 let adbRun
 
 logger.initialize('RunTIme', {
@@ -140,11 +141,10 @@ module.exports = {
                     await dl2.start();
                     await shellExec(adbRun + ' install-multiple "data\\apps\\simpleweather_base.apk" "data\\apps\\simpleweather_split_config.armeabi_v7a.apk" "data\\apps\\simpleweather_split_config.xhdpi.apk"').then(function (result) {
                         console.log(result)
-                        console.log('moreLocale Activated On Watch');
-                        logger.info('moreLocale Activated On Watch');
+                        console.log('simpleWeather Activated On Watch');
+                        logger.info('simpleWeather Activated On Watch');
                     })
                 }
-
                 if (element === "data\\apps\\MoreLocale.apk") {
                     await shellExec(adbRun + ' shell pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION').then(function (result) {
                         console.log('moreLocale Activated On Watch');
@@ -255,6 +255,63 @@ module.exports = {
             }).catch()
         }
     },
+    oneClick: async () => {
+        logger.info("1-Click Karl0ss Klean")
+        common.header('1-Click Karl0ss Klean')
+        const value = JSON.parse(fs.readFileSync('./data/packageList.json', 'utf8'));
+        for (let element of value.apps) {
+            await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + element).then(function (result) {
+                if (result.stderr != '') {
+                    logger.info('Error ' + result.stderr);
+                    console.log(chalk.redBright('Error - Device not authorised'));
+                } else {
+                    logger.info('Removing ' + element + ' - ' + result.stdout);
+                    console.log('Removing ' + element + ' - ' + result.stdout);
+                }
+            });
+        }
+        console.log(chalk.green('Removal Complete'))
+        await common.pause(2000)
+        logger.info("Remove Complete")
+        logger.info("Compatible Apps")
+
+        await shell.rm('-rf', './data/apps/*.apk');
+
+        let url = "http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/compatibleApps.json";
+        const compatibleApps = await common.downloadFile(url)
+
+        for (const element of compatibleApps) {
+            if (element.Klean === "X") {
+                const options = {
+                    override: true,
+                }
+                const dl = new DownloaderHelper(element.url, './data/apps/', options);
+                await dl.on('end', () => console.log('Downloading Latest ' + element.name + ' Complete'),
+                    logger.info('Downloading Latest ' + element.name + ' Complete')
+                )
+                await dl.start();
+            }
+        }
+        const apkList = await getFilesIn('./data/apps', matchFiletypes = ['apk'], checkSubDirectories = false)
+
+        for (let element of apkList) {
+            console.log('Installing ' + element)
+            logger.info('Installing ' + element)
+            await shellExec(adbRun + ' install -r ' + element).then(async function (result) {
+                if (result.stderr != '') {
+                    logger.info('Error ' + result.stderr);
+                    console.log(chalk.redBright('Error - Device not authorised'));
+                }
+                console.log(element + ' - ' + result.stdout);
+                logger.info(element + ' - ' + result.stdout);
+
+            });
+        }
+        console.log(chalk.green('Compatible Apps Installed'))
+        logger.info('Compatible Apps Installed')
+        await common.pause(2000)
+        module.exports.mainMenu()
+    },
     mainMenu: async () => {
         common.header('Main Menu')
         if (process.platform === 'win32' || process.platform === 'win64') {
@@ -268,6 +325,9 @@ module.exports = {
             case 'connect to miwatch via wifi':
                 module.exports.connectWifi()
                 break;
+            case '1-click karl0ss klean':
+                module.exports.oneClick()
+                break;
             case 'remove xiaomi apps':
                 module.exports.removeApps()
                 break;