making progress
This commit is contained in:
		
							parent
							
								
									3658fd26aa
								
							
						
					
					
						commit
						73ee55d913
					
				
							
								
								
									
										31
									
								
								lang/en.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								lang/en.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
{
 | 
			
		||||
    "main_menu_question": "What do you want to do?",
 | 
			
		||||
    "main_menu_item_1": "1-Click Karl0ss Klean",
 | 
			
		||||
    "main_menu_item_2": "Remove Xiaomi Apps",
 | 
			
		||||
    "main_menu_item_3": "Restore Xiaomi Apps",
 | 
			
		||||
    "main_menu_item_4": "Install Compatible Apps",
 | 
			
		||||
    "main_menu_item_5": "Restore ANY app",
 | 
			
		||||
    "main_menu_item_6": "Batch Install APKs",
 | 
			
		||||
    "main_menu_item_7": "Batch Remove Installed Apps",
 | 
			
		||||
    "main_menu_item_8": "Quit",
 | 
			
		||||
    "connection_type_message": "How do you want to connect?",
 | 
			
		||||
    "connect_wifi_message":"What is your MiWatch IpAdress?",
 | 
			
		||||
    "restore_app_message": "What apps do you want to restore?",
 | 
			
		||||
    "install_compatible_apps_message": "What apps do you want to Install?",
 | 
			
		||||
    "remove_installed_apps_message": "What Installed apps do you want to remove?",
 | 
			
		||||
    "restore_any_app_message": "What App do you want to restore?",
 | 
			
		||||
    "remove_installed_apps_header": "Remove Installed Apps",
 | 
			
		||||
    "packages_recieved_from_watch": "Packages recieved from watch",
 | 
			
		||||
    "device_not_authorised": "Device not authorised",
 | 
			
		||||
    "restarting_adb": "Restarting ADB",
 | 
			
		||||
    "please_reconnect_to_watch": "Please reconnect to watch",
 | 
			
		||||
    "remove_installed_apps_failed": "Remove Installed Apps Failed",
 | 
			
		||||
    "removing": "Removing",
 | 
			
		||||
    "installing": "Installing",
 | 
			
		||||
    "remove_selected_user_apps": "Removed Selected User Apps",
 | 
			
		||||
    "install_compatible_apps_header": "Install Compatible Apps",
 | 
			
		||||
    "simple_weather_activated_on_watch": "simpleWeather Activated On Watch",
 | 
			
		||||
    "morelocale_activated_on_watch": "moreLocale Activated On Watch",
 | 
			
		||||
    "alberto_locale_activated_on_watch": "Alberto Locale Activated On Watch",
 | 
			
		||||
    "compatible_apps_installed": "Compatible Apps Installed"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										89
									
								
								lib/adb.js
									
									
									
									
									
								
							
							
						
						
									
										89
									
								
								lib/adb.js
									
									
									
									
									
								
							@ -1,24 +1,85 @@
 | 
			
		||||
const gfin = require('get-files-in')
 | 
			
		||||
const logger = require('perfect-logger');
 | 
			
		||||
const shellExec = require('shell-exec')
 | 
			
		||||
const Language = require("@shypes/language-translator");
 | 
			
		||||
const inquirer = require('../lib/inquirer');
 | 
			
		||||
const common = require('./common')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if (process.platform === 'win32' || process.platform === 'win64') {
 | 
			
		||||
  adbRun = 'adb'
 | 
			
		||||
} else {
 | 
			
		||||
  adbRun = './adb'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  getListOfAPk: () => {
 | 
			
		||||
    this.apkListToInstall = gfin('./data/apps', matchFiletypes = ["apk"], checkSubDirectories = false)
 | 
			
		||||
    const result = gfin('./data/apps', matchFiletypes = ["apk"], checkSubDirectories = false)
 | 
			
		||||
    return result
 | 
			
		||||
  },
 | 
			
		||||
  installApk: async () => {
 | 
			
		||||
    await module.exports.getListOfAPk()
 | 
			
		||||
    for (let element of this.apkListToInstall) {
 | 
			
		||||
      if (process.platform === 'win32' || process.platform === 'win64') {
 | 
			
		||||
        await shellExec('adb install -r ' + element).then(function (result) {
 | 
			
		||||
          console.log('Installing ' + element + ' - ' + result.stdout);
 | 
			
		||||
        });
 | 
			
		||||
      } else {
 | 
			
		||||
        await shellExec('./adb install -r ' + element).then(function (result) {
 | 
			
		||||
          console.log('Installing ' + element + ' - ' + result.stdout);
 | 
			
		||||
  installApk: async (element) => {
 | 
			
		||||
    result = await shellExec(adbRun + ' install -r ' + element).then(async function (result) {
 | 
			
		||||
      if (result.stderr != '') {
 | 
			
		||||
        logger.info(await Language.get('device_not_authorised'));
 | 
			
		||||
        console.log(chalk.redBright(await Language.get('device_not_authorised')));
 | 
			
		||||
      }
 | 
			
		||||
      console.log(element + ' - ' + result.stdout);
 | 
			
		||||
      logger.info(element + ' - ' + result.stdout);
 | 
			
		||||
 | 
			
		||||
      if (element === "data\\apps\\simpleweather_base.apk") {
 | 
			
		||||
        await common.downloadFile('http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/simpleweather_split_config.armeabi_v7a.apk', './data/apps/simpleweather_split_config.armeabi_v7a.apk')
 | 
			
		||||
        await common.downloadFile('http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/simpleweather_split_config.xhdpi.apk', './data/apps/simpleweather_split_config.xhdpi.apk')
 | 
			
		||||
        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(async function (result) {
 | 
			
		||||
          console.log(result)
 | 
			
		||||
          console.log(await Language.get('simple_weather_activated_on_watch'));
 | 
			
		||||
          logger.info(await Language.get('simple_weather_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(async function (result) {
 | 
			
		||||
          console.log(await Language.get('morelocale_activated_on_watch'));
 | 
			
		||||
          logger.info(await Language.get('morelocale_activated_on_watch'));
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      if (element === "data\\apps\\com.alberto.locale.apk") {
 | 
			
		||||
        await shellExec(adbRun + ' shell pm grant com.alberto.locale android.permission.CHANGE_CONFIGURATION && ' + adbRun + ' shell am start -n com.alberto.locale/com.alberto.locale.MainActivity && ' + adbRun + ' shell pm grant com.alberto.locale android.permission.CHANGE_CONFIGURATION').then(async function (result) {
 | 
			
		||||
          console.log(result)
 | 
			
		||||
          console.log(await Language.get('alberto_locale_activated_on_watch'));
 | 
			
		||||
          logger.info(await Language.get('alberto_locale_activated_on_watch'));
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    // console.log(chalk.green('Removal Complete'))
 | 
			
		||||
    });
 | 
			
		||||
  },
 | 
			
		||||
  removeApk: async (package) => {
 | 
			
		||||
    result = await shellExec(adbRun + ' uninstall ' + package)
 | 
			
		||||
    console.log(package + ' - ' + result.stdout);
 | 
			
		||||
    logger.info(package + ' - ' + result.stdout);
 | 
			
		||||
  },
 | 
			
		||||
  getInstalledPacakges: async () => {
 | 
			
		||||
    result = await shellExec(adbRun + ' shell pm list packages -3')
 | 
			
		||||
    logger.info(await Language.get('packages_recieved_from_watch'))
 | 
			
		||||
    if (result.stderr.includes('error')) {
 | 
			
		||||
      logger.info(result.stderr)
 | 
			
		||||
      console.log(chalk.red(await Language.get('device_not_authorised')))
 | 
			
		||||
      common.pause(3000)
 | 
			
		||||
      await shellExec(adbRun + ' kill-server').then(async function (result) {
 | 
			
		||||
        logger.info(await Language.get('restarting_adb'))
 | 
			
		||||
        logger.info(result.stdout)
 | 
			
		||||
        console.log(await Language.get('please_reconnect_to_watch'))
 | 
			
		||||
        common.pause(3000)
 | 
			
		||||
        logger.info(await Language.get('remove_installed_apps_failed'))
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
      })
 | 
			
		||||
    } else {
 | 
			
		||||
      if (process.platform === 'win32' || process.platform === 'win64') {
 | 
			
		||||
        installedAppList = result.stdout.split('\r\n'); // split string on comma space
 | 
			
		||||
        installedAppList.splice(-1, 1)
 | 
			
		||||
      } else {
 | 
			
		||||
        installedAppList = result.stdout.split('\n'); // split string on comma space
 | 
			
		||||
        installedAppList.splice(-1, 1)
 | 
			
		||||
      }
 | 
			
		||||
      const value = await inquirer.installedApps(installedAppList);
 | 
			
		||||
      return value
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
@ -2,36 +2,42 @@ const inquirer = require("inquirer");
 | 
			
		||||
const files = require("./files");
 | 
			
		||||
const common = require("./common");
 | 
			
		||||
 | 
			
		||||
// let compatibleApps
 | 
			
		||||
const Language = require("@shypes/language-translator");
 | 
			
		||||
 | 
			
		||||
Language._({
 | 
			
		||||
  default_lang: "en",
 | 
			
		||||
  ext: ".json",
 | 
			
		||||
  __basedir: "./",
 | 
			
		||||
  langFolder: 'lang'
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  mainMenu: () => {
 | 
			
		||||
  mainMenu: async () => {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "list",
 | 
			
		||||
      name: "mainMenu",
 | 
			
		||||
      message: "What do you want to do?",
 | 
			
		||||
      message: await Language.get('main_menu_question'),
 | 
			
		||||
      choices: [
 | 
			
		||||
        // "Connect to MiWatch",
 | 
			
		||||
        "1-Click Karl0ss Klean",
 | 
			
		||||
        "Remove Xiaomi Apps",
 | 
			
		||||
        "Restore Xiaomi Apps",
 | 
			
		||||
        "Install Compatible Apps",
 | 
			
		||||
        "Restore ANY app",
 | 
			
		||||
        "Batch Install APKs",
 | 
			
		||||
        "Batch Remove Installed Apps",
 | 
			
		||||
        "Quit"
 | 
			
		||||
        await Language.get('main_menu_item_1'),
 | 
			
		||||
        await Language.get('main_menu_item_2'),
 | 
			
		||||
        await Language.get('main_menu_item_3'),
 | 
			
		||||
        await Language.get('main_menu_item_4'),
 | 
			
		||||
        await Language.get('main_menu_item_5'),
 | 
			
		||||
        await Language.get('main_menu_item_6'),
 | 
			
		||||
        await Language.get('main_menu_item_7'),
 | 
			
		||||
        await Language.get('main_menu_item_8'),
 | 
			
		||||
      ],
 | 
			
		||||
      filter: function (val) {
 | 
			
		||||
        return val.toLowerCase();
 | 
			
		||||
      },
 | 
			
		||||
    }, ];
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
  connectionType: () => {
 | 
			
		||||
  connectionType: async () => {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "list",
 | 
			
		||||
      name: "connection",
 | 
			
		||||
      message: "How do you want to connect?",
 | 
			
		||||
      message: await Language.get('connection_type_message'),
 | 
			
		||||
      choices: [
 | 
			
		||||
        "USB",
 | 
			
		||||
        "Wifi"
 | 
			
		||||
@ -39,15 +45,15 @@ module.exports = {
 | 
			
		||||
      filter: function (val) {
 | 
			
		||||
        return val.toLowerCase();
 | 
			
		||||
      },
 | 
			
		||||
    }, ];
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
  connectWifi: () => {
 | 
			
		||||
  connectWifi: async () => {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "input",
 | 
			
		||||
      name: "connectWifi",
 | 
			
		||||
      message: "What is your MiWatch IpAdress?",
 | 
			
		||||
    }, ];
 | 
			
		||||
      message: await Language.get('connect_wifi_message'),
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
  removeAppsList: async () => {
 | 
			
		||||
@ -56,9 +62,9 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "checkbox",
 | 
			
		||||
      name: "removeAppsList",
 | 
			
		||||
      message: "What apps do you want to restore?",
 | 
			
		||||
      message: await Language.get('restore_app_message'),
 | 
			
		||||
      choices: packages.apps,
 | 
			
		||||
    }, ];
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
  compatibleApps: async () => {
 | 
			
		||||
@ -70,26 +76,26 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "checkbox",
 | 
			
		||||
      name: "removeAppsList",
 | 
			
		||||
      message: "What apps do you want to Install?",
 | 
			
		||||
      message: await Language.get('install_compatible_apps_message'),
 | 
			
		||||
      choices: appList,
 | 
			
		||||
    }, ];
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
  installedApps: async (installedApps) => {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "checkbox",
 | 
			
		||||
      name: "removeAppsList",
 | 
			
		||||
      message: "What Installed apps do you want to remove?",
 | 
			
		||||
      message: await Language.get('remove_installed_apps_message'),
 | 
			
		||||
      choices: installedApps,
 | 
			
		||||
    }, ];
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
  restoreAnyApp: async () => {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "input",
 | 
			
		||||
      name: "restoreAnyApp",
 | 
			
		||||
      message: "What App do you want to restore?",
 | 
			
		||||
    }, ];
 | 
			
		||||
      message: await Language.get('restore_any_app_message'),
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										26
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										26
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -45,6 +45,11 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@peterpanhihi/tiny/-/tiny-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-usAoksj49559JLAsQXmrE5wOV6A055icErp8jpJDCicfojwEVPaSLk5EZ1EXhcgIuqjSNkzCOXu0gSdm3Std+w=="
 | 
			
		||||
    },
 | 
			
		||||
    "@shypes/language-translator": {
 | 
			
		||||
      "version": "2.0.15",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@shypes/language-translator/-/language-translator-2.0.15.tgz",
 | 
			
		||||
      "integrity": "sha512-et4HsjzPQUH29nPKlRg3E/2Dr84lO8POJsfWezK9DnLK8nGO42b59Ug7RtwsRy28gxHWr+m1lgzY8JKsVlTlSQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "@types/color-name": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
 | 
			
		||||
@ -254,14 +259,6 @@
 | 
			
		||||
        "assert-plus": "^1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "debug": {
 | 
			
		||||
      "version": "2.6.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
 | 
			
		||||
      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "ms": "2.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "deep-is": {
 | 
			
		||||
      "version": "0.1.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
 | 
			
		||||
@ -880,11 +877,6 @@
 | 
			
		||||
        "minimist": "^1.2.5"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "ms": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
 | 
			
		||||
    },
 | 
			
		||||
    "multistream": {
 | 
			
		||||
      "version": "2.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz",
 | 
			
		||||
@ -1100,14 +1092,6 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
 | 
			
		||||
      "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
 | 
			
		||||
    },
 | 
			
		||||
    "rename": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/rename/-/rename-1.0.4.tgz",
 | 
			
		||||
      "integrity": "sha1-oPJQePpBleZQ9zBQx8Esz2ifQws=",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "debug": "^2.5.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "request": {
 | 
			
		||||
      "version": "2.88.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
 | 
			
		||||
 | 
			
		||||
@ -16,6 +16,7 @@
 | 
			
		||||
  "license": "ISC",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@peterpanhihi/tiny": "^2.0.0",
 | 
			
		||||
    "@shypes/language-translator": "^2.0.15",
 | 
			
		||||
    "chalk": "^4.0.0",
 | 
			
		||||
    "clear": "^0.1.0",
 | 
			
		||||
    "clui": "^0.3.6",
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										105
									
								
								pages/pages.js
									
									
									
									
									
								
							
							
						
						
									
										105
									
								
								pages/pages.js
									
									
									
									
									
								
							@ -6,7 +6,8 @@ const files = require('../lib/files')
 | 
			
		||||
const getFilesIn = require('get-files-in')
 | 
			
		||||
let logger = require('perfect-logger');
 | 
			
		||||
const globalVariables = require('../lib/globalVars');
 | 
			
		||||
 | 
			
		||||
const Language = require("@shypes/language-translator");
 | 
			
		||||
const adb = require('../lib/adb');
 | 
			
		||||
 | 
			
		||||
logger.info(process.platform + " detected")
 | 
			
		||||
if (process.platform === 'win32' || process.platform === 'win64') {
 | 
			
		||||
@ -23,52 +24,26 @@ logger.initialize('RunTIme', {
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    removeCompatibleApps: async () => {
 | 
			
		||||
        let installedAppList
 | 
			
		||||
        common.header('Remove Installed Apps')
 | 
			
		||||
        logger.info('Remove Installed Apps')
 | 
			
		||||
        await shellExec(adbRun + ' shell pm list packages -3').then(async function (result) {
 | 
			
		||||
            logger.info('Packages recieved from watch')
 | 
			
		||||
            if (result.stderr.includes('error')) {
 | 
			
		||||
                logger.info(result.stderr)
 | 
			
		||||
                console.log(chalk.red('Device not authorised'))
 | 
			
		||||
                common.pause(3000)
 | 
			
		||||
                await shellExec(adbRun + ' kill-server').then(async function (result) {
 | 
			
		||||
                    logger.info('Restarting ADB')
 | 
			
		||||
                    logger.info(result.stdout)
 | 
			
		||||
                    console.log('Please reconnect to watch')
 | 
			
		||||
                    common.pause(3000)
 | 
			
		||||
                    logger.info('Remove Installed Apps Failed')
 | 
			
		||||
                    module.exports.mainMenu()
 | 
			
		||||
                })
 | 
			
		||||
            } else {
 | 
			
		||||
                if (process.platform === 'win32' || process.platform === 'win64') {
 | 
			
		||||
                    installedAppList = result.stdout.split('\r\n'); // split string on comma space
 | 
			
		||||
                    installedAppList.splice(-1, 1)
 | 
			
		||||
                } else {
 | 
			
		||||
                    installedAppList = result.stdout.split('\n'); // split string on comma space
 | 
			
		||||
                    installedAppList.splice(-1, 1)
 | 
			
		||||
                }
 | 
			
		||||
                const value = await inquirer.installedApps(installedAppList);
 | 
			
		||||
        common.header(await Language.get('remove_installed_apps_header'))
 | 
			
		||||
        logger.info(await Language.get('remove_installed_apps_header'))
 | 
			
		||||
 | 
			
		||||
                for (let element of value.removeAppsList) {
 | 
			
		||||
                    console.log('Removing ' + element)
 | 
			
		||||
                    logger.info('Removing ' + element)
 | 
			
		||||
                    const package = element.substring(8)
 | 
			
		||||
                    await shellExec(adbRun + ' uninstall ' + package).then(async function (result) {
 | 
			
		||||
                        console.log(element + ' - ' + result.stdout);
 | 
			
		||||
                        logger.info(element + ' - ' + result.stdout);
 | 
			
		||||
                    });
 | 
			
		||||
                }
 | 
			
		||||
                console.log(chalk.green('Removed Selected User Apps'))
 | 
			
		||||
                logger.info('Removed Selected User Apps')
 | 
			
		||||
                await common.pause(2000)
 | 
			
		||||
                module.exports.mainMenu()
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
        value = await adb.getInstalledPacakges()
 | 
			
		||||
 | 
			
		||||
        for (let element of value.removeAppsList) {
 | 
			
		||||
          console.log(await Language.get('removing') + ' ' + element)
 | 
			
		||||
          logger.info(await Language.get('removing') + ' ' + element)
 | 
			
		||||
          const package = element.substring(8)
 | 
			
		||||
          await adb.removeApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green(await Language.get('remove_selected_user_apps')))
 | 
			
		||||
        logger.info(await Language.get('remove_selected_user_apps'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
      
 | 
			
		||||
    },
 | 
			
		||||
    compatibleApps: async () => {
 | 
			
		||||
        logger.info("Compatible Apps")
 | 
			
		||||
        common.header('Install Compatible Apps')
 | 
			
		||||
        logger.info(await Language.get('install_compatible_apps_header'))
 | 
			
		||||
        common.header(await Language.get('install_compatible_apps_header'))
 | 
			
		||||
 | 
			
		||||
        const compatibleApps = await common.getCompatibleAppsList()
 | 
			
		||||
        const value = await inquirer.compatibleApps();
 | 
			
		||||
@ -84,45 +59,15 @@ module.exports = {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const apkList = await getFilesIn('./data/apps', matchFiletypes = ['apk'], checkSubDirectories = false)
 | 
			
		||||
        const apkList = await adb.getListOfAPk()
 | 
			
		||||
 | 
			
		||||
        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);
 | 
			
		||||
 | 
			
		||||
                if (element === "data\\apps\\simpleweather_base.apk") {
 | 
			
		||||
                    await common.downloadFile('http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/simpleweather_split_config.armeabi_v7a.apk', './data/apps/simpleweather_split_config.armeabi_v7a.apk')
 | 
			
		||||
                    await common.downloadFile('http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/simpleweather_split_config.xhdpi.apk', './data/apps/simpleweather_split_config.xhdpi.apk')
 | 
			
		||||
                    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('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');
 | 
			
		||||
                        logger.info('moreLocale Activated On Watch');
 | 
			
		||||
                    })
 | 
			
		||||
                }
 | 
			
		||||
                if (element === "data\\apps\\com.alberto.locale.apk") {
 | 
			
		||||
                    await shellExec(adbRun + ' shell pm grant com.alberto.locale android.permission.CHANGE_CONFIGURATION && ' + adbRun + ' shell am start -n com.alberto.locale/com.alberto.locale.MainActivity && ' + adbRun + ' shell pm grant com.alberto.locale android.permission.CHANGE_CONFIGURATION').then(function (result) {
 | 
			
		||||
                        console.log(result)
 | 
			
		||||
                        console.log('Alberto Locale Activated On Watch');
 | 
			
		||||
                        logger.info('Alberto Locale Activated On Watch');
 | 
			
		||||
                    });
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            console.log(await Language.get('installing') + ' ' + element)
 | 
			
		||||
            logger.info(await Language.get('installing') + ' ' + element)
 | 
			
		||||
            await adb.installApk(element)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green('Compatible Apps Installed'))
 | 
			
		||||
        logger.info('Compatible Apps Installed')
 | 
			
		||||
        console.log(chalk.green(await Language.get('compatible_apps_installed')))
 | 
			
		||||
        logger.info(await Language.get('compatible_apps_installed'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user