123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- 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 extractNumber = require('extract-numbers')
- const settings = require("settings-store");
- if (process.platform === 'win32' || process.platform === 'win64') {
- adbRun = 'adb'
- } else {
- adbRun = './adb'
- }
- module.exports = {
- installApk: async (element) => {
- Language.setActiveLang(await settings.value("Lang"))
- result = await shellExec(adbRun + ' install -r ' + element).then(async function (result) {
- if (result.stderr != '') {
- common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
- }
- common.dualLog(element + ' - ' + result.stdout)
- if (element === "data\\apps\\simpleweather_base.apk") {
- await common.downloadFile('https://github.com/karl0ss/MiWatchKleaner-APKs/raw/master/Others/simpleweather_split_config.armeabi_v7a.apk', './data/apps/simpleweather_split_config.armeabi_v7a.apk')
- await common.downloadFile('https://github.com/karl0ss/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) {
- common.log(result)
- common.dualLog('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) {
- common.log(result)
- common.dualLog('morelocale-activated-on-watch')
- })
- }
- if (element === "data\\apps\\AlbertoLocale.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) {
- common.log(result)
- common.dualLog('alberto-locale-activated-on-watch')
- });
- }
- });
- },
- removeApk: async (package) => {
- Language.setActiveLang(await settings.value("Lang"))
- result = await shellExec(adbRun + ' uninstall ' + package)
- if (result.stderr != '') {
- common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
- } else {
- common.dualLog(await Language.get('removing') + ' ' + package + ' - ' + result.stdout)
- }
- },
- removeXiaomiApk: async (package) => {
- Language.setActiveLang(await settings.value("Lang"))
- result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package)
- if (result.stderr != '') {
- common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
- } else {
- common.dualLog(await Language.get('removing') + ' ' + package + ' - ' + result.stdout)
- }
- },
- restoreXiaomiApk: async (package) => {
- Language.setActiveLang(await settings.value("Lang"))
- result = await shellExec(adbRun + ' shell cmd package install-existing ' + package)
- if (result.stderr != '') {
- common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
- } else {
- common.dualLog(await Language.get('removing') + ' ' + package + ' - ' + result.stdout)
- }
- },
- restoreAnyApk: async (package) => {
- Language.setActiveLang(await settings.value("Lang"))
- result = await shellExec(adbRun + ' shell cmd package install-existing ' + package.removeAnyApp)
- if (result.stderr != '') {
- common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
- } else if (result.stdout.includes('doesn\'t exist')) {
- logger.info(result.stdout);
- console.log(chalk.redBright(result.stdout));
- } else {
- common.dualLog(await Language.get('restoring') + ' ' + package + ' - ' + result.stdout)
- }
- },
- removeAnyApk: async (package) => {
- Language.setActiveLang(await settings.value("Lang"))
- result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package.removeAnyApp)
- if (result.stderr != '') {
- common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
- } else if (result.stdout.includes('doesn\'t exist')) {
- logger.info(result.stdout);
- console.log(chalk.redBright(result.stdout));
- } else {
- common.dualLog(await Language.get('removing') + ' ' + package + ' - ' + result.stdout)
- }
- },
- getInstalledPacakges: async () => {
- Language.setActiveLang(await settings.value("Lang"))
- 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 () => {
- Language.setActiveLang(await settings.value("Lang"))
- let result = await shellExec(adbRun + ' kill-server')
- // common.log('')
- // common.dualLog('restarting-adb' + ' ' + result.stderr, 'red')
- },
- getCurrentDPI: async () => {
- Language.setActiveLang(await settings.value("Lang"))
- let result = await shellExec(adbRun + ' shell wm density')
- if (result.stdout != "") {
- currentDPI = extractNumber(result.stdout)
- if (currentDPI.length > 1) {
- return currentDPI[1]
- } else {
- return currentDPI[0]
- }
- } else {
- return result.stderr
- }
- },
- setDPI: async (setDPI) => {
- Language.setActiveLang(await settings.value("Lang"))
- let result = await shellExec(adbRun + ' shell wm density ' + setDPI)
- // currentDPI = extractNumber(result.stdout)
- // return currentDPI[0]
- },
- watchConnection: async (value) => {
- Language.setActiveLang(await settings.value("Lang"))
- if (value.connection === "usb") {
- common.dualLog(await Language.get('usb-one-device', 'whiteBright'))
- await common.pause(2000)
- common.dualLog(await Language.get('accept-authorisation', 'whiteBright'))
- common.dualLog(await Language.get('--------------------', 'whiteBright'))
- await common.pause(3000)
- await module.exports.killAdbServer()
- result = await shellExec(adbRun + ' devices')
- console.log(result.stdout)
- if (result.stdout.includes('device', 15)) {
- common.dualLog(await Language.get('connected-via-usb', 'green'))
- await common.pause(3000)
- globalVariables.localUSB = "X"
- return true
- } else {
- common.dualLog(await Language.get('not-found', 'red'))
- await common.pause(2000)
- common.dualLog(await Language.get('try-again', 'white'))
- await common.pause(1000)
- return false
- }
- }
- if (value.connection === "wifi") {
- common.dualLog(await Language.get('usb-not-connected', 'whiteBright'))
- await common.pause(2000)
- const value = await inquirer.connectWifi();
- common.dualLog(await Language.get('accept-authorisation', 'whiteBright'))
- common.dualLog(await Language.get('--------------------', 'whiteBright'))
- await common.pause(3000)
- 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 ')) {
- common.dualLog(await Language.get('connected', 'green'))
- globalVariables.localUSB = ""
- globalVariables.miWatchIpaddress = value.connectWifi
- await common.pause(3000)
- common.dualLog(await Language.get('connect-wifi-complete', 'green'))
- return true
- } else {
- if (result.stdout.includes('failed to authenticate')) {
- common.dualLog(await Language.get('not-authenticated', 'red'))
- return false
- } else {
- common.dualLog(result.stdout, 'red')
- }
- await common.pause(2000)
- common.dualLog('try-again', '')
- await common.pause(1000)
- return false
- }
- }
- }
- };
|