123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- 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')
- const chalk = require('chalk');
- const globalVariables = require('../lib/globalVars');
- const { removeAppsList } = require('../lib/inquirer');
- if (process.platform === 'win32' || process.platform === 'win64') {
- adbRun = 'adb'
- } else {
- adbRun = './adb'
- }
- module.exports = {
- 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'));
- });
- }
- });
- },
- removeApk: async (package) => {
- result = await shellExec(adbRun + ' uninstall ' + package)
- if (result.stderr != '') {
- logger.info('Error ' + result.stderr);
- console.log(chalk.redBright('Error - Device not authorised'));
- } else {
- logger.info('Removing ' + package + ' - ' + result.stdout);
- console.log('Removing ' + package + ' - ' + result.stdout);
- }
- },
- removeXiaomiApk: async (package) => {
- result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package)
- if (result.stderr != '') {
- logger.info('Error ' + result.stderr);
- console.log(chalk.redBright('Error - Device not authorised'));
- } else {
- logger.info('Removing ' + package + ' - ' + result.stdout);
- console.log('Removing ' + package + ' - ' + result.stdout);
- }
- },
- restoreXiaomiApk: async (package) => {
- result = await shellExec(adbRun + ' shell cmd package install-existing ' + package)
- if (result.stderr != '') {
- logger.info('Error ' + result.stderr);
- console.log(chalk.redBright('Error - Device not authorised'));
- } else {
- logger.info('Removing ' + package + ' - ' + result.stdout);
- console.log('Removing ' + package + ' - ' + result.stdout);
- }
- },
- restoreAnyApk: async (package) => {
- result = await shellExec(adbRun + ' shell cmd package install-existing ' + package.restoreAnyApp)
- if (result.stderr != '') {
- logger.info('Error ' + result.stderr);
- console.log(chalk.redBright('Error - Device not authorised'));
- } else if (result.stdout.includes('doesn\'t exist')) {
- logger.info(result.stdout);
- console.log(chalk.redBright(result.stdout));
- } else {
- logger.info('Restoring ' + package.restoreAnyApp + ' - ' + result.stdout);
- console.log('Restoring ' + package.restoreAnyApp + ' - ' + 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
- }
- },
- killAdbServer: async () => {
- let result = await shellExec(adbRun + ' kill-server')
- logger.info('Restarting ADB')
- logger.info(result.stdout)
- },
- watchConnection: async (value) => {
- if (value.connection === "usb") {
- await module.exports.killAdbServer()
- result = await shellExec(adbRun + ' devices')
- console.log(result.stdout)
- if (result.stdout.includes('device', 15)) {
- console.log(chalk.green('MiWatch Connected via USB'))
- await common.pause(3000)
- logger.info("MiWatch connected")
- globalVariables.localUSB = "X"
- return true
- } else {
- console.log(chalk.red('MiWatch not found'))
- logger.info("MiWatch not found")
- await common.pause(2000)
- console.log(chalk.white('Try Again'))
- await common.pause(1000)
- return false
- }
- }
- if (value.connection === "wifi") {
- const value = await inquirer.connectWifi();
- await module.exports.killAdbServer()
- result = await shellExec(adbRun + ' connect ' + value.connectWifi)
- logger.info("Connect Wifi Result " + result.stdout)
- if (result.stdout.includes('already connected') || result.stdout.includes('connected to ')) {
- console.log(chalk.green('MiWatch Connected'))
- globalVariables.localUSB = ""
- globalVariables.miWatchIpaddress = value.connectWifi
- await common.pause(3000)
- logger.info("Connect Wifi Complete")
- return true
- } else {
- if (result.stdout.includes('failed to authenticate')) {
- console.log(chalk.redBright('MiWatch not authenticated'))
- logger.info('MiWatch not authenticated')
- return false
- } else {
- console.log(chalk.red(result.stdout))
- logger.info(result.stdout)
- }
- await common.pause(2000)
- console.log(chalk.white('Try Again'))
- await common.pause(1000)
- return false
- }
- }
- }
- };
|