Compare commits

...

143 Commits
1.6 ... master

Author SHA1 Message Date
karl.hudgell
c6ba9d0090 version number 2021-01-31 15:04:51 +00:00
karl.hudgell
eb1c0b9826 quick fix for new url.. 2021-01-31 15:02:47 +00:00
karl.hudgell
7864480104 Merge branch '3.3.0Fix' 2020-09-15 13:14:47 +01:00
karl.hudgell
9eff3594a0 more fix 2020-09-15 13:09:16 +01:00
karl.hudgell
0fce90758f move to remote json 2020-09-15 13:04:24 +01:00
f0fa671d82 Merge branch '3.3.0' of Karl/MiWatchKleaner into master 2020-09-15 06:46:14 -05:00
karl.hudgell
7a21b6941c language changes 2020-09-15 12:40:48 +01:00
karl.hudgell
1e953d7d84 working reorder 2020-09-15 12:38:36 +01:00
karl.hudgell
2bdf0a90bc fixed one click and add global theme 2020-09-15 12:07:23 +01:00
karl.hudgell
7b86deb63c fix quit menu item 2020-09-15 11:01:36 +01:00
karl.hudgell
0aa5342aac working multi lang settings store 2020-09-15 10:58:04 +01:00
karl.hudgell
4d46cc470d working reworked apps list 2020-09-15 10:31:50 +01:00
karl.hudgell
e9c7c55289 new package list 2020-09-15 09:57:45 +01:00
karl.hudgell
f4b23b9db9 cleanup 2020-09-07 16:12:55 +01:00
karl.hudgell
ea946dd2f8 new strings 2020-09-07 15:45:31 +01:00
karl.hudgell
ee9a4a2fb0 clean up and new stings 2020-09-07 15:29:33 +01:00
karl.hudgell
600141c56f grerman and turkish 2020-09-07 15:08:02 +01:00
karl.hudgell
186fc2e74f fix batch install 2020-09-07 14:41:47 +01:00
karl.hudgell
1590a4b531 update all strings 2020-09-06 14:49:42 +01:00
karl.hudgell
27e500cd70 new lang strings 2020-09-06 14:43:18 +01:00
karl.hudgell
de82e7240d new menu item and change DPI 2020-09-06 14:43:11 +01:00
karl.hudgell
4bbeb6aae0 new packages 2020-09-06 14:42:56 +01:00
karl.hudgell
4b39c571e9 greek 2020-09-06 14:42:41 +01:00
karl.hudgell
9c6c2191f2 new version 2020-09-02 10:36:13 +01:00
karl.hudgell
decea46167 Italian, Dutch, Portuguese, Russian, Vietnamese 2020-09-02 10:35:53 +01:00
karl.hudgell
4d09166ff8 updated spanish and new lang 2020-08-30 10:10:06 +01:00
karl.hudgell
e87f89cc5d quick fix 2020-08-29 22:00:13 +01:00
a2cb5a7a49 Merge branch '3.1.0' of Karl/MiWatchKleaner into master 2020-08-29 15:50:42 -05:00
karl.hudgell
ac1b5a4f15 working 2020-08-29 21:47:42 +01:00
karl.hudgell
8a0d5df406 update to ignore 2020-08-29 21:05:41 +01:00
karl.hudgell
3dc25a6cc2 re npm i 2020-08-29 21:05:02 +01:00
karl.hudgell
e9df7f047f delete lock file 2020-08-29 21:04:55 +01:00
karl.hudgell
63cd59c6a1 remove any app 2020-08-29 21:03:18 +01:00
karl.hudgell
f89d883564 working spanish 100% 2020-08-29 20:48:57 +01:00
karl.hudgell
f020e27f8c working multilingual :) 2020-08-29 12:34:02 +01:00
karl.hudgell
2905c6675a more bits and albertolocale fix 2020-08-29 11:20:45 +01:00
karl.hudgell
64fea32966 3.1.0 muilti 2020-08-28 17:50:31 +01:00
karl.hudgell
ed396e0575 more lingual changes 2020-08-28 17:18:57 +01:00
karl.hudgell
688167f88e reworking for multilingual 2020-08-28 16:59:05 +01:00
karl.hudgell
a5b71281b3 update gitignore 2020-08-28 15:30:27 +01:00
karl.hudgell
1c47cbcd02 lost of deduplication and code cleanup 2020-08-28 15:29:38 +01:00
karl.hudgell
73ee55d913 making progress 2020-08-28 13:03:24 +01:00
karl.hudgell
3658fd26aa Merge branch 'master' of http://kithub.cf/Karl/MiWatchKleaner 2020-08-28 09:22:57 +01:00
karl.hudgell
24208ac628 code fix 2020-08-28 09:21:57 +01:00
928033df1d Merge branch '3.0.0' of Karl/MiWatchKleaner into master 2020-08-27 12:26:07 -05:00
karl.hudgell
e7d7a704b8 fix build script 2020-08-27 18:25:37 +01:00
karl.hudgell
7e1924bab4 refactor build 2020-08-27 18:19:08 +01:00
karl.hudgell
15c0320faa update 2020-08-27 18:16:39 +01:00
karl.hudgell
42138024a9 more clenaup 2020-08-27 17:10:47 +01:00
karl.hudgell
4893d4c124 ignore some bits 2020-08-27 17:10:33 +01:00
karl.hudgell
b918ff5f3a initial refactor 2020-08-27 16:45:49 +01:00
karl.hudgell
ff9f27e896 2.0.10 2020-08-27 14:37:31 +01:00
karl.hudgell
5c8fea9f07 removing com.xiaomi.wearable killed sync with app 2020-08-27 14:37:18 +01:00
karl.hudgell
e0a67fd98f bugfix for installing apps 2020-08-27 11:42:00 +01:00
karl.hudgell
c2a544013b update missing bits 2020-08-27 10:37:58 +01:00
16cf44518b Merge branch '2.0.8' of Karl/MiWatchKleaner into master 2020-08-27 04:29:22 -05:00
karl.hudgell
7177730b2d cleanup and refactor 2020-08-27 10:28:54 +01:00
5b00b13373 Merge branch '2.0.7' of Karl/MiWatchKleaner into master 2020-08-26 11:23:00 -05:00
karl.hudgell
71a2e00228 clean up 2020-08-26 17:22:31 +01:00
karl.hudgell
7b4866abcb download file in common 2020-08-26 17:22:06 +01:00
c5dd11d69d Merge branch '2.0.6' of Karl/MiWatchKleaner into master 2020-08-26 08:05:54 -05:00
karl.hudgell
8e24ac4915 change order 2020-08-26 13:31:19 +01:00
karl.hudgell
2aefedfe34 cleaned up removal 2020-08-26 13:14:15 +01:00
karl.hudgell
e0a1e347a6 2.0.6 2020-08-26 09:58:06 +01:00
ca11c8ac35 Merge branch 'albertoLocale' of Karl/MiWatchKleaner into master 2020-06-24 03:20:34 -05:00
karl.hudgell
b9edaeedc0 2.0.5 AL 2020-06-24 09:17:36 +01:00
karl.hudgell
a2906b5a36 gitgnore 2020-06-24 09:17:01 +01:00
karl.hudgell
95ed86e097 log update 2020-06-02 10:55:53 +01:00
karl.hudgell
5b1b98076f package updates 2020-06-02 10:55:43 +01:00
karl.hudgell
56855be084 more logging 2020-04-30 16:00:40 +01:00
karl.hudgell
bb61ce5675 more logging 2020-04-30 15:57:48 +01:00
karl.hudgell
abbeb51e1a always kill server 2020-04-30 15:47:37 +01:00
karl.hudgell
5939508500 ignroe lock 2020-04-30 15:47:23 +01:00
karl.hudgell
e1e742b972 2.0.4 2020-04-30 14:53:38 +01:00
karl.hudgell
c505812243 no need for 2020-04-30 14:53:28 +01:00
karl.hudgell
6c463706f6 add new logger 2020-04-30 09:03:50 +01:00
karl.hudgell
bd1f51dc2d ignore logfile 2020-04-30 09:03:34 +01:00
karl.hudgell
b495b6bdaf word fixes 2020-04-30 08:23:35 +01:00
karl.hudgell
74fa89e795 combative code for connections 2020-04-29 09:09:01 +01:00
karl.hudgell
a131a1ddfd fix buildscrpt 2020-04-28 13:31:06 +01:00
karl.hudgell
6c7a89689e switch for unix 2020-04-28 13:02:35 +01:00
karl.hudgell
100ac8f013 update buildScript to set executable 2020-04-28 12:32:56 +01:00
karl.hudgell
5704edd3da new 2.0.2 with working buildscript 2020-04-28 12:29:27 +01:00
karl.hudgell
01c96c8b72 working remove installed, using actual watch 2020-04-28 12:00:45 +01:00
karl.hudgell
b9a5570680 code cleanup 2020-04-28 11:24:10 +01:00
karl.hudgell
d7662cbac4 remove rmeove..lol 2020-04-27 17:57:53 +01:00
karl.hudgell
b9faabd269 fix "remove"/"install" 2020-04-27 15:21:52 +01:00
karl.hudgell
5dd55e7486 worth an upversion 2020-04-27 13:20:56 +01:00
karl.hudgell
d511b63f34 still remove apps 2020-04-27 12:41:12 +01:00
karl.hudgell
89eee84a1f start remove compatible apps 2020-04-27 12:40:59 +01:00
karl.hudgell
a13f1466cc add some more apps to remove/add 2020-04-27 12:35:13 +01:00
karl.hudgell
7899d50a30 active morelocale 2020-04-27 12:24:32 +01:00
karl.hudgell
f531e0641f activate moreLocale 2020-04-27 12:20:12 +01:00
karl.hudgell
4ce21de180 code cleanup 2020-04-27 11:52:09 +01:00
198183d008 Merge branch '2.0' of Karl/MiWatchKleaner into master 2020-04-26 12:23:40 -05:00
karl.hudgell
3aedc407d1 fix build script 2020-04-26 18:22:58 +01:00
karl.hudgell
042df8b69e process.switch 2020-04-26 12:24:50 +01:00
karl.hudgell
c509ab8969 build release 2020-04-26 12:24:38 +01:00
974a52e4f3 Merge branch '2.0' of Karl/MiWatchKleaner into master 2020-04-26 05:17:01 -05:00
karl.hudgell
e98419f6cf update to working delete code 2020-04-26 11:08:29 +01:00
karl.hudgell
45d2857c10 ignore release folder 2020-04-26 11:08:17 +01:00
859ad9df12 Merge branch '2.0' of Karl/MiWatchKleaner into master 2020-04-26 04:34:08 -05:00
karl.hudgell
f7fa9d7bd7 add assets for package.json 2020-04-26 10:33:16 +01:00
e6a50ac266 Merge branch '2.0' of Karl/MiWatchKleaner into master 2020-04-26 04:30:59 -05:00
karl.hudgell
6cba2ca0f2 remove some deps 2020-04-26 10:15:58 +01:00
karl.hudgell
5268d10ae7 all working 2.0.0 2020-04-26 10:10:29 +01:00
karl.hudgell
522d92c55f download and install working :) 2020-04-26 09:39:33 +01:00
karl.hudgell
a9bfef7c27 finally a working download order 2020-04-25 23:07:43 +01:00
karl.hudgell
7464f9b4e9 still not fixed 2020-04-25 21:28:13 +01:00
karl.hudgell
14050a1a04 more apps 2020-04-25 17:00:17 +01:00
karl.hudgell
a2794d0b2c working donwload 2020-04-25 16:56:23 +01:00
karl.hudgell
f7ba26ff3a igrnore any apk i leave testing 2020-04-25 16:55:55 +01:00
karl.hudgell
947a30b0e3 git keep 2020-04-25 16:55:31 +01:00
karl.hudgell
c95a0b0a50 working url return 2020-04-25 16:26:34 +01:00
karl.hudgell
f2acd38d0d formatting 2020-04-25 15:37:31 +01:00
karl.hudgell
cb3c9fea56 compatile apps list 2020-04-25 15:35:15 +01:00
karl.hudgell
2e2d8e2317 google apps 2020-04-25 15:35:03 +01:00
karl.hudgell
3f963c3026 auto use ipaddress 2020-04-25 15:09:41 +01:00
karl.hudgell
69df1e27f4 added quit 2020-04-25 14:54:31 +01:00
karl.hudgell
3c31e4838c working flow for install/uninstall 2020-04-25 14:21:45 +01:00
karl.hudgell
96536414c0 current status 2020-04-25 11:48:56 +01:00
karl.hudgell
7a55599d72 add some apps 2020-04-25 11:20:49 +01:00
karl.hudgell
ad0c2f5bf5 change menu a bit 2020-04-25 11:11:10 +01:00
karl.hudgell
64cb9b95d1 pull version from package.json 2020-04-25 11:08:50 +01:00
karl.hudgell
d1b5adb8aa working install/uninstall 2020-04-25 11:06:05 +01:00
karl.hudgell
3bb1959855 working apps list 2020-04-25 10:44:12 +01:00
karl.hudgell
0dbdc924a6 move to files 2020-04-25 10:27:17 +01:00
karl.hudgell
c9ff7cc977 blank 2020-04-25 10:27:02 +01:00
karl.hudgell
5388bdc620 blank again 2020-04-25 10:26:48 +01:00
karl.hudgell
535d43aa1e dont trakc miwatch 2020-04-25 10:26:24 +01:00
karl.hudgell
ab8d71b61b dont track updates to MiWatch.json 2020-04-25 10:26:09 +01:00
karl.hudgell
6ca5fd357e new adb 2020-04-25 10:23:13 +01:00
karl.hudgell
6eb7571b95 blank MiWatch.json 2020-04-25 10:23:05 +01:00
karl.hudgell
b00973036b working code update 2020-04-25 10:22:47 +01:00
karl.hudgell
2fd958e51c default apps list 2020-04-25 10:22:11 +01:00
karl.hudgell
1f11fe1c4a latest 2020-04-24 22:55:00 +01:00
karl.hudgell
1565aa37dc working wifi connect 2020-04-24 22:20:41 +01:00
karl.hudgell
ff342f35b1 second comit, too many changes.. 2020-04-24 21:40:03 +01:00
karl.hudgell
dcfc2abb39 initial working menu system 2020-04-24 20:42:45 +01:00
karl.hudgell
b2b8bcbf85 add some deps and git ignore 2020-04-24 20:23:16 +01:00
karl.hudgell
37e80b09d9 npm init 2020-04-24 20:17:04 +01:00
karl.hudgell
259f97200e Removal of old code 2020-04-24 20:16:57 +01:00
karl.hudgell
db3a3f2a93 version 1.7 2020-04-24 10:10:55 +01:00
38 changed files with 3589 additions and 406 deletions

8
.gitignore vendored
View File

@ -1 +1,7 @@
data/apps/ node_modules/
data/apps/*.apk
release/
data/*.log
logger.lock
null.log
my_apk/*.apk

17
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,17 @@
{"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "sssas",
// "program": "${workspaceFolder}/bin/test",
"program": "${workspaceFolder}/app.js",
"args": [
"init",
"aasas",
],
"console": "integratedTerminal"
},
],
}

View File

@ -1,374 +0,0 @@
echo off
mode con: cols=85 lines=50
set ch=data\chgcolor.exe
set fast=data\fastboot.exe
set adb=data\adb.exe
echo. && echo. && echo.
%ch% cc
echo ___________________________________________________________________________________
%ch% 00
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
%ch% 0f
echo MiWatchKleaner 1.6
%ch% 00
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
%ch% cc
echo ___________________________________________________________________________________
%ch% 0f
Timeout /t 2 >data/null
:START
cls
%ch% 07
echo. && echo. && echo.
%ch% cc
echo ___________________________________________________________________________________
%ch% 0f
echo. && echo. && echo.
echo MiWatchKleaner 1.6
echo.
echo -- MENU --
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
Timeout /t 1 >data/null
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 1 - Connect to MiWatch via Wifi
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 2 - Remove Installed Xiaomi Apps
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 3 - Install Compatible Apps
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 4 - Restore Uninstall App
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
echo E - exit
%ch% cc
echo ___________________________________________________________________________________
%ch% 0f
Timeout /t 1 >data/null
echo Choose an option:
%ch% 00
echo. && choice /c:1234E /M ""
IF %ERRORLEVEL% == 1 GOTO CONNECT
IF %ERRORLEVEL% == 2 GOTO REMOVEAPPS
IF %ERRORLEVEL% == 3 GOTO INSTALLAPPS
IF %ERRORLEVEL% == 4 GOTO REINSTALLAPPS
IF %ERRORLEVEL% == 5 GOTO EXIT
:EXIT
exit
:REMOVEAPPS
cls
%ch% 07
echo. && echo. && echo.
%ch% cc
echo ___________________________________________________________________________________
%ch% 0f
echo. && echo. && echo.
echo.
echo -- REMOVE XIAOMI APPS MENU --
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
Timeout /t 1 >data/null
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 1 - Remove Xiaomi Apps and Overlays
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 2 - Retrun to Main Menu
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
echo E - exit
%ch% cc
echo ___________________________________________________________________________________
%ch% 0f
Timeout /t 1 >data/null
echo Choose an option:
%ch% 00
echo. && choice /c:123 /M ""
IF %ERRORLEVEL% == 1 GOTO REMOVEAPP
IF %ERRORLEVEL% == 2 GOTO START
:EXIT
exit
:INSTALLAPPS
cls
%ch% 07
echo. && echo. && echo.
%ch% cc
echo ___________________________________________________________________________________
%ch% 0f
echo. && echo. && echo.
echo.
echo -- INSTALL APPS --
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
Timeout /t 1 >data/null
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 1 - INSTALL Google Apps
echo (Google Fit, Google Maps, Google Quick Search,
echo Google Translate, Google TTS, WearOs Keyboard)
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 2 - INSTALL Other Apps
echo (AccuWeather, Alberto Store, PujieBlack,
echo Ultimate Alexa)
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 3 - INSTALL MoreLocale
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo.
%ch% 0a
echo 4 - Retrun to Main Menu
echo.
%ch% 08
%ch% 0f
echo _________________________________________________________________________________
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
echo E - exit
%ch% cc
echo ___________________________________________________________________________________
%ch% 0f
Timeout /t 1 >data/null
echo Choose an option:
%ch% 00
echo. && choice /c:123 /M ""
IF %ERRORLEVEL% == 1 GOTO GOOGLE
IF %ERRORLEVEL% == 2 GOTO OTHERS
IF %ERRORLEVEL% == 3 GOTO MORELOCALE
IF %ERRORLEVEL% == 4 GOTO START
:EXIT
exit
:REMOVEAPP
cls
color 47
color 47
%adb% shell pm uninstall -k --user 0 com.xiaomi.wear.calculator && %adb% shell pm uninstall -k --user 0 com.ximalayaos.wear.common && %adb% shell pm uninstall -k --user 0 com.eg.android.AlipayGphone && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.hotwordle && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.fitness && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.watchface.function && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.watchface.art && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.watchface.album && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.watchface.decomposite && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.watchface.classic && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.tutorial && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.deskclock && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.sportlogger && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.weather && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.charging && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.anonymous.xiaoai && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.lpa && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.setupprovider && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.xiaoai && %adb% shell pm uninstall -k --user 0 com.xiaomi.wear.card && %adb% shell pm uninstall -k --user 0 com.google.android.inputmethod.pinyin && %adb% shell pm uninstall -k --user 0 com.sogou.ime.wear && %adb% shell pm uninstall -k --user 0 com.tencent.qqmusicwatch && %adb% shell pm uninstall -k --user 0 com.sogou.map.android.maps && %adb% shell pm uninstall -k --user 0 com.umetrip.android.msky.app && %adb% shell pm uninstall -k --user 0 com.gotokeep.keep && %adb% shell pm uninstall -k --user 0 com.tigerbrokers.stock
Timeout /t 10 >data/null
%ch% 4F
echo. ******** Apps Removed *****
Timeout /t 2 >data/null
echo.-----------------------------------------------------------------------------------
%ch% 47
Timeout /t 1 >data/null
echo.
echo Press any key to back to MAIN MEMU
%ch% 44
pause
%ch% 00
GOTO START
:CONNECT
cls
color 47
set /p miwatchIp=Please enter MiWatch IP Address:
Timeout /t 5 >data/null
%ch% 4F
%adb% connect %miwatchIp%
Timeout /t 2 >data/null
%adb% devices
echo.-----------------------------------------------------------------------------------
%ch% 47
Timeout /t 1 >data/null
echo.
echo. && echo.
echo Press any key to back to MAIN MEMU
%ch% 44
pause
%ch% 00
GOTO START
:GOOGLE
cls
color 47
echo. Downloading Latest Google Fit
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleFit.apk -P ./data/apps
echo. Installing Latest Google Fit
%adb% install -r data/apps/GoogleFit.apk
echo. Latest Google Fit Installed
echo. Downloading Latest Google Maps
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleMaps.apk -P ./data/apps
echo. Installing Latest Google Maps
%adb% install -r data/apps/GoogleMaps.apk
echo. Latest Google Maps Installed
echo. Downloading Latest Google Quick Search
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleQuickSearch.apk -P ./data/apps
echo. Installing Latest Google Quick Search
%adb% install -r data/apps/GoogleQuickSearch.apk
echo. Latest Google Quick Search Installed
echo. Downloading Latest GoogleTTS
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleTTS.apk -P ./data/apps
echo. Installing Latest GoogleTTS
%adb% install -r data/apps/GoogleTTS.apk
echo. Latest GoogleTTS Installed
echo. Downloading Latest Google Translate
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleTranslate.apk -P ./data/apps
echo. Installing Latest Google Translate
%adb% install -r data/apps/GoogleTranslate.apk
echo. Latest Google Translate Installed
echo. Downloading Latest Google Wear Keyboard
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/WearKeyboard.apk -P ./data/apps
echo. Installing Latest Google Wear Keyboard
%adb% install -r data/apps/WearKeyboard.apk
echo. Latest Google Wear Keyboard Installed
echo. Downloading Latest Google Calculator
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleCalc.apk -P ./data/apps
echo. Installing Latest Google Calculator
%adb% install -r data/apps/GoogleCalc.apk
echo. Latest Google Calculator Installed
echo. Downloading Latest Google Clock
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleClock.apk -P ./data/apps
echo. Installing Latest Google Clock
%adb% install -r data/apps/GoogleClock.apk
echo. Latest Google Clock Installed
echo. Downloading Latest Google Services
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Google/GoogleServices.apk -P ./data/apps
echo. Installing Latest Google Services
%adb% install -r data/apps/GoogleServices.apk
echo. Latest Google Services Installed
Timeout /t 5 >data/null
%ch% 4F
del /S data\apps\*.apk
echo. ******** All Google Apps Installed *****
Timeout /t 2 >data/null
echo.-----------------------------------------------------------------------------------
%ch% 47
Timeout /t 1 >data/null
echo.
echo. && echo.
echo. && echo.
echo Press any key to back to MAIN MEMU
%ch% 44
pause
%ch% 00
GOTO START
:OTHERS
cls
color 47
echo. Downloading Latest Pujie Black
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/Pujie.apk -P ./data/apps
echo. Installing Latest Pujie Black
%adb% install -r data/apps/Pujie.apk
echo. Latest Pujie Black Installed
echo. Downloading Latest AccuWeather
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/AccuWeather.apk -P ./data/apps
echo. Installing Latest AccuWeather
%adb% install -r data/apps/AccuWeather.apk
echo. Latest AccuWeather Installed
echo. Downloading Latest Ultimate Alexa
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/UltimateAlexa.apk -P ./data/apps
echo. Installing Latest Ultimate Alexa
%adb% install -r data/apps/UltimateAlexa.apk
echo. Latest Ultimate Alexa Installed
Timeout /t 5 >data/null
%ch% 4F
del /S data\apps\*.apk
echo. ******** Other Apps All Installed *****
Timeout /t 2 >data/null
echo.-----------------------------------------------------------------------------------
%ch% 47
Timeout /t 1 >data/null
echo.
echo. && echo.
echo. && echo.
echo Press any key to back to MAIN MEMU
%ch% 44
pause
%ch% 00
GOTO START
:MORELOCALE
cls
color 47
echo. Downloading Latest MoreLocale
data\wget.exe -q http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/MoreLocale.apk -P ./data/apps
echo. Installing Latest MoreLocale
%adb% install -r data/apps/MoreLocale.apk
echo. Latest MoreLocale Installed
echo. Running MoreLocale Config
%adb% shell pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION
Timeout /t 5 >data/null
%ch% 4F
del /S data\apps\*.apk
echo. ******** MoreLocale Installed & Enabled *****
Timeout /t 2 >data/null
echo.-----------------------------------------------------------------------------------
%ch% 47
Timeout /t 1 >data/null
echo.
echo. && echo.
echo. && echo.
echo Press any key to back to MAIN MEMU
%ch% 44
pause
%ch% 00
GOTO START
:REINSTALLAPPS
cls
color 47
set /p appToEnable=Please enter app name to re-enable:
Timeout /t 5 >data/null
echo. Re-enabling %appToEnable%
%ch% 4F
%adb% shell cmd package install-existing %appToEnable%
Timeout /t 2 >data/null
echo.-----------------------------------------------------------------------------------
%ch% 47
Timeout /t 1 >data/null
echo.
echo. && echo.
echo. && echo.
echo Press any key to back to MAIN MEMU
%ch% 44
pause
%ch% 00
GOTO START

View File

@ -1,29 +0,0 @@
Version 1.6
Option to re-enable uninstalled applications
Stop removing com.xiaomi.account
Stop removing com.xiaomi.mihome
Stop removing com.xiaomi.wear.market
Version 1.5
Remove com.xiaomi.wear.calculator
Version 1.4
Add Google Clock
Update GoogleQuickSearch
Add Google Services
Version 1.3
Add moreLocale
Version 1.2
Add Google Calculator to Google Install set
Version 1.1
This allows install of working Google and Other Apps.
Google Fit Google Maps Google Quick Search Google Translate Google TTS GBoard Wear Os
AccuWeather Puji Black Ultimate Alexa
Version 1.0
Initial Version

BIN
adb Normal file

Binary file not shown.

BIN
adb.exe Normal file

Binary file not shown.

16
app.js Normal file
View File

@ -0,0 +1,16 @@
const settings = require("settings-store")
settings.init({
appName: "MiWatchKleaner", //required,
// publisherName: "Bar", //optional
// reverseDNS: "com.bar.foo" //required for macOS
})
// if (process.env.KLEANER_CLEAR_LANG = 'X') {
// settings.clear("Lang")
// }
const pages = require('./pages/pages')
pages.selectLanguage()

25
buildRelease.sh Normal file
View File

@ -0,0 +1,25 @@
echo What is build number && \
read buildNum && \
pkg package.json && \
mv miwatchkleaner-* ./release && \
mv ./release/miwatchkleaner-win-* ./release/Windows && \
mv ./release/miwatchkleaner-linux-* ./release/Linux && \
mv ./release/miwatchkleaner-macos-* ./release/MacOs && \
cp ./data/xiaomiPackageRemovalList.json ./release/Windows/data/ && \
cp ./data/xiaomiPackageRemovalList.json ./release/MacOS/data/ && \
cp ./data/xiaomiPackageRemovalList.json ./release/Linux/data/ && \
cp -rf ./lang/ ./release/Windows/ && \
cp -rf ./lang/ ./release/MacOS/ && \
cp -rf ./lang/ ./release/Linux/ && \
chmod 0777 ./release/**/adb && \
chmod 0777 ./release/**/miwatchkleaner-* && \
chmod +x ./release/**/adb && \
chmod +x ./release/**/miwatchkleaner-* && \
cd release/MacOS/ && \
tar -pcvzf miwatchkleaner.$buildNum-macos.tar.gz adb data/ my_apk/ lang/ miwatchkleaner-macos-x64 && \
cd .. && \
cd Linux/ && \
tar -pcvzf miwatchkleaner.$buildNum-Linux.tar.gz adb data/ my_apk/ lang/ miwatchkleaner-linux-x64 && \
cd .. && \
cd Windows/ && \
zip -r miwatchkleaner.$buildNum-win.zip adb.exe AdbWinApi.dll AdbWinUsbApi.dll data/ my_apk/ lang/ miwatchkleaner-win-x86.exe

Binary file not shown.

0
data/apps/.gitkeep Normal file
View File

Binary file not shown.

View File

@ -1,2 +0,0 @@
Waiting for 1 seconds, press a key to continue ...0

Binary file not shown.

View File

@ -0,0 +1,217 @@
[
{
"name": "com.android.messaging",
"klean": "X",
"global": ""
},
{
"name": "com.eg.android.AlipayGphone",
"klean": "X",
"global": ""
},
{
"name": "com.google.android.clockwork.flashlight",
"klean": "X",
"global": ""
},
{
"name": "com.google.android.clockwork.gestures.tutorial",
"klean": "X",
"global": ""
},
{
"name": "com.google.android.clockwork.lesetup",
"klean": "X",
"global": ""
},
{
"name": "com.google.android.inputmethod.pinyin",
"klean": "X",
"global": ""
},
{
"name": "com.google.android.theme.baiji.default",
"klean": "X",
"global": ""
},
{
"name": "com.google.android.wearable.frameworkpackagestubs",
"klean": "",
"global": "X"
},
{
"name": "com.google.android.wearable.localedition.overlay.cmiit",
"klean": "",
"global": "X"
},
{
"name": "com.google.android.wearable.overlay.common.baiji",
"klean": "",
"global": "X"
},
{
"name": "com.google.android.wearable.overlay.helium.baiji",
"klean": "",
"global": "X"
},
{
"name": "com.google.android.wearable.overlay.home.baiji",
"klean": "",
"global": "X"
},
{
"name": "com.google.android.wearable.overlay.home.baiji.tiles",
"klean": "",
"global": "X"
},
{
"name": "com.gotokeep.keep",
"klean": "X",
"global": ""
},
{
"name": "com.onetrack.watch",
"klean": "X",
"global": ""
},
{
"name": "com.qb.qtranslator",
"klean": "X",
"global": ""
},
{
"name": "com.sogou.ime.wear",
"klean": "X",
"global": ""
},
{
"name": "com.sogou.map.android.maps",
"klean": "X",
"global": ""
},
{
"name": "com.tencent.qqmusicwatch",
"klean": "X",
"global": ""
},
{
"name": "com.tigerbrokers.stock",
"klean": "X",
"global": ""
},
{
"name": "com.umetrip.android.msky.app",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.mihome",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.anonymous.xiaoai",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.calculator",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.camera",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.card",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.charging",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.compass",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.deskclock",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.hotwordle",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.market",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.mqs",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.pressure",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.setupprovider",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.tutorial",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.watchface.album",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.watchface.art",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.watchface.classic",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.watchface.decomposite",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.watchface.function",
"klean": "X",
"global": ""
},
{
"name": "com.ximalayaos.wear.common",
"klean": "X",
"global": ""
},
{
"name": "com.xiaomi.wear.xiaoai",
"klean": "",
"global": ""
},
{
"name": "org.codeaurora.ims",
"klean": "X",
"global": ""
}
]

67
lang/de.json Normal file
View File

@ -0,0 +1,67 @@
{
"alberto-locale-activated-on-watch": "Alberto Locale aktiviert auf der Uhr",
"batch-install-apps-complete": "Stapel-Installation von Apps abgeschlossen",
"compatible-apps": "Kompatible Apps",
"compatible-apps-installed": "Kompatible Apps installiert",
"complete": "Abgeschlossen",
"connect-to-watch": "Verbinde mit Uhr",
"connect-wifi-complete": "Verbindung über WiFi hergestellt",
"connect-wifi-message": "Wie ist die IP-Adresse deiner MiWatch?",
"connected": "Verbunden",
"connected-via-usb": "Verbunden mit USB",
"connected-via-wifi": "Verbunden über WiFi",
"connection-type-message": "Wie möchtest du dich verbinden?",
"device-not-authorised": "Gerät nicht autorisiert",
"downloading-compatible-apps": "Lade kompatible Apps herunter",
"downloading-latest": "Lade aktuellste Version",
"error": "Fehler",
"error-device-not-authorised": "Fehler - Gerät nicht autorisiert",
"failed": "Fehlgeschlagen",
"header-remove-installed-apps": "Entferne installierte Apps",
"install-compatible-apps-header": "Installation kompatible Apps",
"install-compatible-apps-message": "Welche Apps möchtest du installieren?",
"installing": "Installiere",
"installing-apps": "Installiere Apps",
"main-menu-item-1": "1-Klick Karl0ss Klean",
"main-menu-item-2": "Entferne Xiaomi Apps",
"main-menu-item-3": "Wiederherstellung von Xiaomi Apps",
"main-menu-item-4": "Installiere kompatible Apps",
"main-menu-item-5": "Wiederherstellung beliebiger App",
"main-menu-item-6": "Entferne beliebige App",
"main-menu-item-7": "Stapel-Installation von Apps",
"main-menu-item-8": "Stapel-Deinstallation von installierten Apps",
"main-menu-item-9": "Beenden",
"main-menu-question": "Was möchtest du tun?",
"morelocale-activated-on-watch": "moreLocale aktiviert auf der Uhr",
"not-authenticated": "Nicht autorisiert",
"not-connected": "Nicht verbunden",
"not-found": "Nicht gefunden",
"packages-recieved-from-watch": "Pakete erhalten von der Uhr",
"please-reconnect-to-watch": "Bitte verbinde deine Uhr erneut",
"removal-complete": "Deinstallation abgeschlossen",
"remove-any-app-message": "Welche App möchtest du entfernen?",
"remove-installed-apps-failed": "Deinstallation von Apps fehlgeschlagen",
"remove-installed-apps-message": "Welche installierten Apps möchtest du entfernen?",
"remove-selected-user-apps": "Entferne ausgewählte Benutzer-Apps",
"remove-xiaomi-apps": "Emtferne Xiaomi Apps",
"removing": "Entferne",
"removing-apps-complete": "Deinstallation der Apps abgeschlossen",
"restarting-adb": "Neustart ADB",
"restore-any-app-message": "Welche App möchtest du wiederherstellen?",
"restore-app-message": "Welche Apps möchtest du wiederherstellen?",
"restoring": "Wiederherstellung in Gang",
"restoring-apps-complete": "Wiederherstellung von Apps abgeschlossen",
"simple-weather-activated-on-watch": "simpleWeather aktiviert auf der Uhr",
"try-again": "Versuche erneut",
"main-menu-item-10": "Watch DPI ändern",
"set-dpi-message": "Neuen DPI-Wert eingeben:",
"default-dpi-is": "Standard-DPI ist",
"current-dpi-is": "aktuelle DPI ist ",
"usb-one-device": "Stellen Sie sicher, dass NUR Ihre Uhr angeschlossen ist",
"accept-authorisation": "Bitte wählen Sie \"Immer zulassen\" für die Autorisierung auf der Uhr",
"usb-not-connected": "Stellen Sie sicher, dass Ihre Uhr nicht über USB angeschlossen ist",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/en.json Normal file
View File

@ -0,0 +1,67 @@
{
"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": "Remove ANY app",
"main-menu-item-7": "Batch Install Apps",
"main-menu-item-8": "Batch Remove Installed Apps",
"main-menu-item-9": "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?",
"header-remove-installed-apps": "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",
"removal-complete": "Removal Complete",
"installing": "Installing",
"restoring": "Restoring",
"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",
"compatible-apps": "Compatible Apps",
"remove-xiaomi-apps": "Remove Xiaomi Apps",
"downloading-compatible-apps": "Downloading Compatible Apps",
"installing-apps": "Installing Apps",
"downloading-latest": "Downloading Latest",
"complete": "Complete",
"failed": "Failed",
"restoring-apps-complete": "Restoring Apps Complete",
"batch-install-apps-complete": "Batch Install Apps Complete",
"connect-to-watch": "Connect to watch",
"connected-via-usb": "Connected via USB",
"connected-via-wifi": "Connected via Wifi",
"connected": "Connected",
"not-connected": "Not Connected",
"error-device-not-authorised": "Error - Device not authorised",
"not-found": "Not Found",
"try-again": "Try Again",
"connect-wifi-complete": "Connect Wifi Complete",
"not-authenticated": "Not Authenticated",
"error": "Error",
"remove-any-app-message": "What App do you want to remove?",
"removing-apps-complete": "Removing Apps Complete",
"main-menu-item-10": "Change Watch DPI",
"set-dpi-message": "Enter New DPI Value:",
"default-dpi-is": "Default DPI is",
"current-dpi-is": "Current DPI is",
"usb-one-device": "Make sure ONLY your watch is connected",
"accept-authorisation": "Please select \"Always Allow\" for authorisation on watch",
"usb-not-connected": "Make sure your watch is not connected via USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/es.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "¿Qué quieres hacer?",
"main-menu-item-1": "1-Click Karl0ss Klean",
"main-menu-item-2": "Borrar Aplicaciones Xiaomi",
"main-menu-item-3": "Restaurar Aplicaciones Xiaomi",
"main-menu-item-4": "Instalar Aplicaciones Compatibles",
"main-menu-item-5": "Restaurar CUALQUIER Aplicación",
"main-menu-item-6": "Borrar CUALQUIER Aplicación",
"main-menu-item-7": "Instalar Múltiples Aplicaciones",
"main-menu-item-8": "Borrar Múltiples Aplicaciones Instaladas",
"main-menu-item-9": "Salir",
"connection-type-message": "¿Cómo quieres conectarte?",
"connect-wifi-message": "¿Cuál es la IP de tu MiWatch?",
"restore-app-message": "¿Qué Aplicaciones quieres restaurar?",
"install-compatible-apps-message": "¿Qué Aplicaciones quieres instalar?",
"remove-installed-apps-message": "¿Qué Aplicaciones quieres borrar?",
"restore-any-app-message": "¿Qué Aplicación quieres restaurar?",
"header-remove-installed-apps": "Borrar Aplicaciones instaladas",
"packages-recieved-from-watch": "Paquetes recibidos desde el reloj",
"device-not-authorised": "Dispositivo no autorizado",
"restarting-adb": "Reiniciando ADB",
"please-reconnect-to-watch": "Por favor, vuelve a conectar al reloj",
"remove-installed-apps-failed": "Fallo al Borrar Aplicaciones Instaladas",
"removing": "Borrando",
"removal-complete": "Borrado finalizado",
"installing": "Instalando",
"restoring": "Restaurando",
"remove-selected-user-apps": "Aplicaciones de usuario seleccionadas Eliminadas",
"install-compatible-apps-header": "Instalar Aplicaciones Compatibles",
"simple-weather-activated-on-watch": "simpleWeather Activo en el Reloj",
"morelocale-activated-on-watch": "moreLocale Activo en el Reloj",
"alberto-locale-activated-on-watch": "Alberto Locale Activo en el Reloj",
"compatible-apps-installed": "Aplicaciones Compatibles Instaladas",
"compatible-apps": "Aplicaciones Compatibles",
"remove-xiaomi-apps": "Borrar Aplicaciones de Xiaomi",
"downloading-compatible-apps": "Descargando Aplicaciones Compatibles",
"installing-apps": "Instalando Aplicaciones",
"downloading-latest": "Descargando última versión",
"complete": "Finalizado",
"failed": "Fallo",
"restoring-apps-complete": "Restauración de Aplicaciones Finalizada",
"batch-install-apps-complete": "Instalación de múltiples Aplicaciones Finalizada",
"connect-to-watch": "Conectar al Reloj",
"connected-via-usb": "Conectado por USB",
"connected-via-wifi": "Conectado por Wifi",
"connected": "Conectado",
"not-connected": "No Conectado",
"error-device-not-authorised": "Error - Dispositivo no autorizado",
"not-found": "No se encuentra",
"try-again": "Inténtalo de nuevo",
"connect-wifi-complete": "Conexión Wifi OK",
"not-authenticated": "No Autenticado",
"error": "Error",
"remove-any-app-message": "¿Qué Aplicación quieres borrar?",
"removing-apps-complete": "Borrado de Aplicaciones Finalizado",
"main-menu-item-10": "Cambiar DPI del reloj",
"set-dpi-message": "Introduzca un nuevo valor de DPI:",
"default-dpi-is": "El DPI predeterminado es",
"current-dpi-is": "Actual DPI es",
"usb-one-device": "Asegúrate de que SOLO tu reloj esté conectado",
"accept-authorisation": "Selecciona \"Permitir siempre\" para la autorización de servicio",
"usb-not-connected": "Asegúrese de que su reloj no esté conectado a través de USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/fr.json Normal file
View File

@ -0,0 +1,67 @@
{
"alberto-locale-activated-on-watch": "Alberto Locale activé sur la montre",
"batch-install-apps-complete": "Installation des lots d'applications terminées",
"compatible-apps": "Applications compatibles",
"compatible-apps-installed": "Applications compatibles installées",
"complete": "Terminé",
"connect-to-watch": "Connectez-vous à la montre",
"connect-wifi-complete": "Connexion par Wifi effectuée",
"connect-wifi-message": "Quelle est l'adresse IP de votre Mi Watch ?",
"connected": "Connecté",
"connected-via-usb": "Connecté par USB",
"connected-via-wifi": "Connecté par WiFi",
"connection-type-message": "Comment voulez-vous vous connecter ?",
"device-not-authorised": "Appareil non autorisé",
"downloading-compatible-apps": "Téléchargement des applications compatibles en cours",
"downloading-latest": "Téléchargement de la dernière version",
"error": "Erreur",
"error-device-not-authorised": "Erreur - Appareil non autorisé",
"failed": "Échoué",
"header-remove-installed-apps": "Supprimer des applications installées",
"install-compatible-apps-header": "Installer des applications compatibles",
"install-compatible-apps-message": "Quelles applications voulez-vous installer ?",
"installing": "Installation en cours",
"installing-apps": "Installation des applications en cours",
"main-menu-item-1": "1-Click Karl0ss Klean",
"main-menu-item-2": "Supprimer les applications Xiaomi",
"main-menu-item-3": "Restaurer les applications Xiaomi",
"main-menu-item-4": "Installer des applications compatibles",
"main-menu-item-5": "Restaurer une application",
"main-menu-item-6": "Supprimer une application",
"main-menu-item-7": "Installer plusieurs applications",
"main-menu-item-8": "Supprimer plusieurs applications",
"main-menu-item-9": "Quitter",
"main-menu-question": "Que souhaitez-vous faire ?",
"morelocale-activated-on-watch": "moreLocale activé sur la montre",
"not-authenticated": "Non authentifié",
"not-connected": "Non connecté",
"not-found": "Introuvable",
"packages-recieved-from-watch": "Packets reçus depuis la montre",
"please-reconnect-to-watch": "Merci de reconnecter la montre",
"removal-complete": "Suppression terminée",
"remove-any-app-message": "Quelle application voulez-vous supprimer ?",
"remove-installed-apps-failed": "La suppression d'applications installées a échoué",
"remove-installed-apps-message": "Quelles applications installées voulez-vous supprimer ?",
"remove-selected-user-apps": "Les applications sélectionnées ont été supprimées",
"remove-xiaomi-apps": "Supprimer les applications Xiaomi",
"removing": "Suppression en cours",
"removing-apps-complete": "Suppression d'application effectuée",
"restarting-adb": "Redémarrage d'ADB",
"restore-any-app-message": "Quelles applications voulez-vous restaurer ?",
"restore-app-message": "Quelles applications voulez-vous restaurer ?",
"restoring": "Restauration en cours",
"restoring-apps-complete": "Restauration des applications terminée",
"simple-weather-activated-on-watch": "simpleWeather activé sur la montre",
"try-again": "Réessayer",
"main-menu-item-10": "Changer le DPI de la montre",
"set-dpi-message": "Entrez une nouvelle valeur PPP:",
"default-dpi-is": "Le DPI par défaut est",
"current-dpi-is": "Le DPI actuel est",
"usb-one-device": "Assurez-vous que SEULE votre montre est connectée",
"accept-authorisation": "Veuillez sélectionner \"Toujours autoriser\" pour l'autorisation sur la montre",
"usb-not-connected": "Assurez-vous que votre montre n'est pas connectée via USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/gr.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "Τι θες να κάνεις?",
"main-menu-item-1": "1-Πάτησε Karl0ss Klean",
"main-menu-item-2": "Αφαίρεσε Xiaomi Εφαρμογές",
"main-menu-item-3": "Επανέφερε Xiaomi Εφαρμογές",
"main-menu-item-4": "Εγκατέστησε συμβατές Εφαρμογές",
"main-menu-item-5": "Επανέφερε οποιαδήποτε εφαρμογή",
"main-menu-item-6": "Αφαίρεσε οποιαδήποτε εφαρμογή",
"main-menu-item-7": "Εγκατέστησε ομάδα εφαρμογών",
"main-menu-item-8": "Απεγκατάστησε ομάδα εγκατεστημένων εφαρμογών",
"main-menu-item-9": "Έξοδος",
"connection-type-message": "Πως θέλεις να συνδεθείς?",
"connect-wifi-message": "Ποια είναι η IP διεύθυνση του MiWatch?",
"restore-app-message": "Ποιες Εφαρμογές θέλεις να επαναφέρεις?",
"install-compatible-apps-message": "Ποιες Εφαρμογές θέλεις να εγκαταστήσεις?",
"remove-installed-apps-message": "Ποιες εγκατεστημένες Εφαρμογές θέλεις να απεγκαταστήσεις?",
"restore-any-app-message": "Ποια Εφαρμογή θέλεις να επαναφέρεις?",
"header-remove-installed-apps": "Αφαίρεσε Εγκατεστημένες Εφαρμογές",
"packages-recieved-from-watch": "Τα πακέτα ελήφθησαν από το ρολόϊ",
"device-not-authorised": "Η συσκευή δεν εγκρίθηκε",
"restarting-adb": "Επανεκκίνηση ADB",
"please-reconnect-to-watch": "Παρακαλώ ξανασύνδεσε το ρολόϊ",
"remove-installed-apps-failed": "Αφαίρεση εγκατεστημένων εφαρμογών απέτυχε",
"removing": "Αφαίρεση",
"removal-complete": "Αφαίρεση Ολοκληρώθηκε",
"installing": "Εγκατάσταση",
"restoring": "Επαναφορά",
"remove-selected-user-apps": "Αφαιρέθηκαν Εφαρμογές επιλεγμένες από τον χρήστη",
"install-compatible-apps-header": "Εγκατέστησε συμβατές Εφαρμογές",
"simple-weather-activated-on-watch": "simpleWeather Ενεργοποιήθηκε στο ρολόϊ",
"morelocale-activated-on-watch": "moreLocale Ενεργοποιήθηκε στο ρολόϊ",
"alberto-locale-activated-on-watch": "Alberto Locale Ενεργοποιήθηκε στο ρολόϊ",
"compatible-apps-installed": "Συμβατές Εφαρμογές εγκαταστάθηκαν",
"compatible-apps": "Συμβατές Εφαρμογές",
"remove-xiaomi-apps": "Αφαίρεσε Xiaomi Εφαρμογές",
"downloading-compatible-apps": "Λήψη Συμβατών Εφαρμογών",
"installing-apps": "Εγκατάσταση Εφαρμογών",
"downloading-latest": "Λήψη τελευταίων",
"complete": "Ολοκληρώθηκε",
"failed": "Απέτυχε",
"restoring-apps-complete": "Επαναφορά Εφαρμογών Ολοκληρώθηκε",
"batch-install-apps-complete": "Πακέτο εγκατάστασης Εφαρμογών Ολοκληρώθηκε",
"connect-to-watch": "Συνδέσου στο ρολόϊ",
"connected-via-usb": "Συνδέθηκε με USB",
"connected-via-wifi": "Συνδέθηκε με Wifi",
"connected": "Συνδέθηκε",
"not-connected": "Δεν Συνδέθηκε",
"error-device-not-authorised": "Σφάλμα - Η συσκευή δεν εγκρίθηκε",
"not-found": "Δεν βρέθηκε",
"try-again": "Δοκίμασε ξανά",
"connect-wifi-complete": "Σύνδεση Wifi Ολοκληρώθηκε",
"not-authenticated": "Δεν πιστοποιήθηκε",
"error": "Σφάλμα",
"remove-any-app-message": "Ποια Εφαρμογή θέλεις να αφαιρέσεις?",
"removing-apps-complete": "Αφαίρεση εφαρμογών ολοκληρώθηκε",
"main-menu-item-10": "Αλλαγή DPI παρακολούθησης",
"set-dpi-message": "Εισαγάγετε νέα τιμή DPI:",
"default-dpi-is": "Το προεπιλεγμένο DPI είναι",
"current-dpi-is": "το τρέχον DPI είναι",
"usb-one-device": "Βεβαιωθείτε ΜΟΝΟ ότι το ρολόι σας είναι συνδεδεμένο",
"accept-authorisation": "Επιλέξτε \"Να επιτρέπεται πάντα\" για εξουσιοδότηση στο ρολόι",
"usb-not-connected": "Βεβαιωθείτε ότι το ρολόι σας δεν είναι συνδεδεμένο μέσω USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/he.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "מה תרצה לעשות?",
"main-menu-item-1": "התקנה מהירה בקליק",
"main-menu-item-2": "הסר אפליקציות מובנות של שיאומי",
"main-menu-item-3": "שחזר אפליקציות מובנות של שיאומי",
"main-menu-item-4": "התקן אפליקציות תואמות",
"main-menu-item-5": "שחזר אפליקציה",
"main-menu-item-6": "הסר אפליקציה",
"main-menu-item-7": "התקן מספר אפליקציות",
"main-menu-item-8": "הסר מספר אפליקציות",
"main-menu-item-9": "יציאה",
"connection-type-message": "איך תרצה להתחבר?",
"connect-wifi-message":"מה כתובת האיי.פיי של השעון?",
"restore-app-message": "איזה אפליקציות תרצה לשחזר?",
"install-compatible-apps-message": "איזה אפליקציות תרצה להתקין?",
"remove-installed-apps-message": "איזה אפליקציות תרצה להסיר?",
"restore-any-app-message": "איזה אפליקציות תרצה לשחזר?",
"header-remove-installed-apps": "הסרת אפליקציות",
"packages-recieved-from-watch": "אפליקציה התקבלה",
"device-not-authorised": "מכשיר לא מאושר",
"restarting-adb": "מפעיל מחדש שרת ADB",
"please-reconnect-to-watch": "חבר את השעון שוב בבקשה",
"remove-installed-apps-failed": "הסרת אפליקציות נכשלה",
"removing": "מסיר",
"removal-complete": "הסרה הושלמה",
"installing": "מתקין",
"restoring": "משחזר",
"remove-selected-user-apps": "הסר אפליקציות שנבחרו",
"install-compatible-apps-header": "התקן אפליקציות שנבחרו",
"simple-weather-activated-on-watch": "simpleWeather פעיל בשעון",
"morelocale-activated-on-watch": "moreLocale פעיל בשעון",
"alberto-locale-activated-on-watch": "Alberto Locale פעיל בשעון",
"compatible-apps-installed": "אפליקציות הותקנו",
"compatible-apps": "אפליקציות תואמות",
"remove-xiaomi-apps": "הסר אפליקציות מובנות של שיאומי",
"downloading-compatible-apps": "מוריד אפליקציות תואמות",
"installing-apps": "מתקין אפליקציות",
"downloading-latest": "מוריד את הגרסא האחרונה",
"complete": "הושלם בהצלחה",
"failed": "נכשל",
"restoring-apps-complete": "שחזור אפליקציות הושלם",
"batch-install-apps-complete": "התקנת מספר אפליקציות הושלמה",
"connect-to-watch": "אנא התחבר לשעון",
"connected-via-usb": "מחובר דרך USB",
"connected-via-wifi": "מחובר דרך Wifi",
"connected": "מחובר",
"not-connected": "לא מחובר",
"error-device-not-authorised": "שגיאה - מכשיר לא מאושר",
"not-found": "לא נמצא",
"try-again": "נסה שוב",
"connect-wifi-complete": "חיבור הושלם",
"not-authenticated": "לא התחבר",
"error": "שגיאה",
"remove-any-app-message": "איזה אפליקציות תרצה להסיר?",
"removing-apps-complete": "הסרה הושלמה בהצלחה",
"main-menu-item-10": "שנה DPI של שעון",
"set-dpi-message": "הזן ערך DPI חדש",
"default-dpi-is": "ברירת מחדל ל- DPI",
"current-dpi-is": "DPI הנוכחי הוא",
"usb-one-device": "וודא שהשעון שלך מחובר רק",
"accept-authorisation": "אנא בחר תמיד אפשר לצורך הרשאה בשעון",
"usb-not-connected": "וודא שהשעון שלך אינו מחובר באמצעות USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/it.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "Che cosa vuoi fare?",
"main-menu-item-1": "1-Click Karl0ss Pulisce",
"main-menu-item-2": "Rimuovi Xiaomi Apps",
"main-menu-item-3": "Ripristina Xiaomi Apps",
"main-menu-item-4": "Installa Apps Compatibili",
"main-menu-item-5": "Ripristina qualsiasi app",
"main-menu-item-6": "Rimuovi qualsiasi app",
"main-menu-item-7": "Installa tutte le Apps",
"main-menu-item-8": "Rimuovi tutte le App Installate",
"main-menu-item-9": "Esci",
"connection-type-message": "Come vuoi connetterti?",
"connect-wifi-message": "Qualè l'indirizzo IP del tuo MiWatch?",
"restore-app-message": "Che apps vuoi ripristinare?",
"install-compatible-apps-message": "Che apps compatibili vuoi installare?",
"remove-installed-apps-message": "Che apps Installate vuoi rimuovere?",
"restore-any-app-message": "Che Apps vuoi ripristinare?",
"header-remove-installed-apps": "Rimuovi Apps Installate",
"packages-recieved-from-watch": "Pacchetti ricevuti dall'orologio",
"device-not-authorised": "Dispositivo non autorizzato",
"restarting-adb": "Riavvio ADB",
"please-reconnect-to-watch": "Prego riconnetti l'orologio",
"remove-installed-apps-failed": "Rimozione Apps Installate Fallita",
"removing": "Rimozione",
"removal-complete": "Rimozione Completata",
"installing": "Installazione",
"restoring": "Ripristino",
"remove-selected-user-apps": "Rimuovere le Apps utente selezionate",
"install-compatible-apps-header": "Installa Apps Compatibili",
"simple-weather-activated-on-watch": "MeteoSemplice Attivato sull'orologio",
"morelocale-activated-on-watch": "moreLocale Attivato sull'orologio",
"alberto-locale-activated-on-watch": "Alberto Locale Attivato sull'orologio",
"compatible-apps-installed": "Apps Compatibili Installate",
"compatible-apps": "Apps Compatibili",
"remove-xiaomi-apps": "Rimuovi Xiaomi Apps",
"downloading-compatible-apps": "Scarica Apps Compatibili",
"installing-apps": "Installazione Apps",
"downloading-latest": "Scaricare le più recenti",
"complete": "Completato",
"failed": "Fallito",
"restoring-apps-complete": "Ripristino Apps Completato",
"batch-install-apps-complete": "Installazione Apps Completato",
"connect-to-watch": "Collegare l'orologio",
"connected-via-usb": "Connesso via USB",
"connected-via-wifi": "Conness via Wifi",
"connected": "Connesso",
"not-connected": "Non Connesso",
"error-device-not-authorised": "Errore - Dispositivo non autorizzato",
"not-found": "Dispositivo Non trovato",
"try-again": "Riprova",
"connect-wifi-complete": "Connessione Wifi Completata",
"not-authenticated": "Non Autenticato",
"error": "Errore",
"remove-any-app-message": "Che App vuoi rimuovere?",
"removing-apps-complete": "Rimozione Apps Completata",
"main-menu-item-10": "Cambia DPI orologio",
"set-dpi-message": "Immetti nuovo valore DPI:",
"default-dpi-is": "DPI predefinito è",
"current-dpi-is": "current DPI is",
"usb-one-device": "Assicurati che SOLO il tuo orologio sia connesso",
"accept-authorisation": "Seleziona \"Consenti sempre\" per l'autorizzazione sull'orologio",
"usb-not-connected": "Assicurati che l'orologio non sia connesso tramite USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/nl.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "Wat wil je doen?",
"main-menu-item-1": "1-Click Karl0ss Klean",
"main-menu-item-2": "Xiaomi Apps verwijderen",
"main-menu-item-3": "Xiaomi Apps herstellen",
"main-menu-item-4": "Compatible Apps installeren",
"main-menu-item-5": "Andere Apps herstellen",
"main-menu-item-6": "Andere Apps verwijderen",
"main-menu-item-7": "Batch Apps Installeren",
"main-menu-item-8": "Batch Geïnstalleerde Apps verwijderen",
"main-menu-item-9": "Afsluiten",
"connection-type-message": "Hoe wil je connectie maken?",
"connect-wifi-message": "Wat is het IpAdres van je miWatch?",
"restore-app-message": "Welke Apps wil je herstellen?",
"install-compatible-apps-message": "Welke Apps wil je installeren?",
"remove-installed-apps-message": "Welke geïnstalleerde Apps wil je verwijderen?",
"restore-any-app-message": "Welke App wil je herstellen?",
"header-remove-installed-apps": "Verwijderen Geïnstalleerde Apps",
"packages-recieved-from-watch": "Pakketten ontvangen van horloge",
"device-not-authorised": "Apparaat niet geauthoriseerd",
"restarting-adb": "ADB herstarten",
"please-reconnect-to-watch": "Opnieuw verbinden met Horloge aub",
"remove-installed-apps-failed": "Verwijderen van geïnstalleerde Apps mislukt",
"removing": "Verwijderen",
"removal-complete": "Verwijderen afgerond",
"installing": "Installeren",
"restoring": "Herstellen",
"remove-selected-user-apps": "Geselecteerde gebruiker Apps verwijderd",
"install-compatible-apps-header": "Installeren Compatible Apps",
"simple-weather-activated-on-watch": "simpleWeather Actief op Horloge",
"morelocale-activated-on-watch": "moreLocale Actief op Horloge",
"alberto-locale-activated-on-watch": "Alberto Locale Actief op Horloge",
"compatible-apps-installed": "Compatible Apps geïnstalleerd",
"compatible-apps": "Compatible Apps",
"remove-xiaomi-apps": "Verwijderen Xiaomi Apps",
"downloading-compatible-apps": "Downloaden van Compatible Apps",
"installing-apps": "Apps installeren",
"downloading-latest": "Laatste versie downloaden",
"complete": "Afgerond",
"failed": "Mislukt",
"restoring-apps-complete": "Herstellen Apps Afgerond",
"batch-install-apps-complete": "Batch Installeren Apps Afgerond",
"connect-to-watch": "Verbinden met Horloge",
"connected-via-usb": "Verbonden via USB",
"connected-via-wifi": "Verbonden via WiFi",
"connected": "Verbonden",
"not-connected": "Niet verbonden",
"error-device-not-authorised": "Error - Apparaat niet geauthoriseerd",
"not-found": "Niet gevonden",
"try-again": "Probeer opnieuw",
"connect-wifi-complete": "Verbinden via Wifi Afgerond",
"not-authenticated": "Niet geauthenticeerd",
"error": "Fout",
"remove-any-app-message": "Welke App wil je verwijderen?",
"removing-apps-complete": "Verwijderen van Apps Afgerond",
"main-menu-item-10": "Watch DPI wijzigen",
"set-dpi-message": "Voer nieuwe DPI-waarde in:",
"default-dpi-is": "Standaard DPI is",
"current-dpi-is": "huidige DPI is",
"usb-one-device": "Zorg ervoor dat ALLEEN uw horloge is aangesloten",
"accept-authorisation": "Selecteer \"Altijd toestaan\" voor autorisatie op horloge",
"usb-not-connected": "Zorg ervoor dat uw horloge niet is aangesloten via USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/pl.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "Co chcesz zrobić?",
"main-menu-item-1": "1-Click Karl0ss Klean",
"main-menu-item-2": "Usuń aplikacje Xiaomi",
"main-menu-item-3": "Przywróć aplikacje Xiaomi",
"main-menu-item-4": "Zainstaluj kompatybilne aplikacje",
"main-menu-item-5": "Przywróć DOWOLNĄ aplikację",
"main-menu-item-6": "Usuń DOWOLNĄ aplikację",
"main-menu-item-7": "Zainstaluj wiele aplikacji",
"main-menu-item-8": "Usuń wiele aplikacji",
"main-menu-item-9": "Wyjdź",
"connection-type-message": "Jak chcesz się połączyć?",
"connect-wifi-message": "Jaki jest adres IP Twojego MiWatch?",
"restore-app-message": "Jakie aplikacje chcesz przywrócić?",
"install-compatible-apps-message": "Jakie aplikacje chcesz zainstalować?",
"remove-installed-apps-message": "Jakie zainstalowane aplikacje chcesz usunąć?",
"restore-any-app-message": "Jaką aplikację chcesz przywrócić?",
"header-remove-installed-apps": "Usuń zainstalowane aplikacje",
"packages-recieved-from-watch": "Paczki otrzymane z zegarka",
"device-not-authorised": "Brak autoryzacji urządzenia",
"restarting-adb": "Restartowanie ADB",
"please-reconnect-to-watch": "Proszę połącz się ponownie z zegarkiem",
"remove-installed-apps-failed": "Usuwanie zainstalowanych aplikacji się nie powiodło",
"removing": "Usuwanie",
"removal-complete": "Usuwanie zakończone",
"installing": "Instalowanie",
"restoring": "Przywracanie",
"remove-selected-user-apps": "Usuń zaznaczone aplikacje użytkownika",
"install-compatible-apps-header": "Zainstaluj kompatybilne aplikacje",
"simple-weather-activated-on-watch": "simpleWeather aktywowane na zegarku",
"morelocale-activated-on-watch": "moreLocale aktywowane na zegarku",
"alberto-locale-activated-on-watch": "Alberto Locale aktywowane na zegarku",
"compatible-apps-installed": "Kompatybilne aplikacje zainstalowane",
"compatible-apps": "Kompatybilne aplikacje",
"remove-xiaomi-apps": "Usuń aplikacje Xiaomi",
"downloading-compatible-apps": "Pobierz kompatybilne aplikacje",
"installing-apps": "Instalowanie aplikacji",
"downloading-latest": "Pobierz najnowsze",
"complete": "Zakończone",
"failed": "Nie powiodło się",
"restoring-apps-complete": "Przywracanie aplikacji zakończone",
"batch-install-apps-complete": "Instalowanie wielu aplikacji zakończone",
"connect-to-watch": "Połącz z zegarkiem",
"connected-via-usb": "Połączono przez USB",
"connected-via-wifi": "Połączono przez Wifi",
"connected": "Połączono ",
"not-connected": "Nie połączono",
"error-device-not-authorised": "Błąd - Urządzenie nieautoryzowane",
"not-found": "Nie znaleziono",
"try-again": "Spróbuj ponownie",
"connect-wifi-complete": "Połączenie Wifi zakończone",
"not-authenticated": "Brak uwierzytelnienia",
"error": "Błąd",
"remove-any-app-message": "Którą aplikacje chcesz usunąć?",
"removing-apps-complete": "Usuwanie aplikacji zakończone",
"main-menu-item-10": "Zmień DPI zegarka",
"set-dpi-message": "Wprowadź nową wartość DPI:",
"default-dpi-is": "Default DPI to",
"bieżąca-dpi-to": "bieżąca wartość DPI to",
"usb-one-device": "Upewnij się, że TYLKO zegarek jest podłączony",
"accept-authorisation": "Aby uzyskać autoryzację na zegarku, wybierz Zawsze zezwalaj",
"usb-not-connected": "Upewnij się, że zegarek nie jest podłączony przez USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/pt-br.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "O que você quer fazer?",
"main-menu-item-1": "1-Click Karl0ss Klean",
"main-menu-item-2": "Remover Apps da Xiaomi",
"main-menu-item-3": "Restaurar Apps da Xiaomi",
"main-menu-item-4": "Instalar Apps Compatíveis",
"main-menu-item-5": "Restaurar QUALQUER app",
"main-menu-item-6": "Remover QUALQUER app",
"main-menu-item-7": "Instalar Apps por lote",
"main-menu-item-8": "Remover Apps por lote",
"main-menu-item-9": "Sair",
"connection-type-message": "Como você quer Conectar?",
"connect-wifi-message": "Qual o endereço IP do seu MiWatch?",
"restore-app-message": "Quais Apps você quer restaurar?",
"install-compatible-apps-message": "Quais Apps você quer instalar?",
"remove-installed-apps-message": "Quais APPs instalados você quer remover?",
"restore-any-app-message": "Quais APPs você quer restaurar?",
"header-remove-installed-apps": "Remover Apps instalados",
"packages-recieved-from-watch": "Pacotes recebidos do relógio",
"device-not-authorised": "Dispositivo não autorizado",
"restarting-adb": "Reiniciando ADB",
"please-reconnect-to-watch": "Por favor, reconecte o relógio",
"remove-installed-apps-failed": "Falha ao remover Apps instalados",
"removing": "Removendo",
"removal-complete": "Remoção Completa",
"installing": "Instalando",
"restoring": "Restaurando",
"remove-selected-user-apps": "Aplicativos do usuário selecionado removidos",
"install-compatible-apps-header": "Instalar Apps compatíveis",
"simple-weather-activated-on-watch": "simpleWeather ativado no relógio",
"morelocale-activated-on-watch": "moreLocale ativado no relógio",
"alberto-locale-activated-on-watch": "Alberto Locale ativado no relógio",
"compatible-apps-installed": "Instalado Apps compatíveis",
"compatible-apps": "Apps compatíveis",
"remove-xiaomi-apps": "Remover Apps da Xiaomi",
"downloading-compatible-apps": "Baixando Apps compatíveis",
"installing-apps": "Installando Apps",
"downloading-latest": "Baixando versão recente",
"complete": "Completo",
"failed": "Falhou",
"restoring-apps-complete": "Restauração de Apps, Completa",
"batch-install-apps-complete": "Instalação por lotes, completa",
"connect-to-watch": "Conecte ao relógio",
"connected-via-usb": "Conectado por USB",
"connected-via-wifi": "Conectado por Wifi",
"connected": "Conectado",
"not-connected": "Não conectado",
"error-device-not-authorised": "Erro - Dispositivo não autorizado",
"not-found": "Não encontrado",
"try-again": "Tente novamente",
"connect-wifi-complete": "Conexão por WIFI completa",
"not-authenticated": "Não Autenticado",
"error": "Erro",
"remove-any-app-message": "Qual App você quer remover?",
"removing-apps-complete": "Remoção de Apps Completa",
"main-menu-item-10": "Alterar DPI do relógio",
"set-dpi-message": "Digite o novo valor de DPI:",
"default-dpi-is": "O DPI padrão é",
"current-dpi-is": "o DPI atual é",
"usb-one-device": "Certifique-se de que SOMENTE seu relógio esteja conectado",
"accept-authorisation": "Selecione \"Sempre permitir\" para autorização no relógio",
"usb-not-connected": "Certifique-se de que seu relógio não esteja conectado via USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/ru.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "Что вы хотите сделать?",
"main-menu-item-1": "Удаление в один клик от Karl0s",
"main-menu-item-2": "Удаление приложений Xiaomi",
"main-menu-item-3": "Восстановление приложений Xiaomi",
"main-menu-item-4": "Установка приложений",
"main-menu-item-5": "Восстановление ЛЮБОГО приложения",
"main-menu-item-6": "Удаление ЛЮБОГО приложения",
"main-menu-item-7": "Пакетная установка приложений",
"main-menu-item-8": "Пакетное удаление приложений",
"main-menu-item-9": "Выход",
"connection-type-message": "Тип соединения с часами?",
"connect-wifi-message": "IP адрес ваших часов?",
"restore-app-message": "Какие приложения вы хотите восстановить?",
"install-compatible-apps-message": "Какие приложения вы хотите установить?",
"remove-installed-apps-message": "Какие приложения из установленных вы хотите удалить?",
"restore-any-app-message": "Какое приложение вы хотите восстановить?",
"header-remove-installed-apps": "Удаление установленных приложений",
"packages-recieved-from-watch": "Установочные пакеты, полученные с часов",
"device-not-authorised": "Устройство не авторизованно",
"restarting-adb": "Перезапуск ADB",
"please-reconnect-to-watch": "Пожалуйста, подключитесь к часам еще раз",
"remove-installed-apps-failed": "Удаление установленных приложений не удалось",
"removing": "Удаление",
"removal-complete": "Удаление завершено",
"installing": "Установка",
"restoring": "Восстановление",
"remove-selected-user-apps": "Удаленные выбранные пользовательские приложения",
"install-compatible-apps-header": "Установка приложений",
"simple-weather-activated-on-watch": "simpleWeather активирована на часах",
"morelocale-activated-on-watch": "moreLocale активирована на часах",
"alberto-locale-activated-on-watch": "Alberto Locale активирована на часах",
"compatible-apps-installed": "Приложения установлены",
"compatible-apps": "Приложения",
"remove-xiaomi-apps": "Удаление приложений Xiaomi",
"downloading-compatible-apps": "Загрузка приложений",
"installing-apps": "Установка приложений",
"downloading-latest": "Загрузка последних версий",
"complete": "Завершена",
"failed": "не удалась",
"restoring-apps-complete": "Восстановление приложений завершено",
"batch-install-apps-complete": "Пакетная установка приложений завершена",
"connect-to-watch": "Соединение с часами",
"connected-via-usb": "Соединено через USB",
"connected-via-wifi": "Соединено через Wifi",
"connected": "Соединено",
"not-connected": "Соединение отсутствует",
"error-device-not-authorised": "Ошибка - Устройство не авторизовано",
"not-found": "Не найдено",
"try-again": "Попробуйте еще раз",
"connect-wifi-complete": "Соединение с Wifi завершено",
"not-authenticated": "Не аутентифицировано",
"error": "Ошибка",
"remove-any-app-message": "Какое приложение вы хотите удалить?",
"removing-apps-complete": "Удаление приложений завершено",
"main-menu-item-10": "Изменить разрешение часов",
"set-dpi-message": "Введите новое значение DPI:",
"default-dpi-is": "DPI по умолчанию",
"current-dpi-is": "текущий DPI",
"usb-one-device": "Убедитесь, что подключены ТОЛЬКО ваши часы",
"accept-authorisation": "Пожалуйста, выберите \"Всегда разрешать\" для авторизации на часах",
"usb-not-connected": "Убедитесь, что ваши часы не подключены через USB.",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/tr.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "Ne yapmak istiyorsunuz?",
"main-menu-item-1": "1-Tık Karl0ss Klean",
"main-menu-item-2": "Xiaomi Uygulamalarını Kaldır",
"main-menu-item-3": "Xiaomi Uygulamalarını Geri Yükle",
"main-menu-item-4": "Uyumlu Uygulamaları Kur",
"main-menu-item-5": "HERHANGİ BİR uygulamayı geri yükle",
"main-menu-item-6": "HERHANGİ BİR uygulamayı kaldır",
"main-menu-item-7": "Toplu Yükleme Uygulamaları",
"main-menu-item-8": "Yüklü Uygulamaları Toplu Olarak Kaldır",
"main-menu-item-9": ık",
"connection-type-message": "Nasıl bağlanmak istiyorsunuz?",
"connect-wifi-message": "MiWatch IpAdress'iniz nedir?",
"restore-app-message": "Hangi uygulamaları geri yüklemek istiyorsunuz?",
"install-compatible-apps-message": "Hangi uygulamaları yüklemek istiyorsunuz?",
"remove-installed-apps-message": "Hangi Yüklü uygulamaları kaldırmak istiyorsun?",
"restore-any-app-message": "Hangi Uygulamayı geri yüklemek istiyorsun?",
"header-remove-installed-apps": "Yüklü Uygulamaları Kaldır",
"packages-recieved-from-watch": "Saatten alınan paketler",
"device-not-authorised": "Cihaz yetkilendirilmedi",
"restarting-adb": "ADB yeniden başlatılıyor",
"please-reconnect-to-watch": "İzlemek için lütfen yeniden bağlanın",
"remove-installed-apps-failed": "Yüklü Uygulamaları Kaldırma Başarısız Oldu",
"removing": "Kaldırılıyor",
"removal-complete": "Kaldırma Tamamlandı",
"installing": "Kuruluyor",
"restoring": "Geri yükleniyor",
"remove-selected-user-apps": "Seçili Kullanıcı Uygulamaları Kaldırıldı",
"install-compatible-apps-header": "Uyumlu Uygulamaları Kur",
"simple-weather-activated-on-watch": "Saatte simpleWeather Etkinleştirildi",
"morelocale-activated-on-watch": "moreLocale Watch On Watch'ta Etkinleştirildi",
"alberto-locale-activated-on-watch": "Alberto Locale Watch On Activated",
"compatible-apps-installed": "Yüklü Uyumlu Uygulamalar",
"compatible-apps": "Uyumlu Uygulamalar",
"remove-xiaomi-apps": "Xiaomi Uygulamalarını Kaldır",
"downloading-compatible-apps": "Uyumlu Uygulamaları İndirme",
"installing-apps": "Uygulama Yükleme",
"downloading-latest": "En Son İndiriliyor",
"complete": "Tamamlandı",
"failed": "Başarısız",
"restoring-apps-complete": "Uygulamaları Geri Yükleme Tamamlandı",
"batch-install-apps-complete": "Toplu Yükleme Uygulamaları Tamamlandı",
"connect-to-watch": "İzlemeye bağlan",
"connected-via-usb": "USB ile bağlı",
"connected-via-wifi": "Wi-Fi ile bağlı",
"connected": "Bağlandı",
"not-connected": "Bağlı Değil",
"error-device-not-authorised": "Hata - Cihaz yetkilendirilmedi",
"not-found": "Bulunamadı",
"try-again": "Tekrar Deneyin",
"connect-wifi-complete": "Kablosuz Bağlantı Tamamlandı",
"not-authenticated": "Kimliği Doğrulanmadı",
"error": "Error",
"remove-any-app-message": "Hangi Uygulamayı kaldırmak istiyorsunuz?",
"removing-apps-complete": "Uygulamaları Kaldırma Tamamlandı",
"main-menu-item-10": "Saat DPI'yı Değiştir",
"set-dpi-message": "Yeni DPI Değerini Girin:",
"default-dpi-is": "Varsayılan DPI",
"current-dpi-is": "Geçerli DPI:",
"usb-one-device": "YALNIZCA saatinizin bağlı olduğundan emin olun",
"accept-authorisation": "Saatte yetkilendirme için lütfen \"Her Zaman İzin Ver\" seçeneğini seçin",
"usb-not-connected": "Saatinizin USB ile bağlı olmadığından emin olun",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

67
lang/vn.json Normal file
View File

@ -0,0 +1,67 @@
{
"main-menu-question": "Bạn muốn làm gì",
"main-menu-item-1": "1-Click Karl0ss Klean",
"main-menu-item-2": "Gỡ bỏ các Phần mềm của Xiaomi",
"main-menu-item-3": "Phục hồi các Phần mềm của Xiaomi",
"main-menu-item-4": "Cài đặt các Phần mềm tương thích",
"main-menu-item-5": "Phục hồi phần mềm BẤT KỲ",
"main-menu-item-6": "Gỡ bỏ phần mềm BẤT KỲ",
"main-menu-item-7": "Cài đặt hàng loạt các phần mềm",
"main-menu-item-8": "Gỡ bỏ hàng loạt các phần mềm đã cài",
"main-menu-item-9": "Thoát",
"connection-type-message": "Bạn muốn chọn kết nối nào",
"connect-wifi-message": "Địa chỉ IP của Miwatch của bạn là gì?",
"restore-app-message": "Những phần mềm nào bạn muốn Khôi phục?",
"install-compatible-apps-message": "Những phần mềm nào bạn muốn Cài đặt?",
"remove-installed-apps-message": "Những phần mềm đã cài đặt nào bạn muốn gỡ bỏ?",
"restore-any-app-message": "Phần mềm nào bạn muốn khôi phục",
"header-remove-installed-apps": "Gỡ Phần mềm đã cài đặt",
"packages-recieved-from-watch": "Đồng hồ đã nhận các Gói phần mềm",
"device-not-authorised": "Thiết bị không được cấp phép (unauthorised)",
"restarting-adb": "Đang khởi động lại ADB",
"please-reconnect-to-watch": "Vui lòng kết nối lại đồng hồ",
"remove-installed-apps-failed": "Gỡ bỏ phần mềm đã cài đặt thất bại",
"removing": "Đang gỡ bỏ",
"removal-complete": "Hoàn tất gỡ bỏ",
"installing": "Đang cài đặt",
"restoring": "Đang phục hồi",
"remove-selected-user-apps": "Đã gỡ các phần mềm được chọn",
"install-compatible-apps-header": "Cài đặt các Phần mềm tương thích",
"simple-weather-activated-on-watch": "simpleWeather đã kích hoạt trên đồng hồ",
"morelocale-activated-on-watch": "moreLocale đã kích hoạt trên đồng hồ",
"alberto-locale-activated-on-watch": "Alberto Locale đã kích hoạt trên đồng hồ",
"compatible-apps-installed": "Các Phần mềm tương thích đã được cài",
"compatible-apps": "ác Phần mềm tương thích",
"remove-xiaomi-apps": "Gỡ bỏ các Phần mềm của Xiaomi",
"downloading-compatible-apps": "Đang tải các Phần mềm tương thích",
"installing-apps": "Đang cài đặt các Phần mềm",
"downloading-latest": "Đang tải phiên bản mới nhất",
"complete": "Hoàn Thành",
"failed": "Thất Bại",
"restoring-apps-complete": "Phục hồi phần mềm hoàn tất",
"batch-install-apps-complete": "Cài đặt hàng loạt hoàn tất",
"connect-to-watch": "Kết nối đồng hồ",
"connected-via-usb": "Kết nối qua USB",
"connected-via-wifi": "Kết nối qua Wifi",
"connected": "Đã kết nối",
"not-connected": "Không kết nối",
"error-device-not-authorised": "Lỗi - Thiết bị không được cấp phép (unauthorised)",
"not-found": "Không tìm thấy",
"try-again": "Thử lại",
"connect-wifi-complete": "Kết nối Wifi hoàn tất",
"not-authenticated": "Không thể xác thực",
"error": "Lỗi",
"remove-any-app-message": "Bạn muốn gỡ bỏ Phần mềm nào?",
"removing-apps-complete": "Gỡ bỏ Phần mềm hoàn tất",
"main-menu-item-10": "Thay đổi DPI của Đồng hồ",
"set-dpi-message": "Nhập Giá trị DPI Mới:",
"default-dpi-is": "DPI mặc định là",
"current-dpi-is": "DPI hiện tại là",
"usb-one-device": "Đảm bảo CHỈ đồng hồ của bạn được kết nối",
"accept-authorisation": "Vui lòng chọn \"Luôn cho phép\" để ủy quyền trên đồng hồ",
"usb-not-connected": "Đảm bảo rằng đồng hồ của bạn không được kết nối qua USB",
"main-menu-item-11": "Global Theme",
"enable-global-theme": "Enable Global Theme",
"disable-global-theme": "Disable Global Theme",
"main-menu-item-12": "Xiaomi Apps"
}

211
lib/adb.js Normal file
View File

@ -0,0 +1,211 @@
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
}
}
}
};

114
lib/common.js Normal file
View File

@ -0,0 +1,114 @@
const chalk = require('chalk');
const clear = require('clear');
const figlet = require('figlet');
const fs = require('fs')
var pjson = require('../package.json');
const fetch = require('node-fetch');
var shell = require('shelljs');
const logger = require('perfect-logger');
const Language = require("@shypes/language-translator");
const globalVariables = require('../lib/globalVars');
const settings = require("settings-store");
var chalkRainbow = require('chalk-rainbow')
module.exports = {
header: async (page) => {
Language.setActiveLang(await settings.value("Lang"))
clear();
console.log(
chalkRainbow(
figlet.textSync('MiWatch Kleaner', {
horizontalLayout: 'full'
})
)
);
console.log(chalk.red(' ' + pjson.version));
console.log();
console.log(
chalk.red(
'-------------------------------------------------------------------------------------------------------'
)
)
console.log(chalk.blue(await Language.get(page)))
module.exports.connectionCheck()
console.log(chalk.red('----------'))
},
pause: async (time) => {
await new Promise(resolve => setTimeout(resolve, time));
},
connectionCheck: async () => {
Language.setActiveLang(await settings.value("Lang"))
if (globalVariables.localUSB === "X") {
console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-usb')))
}
if (globalVariables.miWatchIpaddress != "") {
console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-wifi') + ' ' + chalk.white(globalVariables.miWatchIpaddress)))
}
if (globalVariables.localUSB === "" && globalVariables.miWatchIpaddress === "") {
console.log(chalk.white('MiWatch: ') + chalk.red(await Language.get('not-connected')))
}
},
downloadFile: async (url, path) => {
Language.setActiveLang(await settings.value("Lang"))
const res = await fetch(url);
// await module.exports.downloadSize(url)
await new Promise(async (resolve, reject) => {
const fileStream = fs.createWriteStream(path);
res.body.pipe(fileStream);
res.body.on("error", (err) => {
reject(err);
});
fileStream.on("finish", function () {
resolve();
});
});
},
downloadSize: async (url) => {
remote(url, function (err, o) {
console.log(o)
console.log(err)
})
},
getCompatibleAppsList: async () => {
let settings = { method: "Get" };
const response = await fetch("http://kithub.ga/Karl/MiWatchKleaner-APKs/raw/master/compatibleApps.json", settings)
.then(res => res.json())
return response
},
getXiaomiAppsList: async () => {
let settings = { method: "Get" };
const response = await fetch("http://kithub.ga/Karl/MiWatchKleaner/raw/master/data/xiaomiPackageRemovalList.json", settings)
.then(res => res.json())
return response
},
clearApkFolder: async () => {
await shell.rm('-rf', './data/apps/*.apk');
},
log: async (item) => {
logger.info(await Language.get(item, 'en'))
},
print: async (item, colour) => {
Language.setActiveLang(await settings.value("Lang"))
switch (colour) {
case 'green':
console.log(chalk.green(await Language.get(item)))
break;
case 'red':
console.log(chalk.redBright(await Language.get(item)))
break;
case 'whiteBright':
console.log(chalk.whiteBright(await Language.get(item)))
break;
case 'rainbow':
console.log(chalkRainbow(await Language.get(item)))
break;
default:
console.log(chalk.white(await Language.get(item)))
break;
}
},
dualLog: async (item, colour) => {
await module.exports.log(item)
await module.exports.print(item, colour)
}
}

58
lib/files.js Normal file
View File

@ -0,0 +1,58 @@
const fs = require('fs');
const path = require('path');
const tiny = require("@peterpanhihi/tiny");
const getFilesIn = require('get-files-in')
const globalVariables = require('../lib/globalVars');
const Language = require("@shypes/language-translator");
const settings = require("settings-store");
Language.setActiveLang(settings.value("Lang"))
module.exports = {
getCurrentDirectoryBase: () => {
return path.basename(process.cwd());
},
directoryExists: (filePath) => {
return fs.existsSync(filePath);
},
writeIpAddress: (value) => {
const data = {
ipAddress: value
}
try {
fs.writeFileSync('./data/options.json', JSON.stringify(data))
} catch (err) {
console.log(err)
}
},
loadPackageList: () => {
try {
const packageList = JSON.parse(fs.readFileSync('./data/xiaomiPackageRemovalList.json', 'utf8'));
return packageList
} catch (err) {
console.log(err)
}
},
renameLocalApk: async (apkList) => {
return new Promise(function (resolve, reject) {
for (let e of apkList) {
a = tiny(e)
fs.rename(e, a, function (err) {
if (err) console.log('ERROR: ' + err);
});
}
resolve(x / y);
}).catch(err => NaN)
},
getListOfAPk: (path) => {
const result = getFilesIn(path, matchFiletypes = ["apk"], checkSubDirectories = false)
return result
},
getLanguageFiles: () => {
const result = getFilesIn('./lang/', matchFiletypes = ["json"], checkSubDirectories = false)
return result
},
}

7
lib/globalVars.js Normal file
View File

@ -0,0 +1,7 @@
class globalVariables {
localUSB = "";
miWatchIpaddress = "";
usersList=[];
}
module.exports = new globalVariables();

173
lib/inquirer.js Normal file
View File

@ -0,0 +1,173 @@
const inquirer = require("inquirer");
const files = require("./files");
const common = require("./common");
const Language = require("@shypes/language-translator");
const globalVariables = require('../lib/globalVars');
const settings = require("settings-store");
module.exports = {
mainMenu: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "list",
name: "mainMenu",
message: await Language.get('main-menu-question'),
choices: [
'-----------------------',
await Language.get('main-menu-item-1'),
await Language.get('main-menu-item-12'),
await Language.get('main-menu-item-11'),
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'),
await Language.get('main-menu-item-10'),
await Language.get('main-menu-item-9'),
],
filter: function (val) {
return val.toLowerCase();
},
},];
return inquirer.prompt(questions);
},
LanguageSelect: async () => {
langList = files.getLanguageFiles()
langList = langList.map(s => s.slice(5, -5));
const questions = [{
type: "list",
name: "selection",
message: await Language.get('Select Language'),
choices: langList,
filter: function (val) {
return val.toLowerCase();
},
},];
return inquirer.prompt(questions);
},
connectionType: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "list",
name: "connection",
message: await Language.get('connection-type-message'),
choices: [
"USB",
"Wifi"
],
filter: function (val) {
return val.toLowerCase();
},
},];
return inquirer.prompt(questions);
},
connectWifi: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "input",
name: "connectWifi",
message: await Language.get('connect-wifi-message'),
},];
return inquirer.prompt(questions);
},
setDPI: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "input",
name: "setDPI",
message: await Language.get('set-dpi-message'),
},];
return inquirer.prompt(questions);
},
xiaomiAppsList: async () => {
Language.setActiveLang(await settings.value("Lang"))
const packages = await common.getXiaomiAppsList();
let appList = []
packages.forEach(element => {
appList.push(element.name)
});
const questions = [{
type: "checkbox",
name: "appList",
message: await Language.get('restore-app-message'),
choices: appList,
},];
return inquirer.prompt(questions);
},
compatibleApps: async () => {
Language.setActiveLang(await settings.value("Lang"))
const compatibleApps = await common.getCompatibleAppsList()
const appList = []
for (let element of compatibleApps) {
appList.push(element.name)
}
const questions = [{
type: "checkbox",
name: "removeAppsList",
message: await Language.get('install-compatible-apps-message'),
choices: appList,
},];
return inquirer.prompt(questions);
},
installedApps: async (installedApps) => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "checkbox",
name: "removeAppsList",
message: await Language.get('remove-installed-apps-message'),
choices: installedApps,
},];
return inquirer.prompt(questions);
},
restoreAnyApp: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "input",
name: "restoreAnyApp",
message: await Language.get('restore-any-app-message'),
},];
return inquirer.prompt(questions);
},
removeAnyApp: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "input",
name: "removeAnyApp",
message: await Language.get('remove-any-app-message'),
},];
return inquirer.prompt(questions);
},
globalMenu: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "list",
name: "globalSelection",
message: await Language.get('main-menu-item-11'),
choices: [
await Language.get('enable-global-theme'),
await Language.get('disable-global-theme')
],
filter: function (val) {
return val.toLowerCase();
},
},];
return inquirer.prompt(questions);
},
xiaomiMenu: async () => {
Language.setActiveLang(await settings.value("Lang"))
const questions = [{
type: "list",
name: "xiaomiSelection",
message: await Language.get('main-menu-item-12'),
choices: [
await Language.get('main-menu-item-2'),
await Language.get('main-menu-item-3')
],
filter: function (val) {
return val.toLowerCase();
},
},];
return inquirer.prompt(questions);
},
};

0
my_apk/.gitkeep Normal file
View File

1493
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

47
package.json Normal file
View File

@ -0,0 +1,47 @@
{
"name": "miwatchkleaner",
"version": "3.3.1",
"description": "MiWatch Cleaning Tool",
"main": "app.js",
"bin": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"buildRelease": "sh ./buildRelease.sh"
},
"repository": {
"type": "git",
"url": "https://github.com/karl0ss/MiWatchKleaner.git"
},
"author": "Karl Hudgell",
"license": "ISC",
"dependencies": {
"@peterpanhihi/tiny": "^2.0.0",
"@shypes/language-translator": "^2.0.15",
"chalk": "^4.0.0",
"chalk-rainbow": "^1.0.0",
"clear": "^0.1.0",
"clui": "^0.3.6",
"extract-numbers": "^1.0.5",
"figlet": "^1.3.0",
"get-files-in": "^1.2.0",
"inquirer": "^7.1.0",
"node-fetch": "^2.6.0",
"perfect-logger": "^2.0.1",
"pkg": "^4.4.7",
"settings-store": "^1.4.1",
"shell-exec": "^1.0.2",
"shelljs": "^0.8.4"
},
"pkg": {
"scripts": [],
"assets": [
"node_modules/figlet/fonts/Standard.flf",
"data/xiaomiPackageRemovalList.json"
],
"targets": [
"node12-linux-x64",
"node12-macos-x64",
"node12-win-x86"
]
}
}

333
pages/pages.js Normal file
View File

@ -0,0 +1,333 @@
const chalk = require('chalk');
const common = require('../lib/common');
const inquirer = require('../lib/inquirer');
const files = require('../lib/files')
const logger = require('perfect-logger');
const Language = require("@shypes/language-translator");
const globalVariables = require('../lib/globalVars');
const adb = require('../lib/adb');
const settings = require("settings-store");
logger.info(process.platform + " detected")
if (process.platform === 'win32' || process.platform === 'win64') {
adbRun = 'adb'
} else {
adbRun = './adb'
}
logger.initialize('RunTIme', {
logLevelFile: 0, // Log level for file
logLevelConsole: -1, // Log level for STDOUT/STDERR
logDirectory: 'data/', // Log directory
});
module.exports = {
oneClick: async () => {
common.log('main-menu-item-1')
common.header('main-menu-item-1')
common.print('remove-xiaomi-apps', 'whiteBright')
const removalPackagesList = await common.getXiaomiAppsList()
for (let package of removalPackagesList) {
if (package.klean === "X" || package.global === "X") {
await adb.removeXiaomiApk(package.name)
}
}
common.print('removal-complete', 'green')
await common.pause(2000)
common.log('removal-complete')
common.log('compatible-apps')
await common.clearApkFolder()
const compatibleApps = await common.getCompatibleAppsList()
console.log(chalk.whiteBright('----------'))
common.print('downloading-compatible-apps', 'whiteBright')
for (const package of compatibleApps) {
if (package.Klean === "X") {
try {
newPacakgeName = package.name.replace(/\s/g, '');
await common.downloadFile(package.url, './data/apps/' + newPacakgeName + '.apk')
logger.info(await Language.get('downloading-latest', 'en') + ' ' + package.name + ' ' + chalk.green(await Language.get('complete', 'en')))
console.log(await Language.get('downloading-latest') + ' ' + package.name + ' ' + await Language.get('complete'))
} catch (error) {
logger.info(await Language.get('downloading-latest', 'en') + ' ' + package.name + ' ' + chalk.red(await Language.get('failed', 'en')))
console.log(await Language.get('downloading-latest') + ' ' + package.name + ' ' + await Language.get('failed'))
}
}
}
const apkList = await files.getListOfAPk('./data/apps')
console.log(chalk.whiteBright('----------'))
common.print('installing-apps', 'whiteBright')
for (let element of apkList) {
await adb.installApk(element)
}
common.dualLog('compatible-apps-installed', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
removeXiaomiApps: async () => {
common.header('main-menu-item-2')
common.log('main-menu-item-2')
const value = await inquirer.xiaomiAppsList();
for (let package of value.appList) {
await adb.removeXiaomiApk(package)
}
common.dualLog('removal-complete', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
restoreXiaomiApps: async () => {
common.header('main-menu-item-3')
common.log('main-menu-item-3')
const value = await inquirer.xiaomiAppsList();
for (let package of value.appList) {
await adb.restoreXiaomiApk(package)
}
common.dualLog('restoring-apps-complete', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
installCompatibleApps: async () => {
common.header('main-menu-item-4')
common.log('main-menu-item-4')
const compatibleApps = await common.getCompatibleAppsList()
const value = await inquirer.compatibleApps();
await common.clearApkFolder()
for (let element of value.removeAppsList) {
for (let element2 of compatibleApps) {
if (element === element2.name) {
newName = element.replace(/\s/g, '');
await common.downloadFile(element2.url, './data/apps/' + newName + '.apk')
}
}
}
const apkList = await files.getListOfAPk('./data/apps')
for (let package of apkList) {
common.dualLog('installing', 'whiteBright')
await adb.installApk(package)
}
common.dualLog('compatible-apps-installed', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
restoreAnyApp: async () => {
common.header('main-menu-item-5')
common.log('main-menu-item-5')
const value = await inquirer.restoreAnyApp();
await adb.restoreAnyApk(value)
common.dualLog('restoring-apps-complete', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
removeAnyApp: async () => {
common.header('main-menu-item-6')
common.log('main-menu-item-6')
const value = await inquirer.removeAnyApp();
await adb.restoreAnyApk(value)
common.dualLog('removing-apps-complete', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
batchInstallApps: async () => {
common.header('main-menu-item-7')
common.log('main-menu-item-7')
let apkList = await files.getListOfAPk('./my_apk/')
await files.renameLocalApk(apkList)
apkList = await files.getListOfAPk('./my_apk/')
for (let element of apkList) {
console.log(await Language.get('installing') + ' ' + element)
logger.info(await Language.get('installing') + ' ' + element)
await adb.installApk(element)
}
common.dualLog('batch-install-apps-complete', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
batchRemoveInstalledApps: async () => {
common.header('main-menu-item-8')
common.log('main-menu-item-8')
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)
}
common.dualLog('remove-selected-user-apps', 'green')
await common.pause(2000)
module.exports.mainMenu()
},
changeWatchDPI: async () => {
common.header('main-menu-item-10')
common.log('main-menu-item-10')
const defaultDPI = 320
const currentDPI = await adb.getCurrentDPI()
console.log(chalk.white(await Language.get('default-dpi-is') + ' ' + defaultDPI))
await common.pause(1000)
console.log(chalk.whiteBright(await Language.get('current-dpi-is') + ' ' + currentDPI))
if (currentDPI.includes('error')) {
common.dualLog('failed', 'red')
await common.pause(2000)
module.exports.mainMenu()
} else {
await common.pause(1000)
const v = await inquirer.setDPI()
const setDPIValue = v.setDPI
const t = await adb.setDPI(setDPIValue)
common.dualLog('complete', 'green')
await common.pause(2000)
module.exports.mainMenu()
}
},
connectWatch: async () => {
common.header('connect-to-watch')
common.log('connect-to-watch')
const value = await inquirer.connectionType()
await common.pause(1000)
connected = await adb.watchConnection(value)
if (connected != true) {
module.exports.connectWatch()
} else {
module.exports.mainMenu()
}
},
selectLanguage: async () => {
if (await settings.value("Lang") != undefined) {
common.log(await settings.value("Lang") + " Selected")
module.exports.connectWatch()
} else {
common.header('Select Language')
common.log('Select Language')
const v = await inquirer.LanguageSelect()
settings.setValue("Lang", v.selection)
}
},
globalTheme: async () => {
const v = await inquirer.globalMenu()
console.log(v)
if (v.globalSelection === "enable global theme") {
common.log('main-menu-item-11')
common.header('main-menu-item-11')
common.print('enable-global-theme', 'whiteBright')
const removalPackagesList = await common.getXiaomiAppsList()
for (let package of removalPackagesList) {
if (package.global === "X") {
await adb.removeXiaomiApk(package.name)
}
}
common.print('removal-complete', 'green')
await common.pause(2000)
// common.log('removal-complete')
// common.log('compatible-apps')
module.exports.mainMenu()
} else {
common.log('main-menu-item-11')
common.header('main-menu-item-11')
common.print('disable-global-theme', 'whiteBright')
const removalPackagesList = await common.getXiaomiAppsList()
for (let package of removalPackagesList) {
if (package.global === "X") {
await adb.restoreXiaomiApk(package.name)
}
}
// common.print('removal-complete', 'green')
await common.pause(2000)
// common.log('removal-complete')
// common.log('compatible-apps')
module.exports.mainMenu()
}
},
xiaomiApps: async () => {
const v = await inquirer.xiaomiMenu()
console.log(v)
n = await Language.get('main-menu-item-2')
if (v.xiaomiSelection === n.toLowerCase()) {
module.exports.removeXiaomiApps()
} else {
module.exports.restoreXiaomiApps()
}
},
mainMenu: async () => {
common.header('Main Menu')
const mainMenuSelection = await inquirer.mainMenu();
menu_1 = await Language.get('main-menu-item-1')
menu_12 = await Language.get('main-menu-item-12')
menu_4 = await Language.get('main-menu-item-4')
menu_5 = await Language.get('main-menu-item-5')
menu_6 = await Language.get('main-menu-item-6')
menu_7 = await Language.get('main-menu-item-7')
menu_8 = await Language.get('main-menu-item-8')
menu_9 = await Language.get('main-menu-item-9')
menu_10 = await Language.get('main-menu-item-10')
menu_11 = await Language.get('main-menu-item-11')
switch (mainMenuSelection.mainMenu) {
case menu_1.toLowerCase():
module.exports.oneClick()
break;
case menu_12.toLowerCase():
module.exports.xiaomiApps()
break;
// case menu_3.toLowerCase():
// module.exports.restoreXiaomiApps()
// break;
case menu_4.toLowerCase():
module.exports.installCompatibleApps()
break;
case menu_5.toLowerCase():
module.exports.restoreAnyApp()
break;
case menu_6.toLowerCase():
module.exports.removeAnyApp()
break;
case menu_7.toLowerCase():
module.exports.batchInstallApps()
break;
case menu_8.toLowerCase():
module.exports.batchRemoveInstalledApps()
break;
case '-----------------------':
module.exports.mainMenu()
break;
case menu_10.toLowerCase():
module.exports.changeWatchDPI()
break;
case menu_9.toLowerCase():
process.kill(process.pid)
break;
case menu_11.toLowerCase():
module.exports.globalTheme();
break;
default:
// code block
}
}
};