Інтерактивний bash скрипт, який працює в операційних системах Linux та MacOS. Дозволяє підключитися до смартфонів через Wi-Fi adb інтерфейс, та видаляти програми, включаючи системні.
Зрозуміло, що деінсталяція відбувається тільки для користувача 0
операційної системи android, і не звільняє постійну пам'ять пристрою,
але цього достатньо, щоб програми не запускалися у фоні, та не використовували ресурс ОЗУ та батареї.
За замовчуванням кольори оформлення терміналу підібрані під темний фоно. Для світлого фону, напочатку скрипта потрібно змінити значення змінної. У коді є закоментована підказка.
Є можливість додавати іншомовну локалізацію, для цього створено файл l10n
. По прикладу локалізації uk можна додати інші, наприклад en. Потім рекурсивно замінити всі входження $uk в скриптах.
Скрипт використовує вільні утиліти з SDK Platform Tools. Для їх використання потрібно попередньо з'єднати смартфон із adb клієнтом, з цього проекту. Для цього в налаштуваннях телефону потрібно активувати режим розробника.
У смартфонах від компанії Xiaomi/Redmi/Poco потрібно зайти в додаток "Налаштування", далі пройти в пункт "Про телефон" і натиснути близько 10 разів швидкими натисканнями на "Версія MIUI. ." Після цього з'явиться спливаюче повідомлення про успішну активацію режиму розробника.
Перед видаленням скрипт бекапить apk файли додатків до директорії BACKUP_APP_n
. Це дозволяє в подальшому відновити їх. У смартфоні цей функціонал вмикається окремим перемикачем. У налаштуваннях у розділі "Для розробників" повзунок "Установка через USB" необхідно встановити в УВІМКНЕНЕ положення. У телефонах Xiaomi/Redmi/Poco для цього може знадобитися авторизуватися в Mi Account
.
В інтерфейсі скрипта є додаткові функції. Можна відобразити список усіх програм телефону, лише системних, лише встановлених, а також список видалених системних програм.
Є можливість відфільтрувати відображення за потрібним словом або символом. Це зручно для пошуку серед великої кількості програм.
У проекті можна використовувати списки програм (LIST1...n
), які заповнюються за своїми потребами. Це зручно для видалення набору програм. Додатки зі списку LIST1 при видаленні бекапляться до директорії BACKUP_APP_1 і т.д. Файли списків мають простий синтаксис. Перші два рядки файлу зарезервовані під опис списку. Далі в кожному новому рядку вписуються імена програм. До них також можна писати коментарі, але тільки через пробіл після імен додатків. У файлі не повинно бути порожніх рядків і рядків, що починаються не з імен додатків. Приклад можна переглянути у списку за промовчанням LIST1.
У процесі роботи скрипта є можливість в інтерактивному режимі відображати вміст списків, створювати нові, додавати імена програм в існуючі списки, видаляти імена програм з вибраних списків, очищати списки повністю.
Також можна вводити вручну імена програм, які потрібно видалити або відновити.
У проекті знаходиться два скрипти: головний - run-me.sh
та скрипт підключення - connect.sh
. Першим можна виконати усі операції. Другий лише для з'єднання з телефоном через Wi-Fi.
Для запуску достатньо виконати команду:
./run-me.sh
Після чого скрипт перевірить наявність підключеного телефону, і в разі успіху попросить вибрати режим роботи, потім відобразить головне меню. Для взаємодії зі скриптом необхідно вводити потрібні латинські знаки у відповідні поля. Якщо не буде виявлено жодного пристрою, скрипт запропонує запустити підключення до смартфону за допомогою другого скрипта. У ньому також потрібно, відповідаючи на всі запитання та вводячи інформацію з телефону, дочекатися підключення. Після цього основний скрипт автоматично продовжить роботу.
Є можливість не використати інтерактивні можливості. Можна запускати скрипти, передаючи їм параметри прямо з терміналу, використовуючи ключі запуску. Для отримання довідки використовується ключ -h або --help:
./run-me.sh -h
Але для того, щоб працювати в такому режимі, потрібно попередньо з'єднатися з телефоном. Це можна зробити окремо, запустивши виконуваний файл connect.sh. Він попросить ввести IP-адресу, TCP-порти, і код із запущених adb сервісів, з екрану смартфона, після чого, у разі успіху, завершить свою роботу. Для підключення необхідно виконати команду:
./connect.sh
слідувати інструкціям, і дочекатися успішного підключення, інакше скрипт запропонує ввести дані заново. Цей скрипт також можна виконувати передаючи йому параметри прямо з терміналу. Для отримання довідки потрібно запустити його з ключем -h або --help:
./connect.sh --help
За допомогою головного скрипта можна вибірково встановлювати програми. Їх apk файли потрібно розмістити в директорії BACKUP_APP_0, і запустити відновлення з параметром 0. Як імена програм у лапках через пробіл вказати назви файлів (без .apk в кінці). Для файлів com.miui.app1.apk та com.miui.app2.apk:
./run-me.sh -i 0 'com.miui.app1 com.miui.app2'
У разі успішної установки, apk файли з директорії BACKUP_APP_0 будуть видалені.
Під час підключення до пристрою, видалення, встановлення або відновлення програм пишуться прості логи worker.log і session.log. Через особливості adb клієнта, у файлі session.log можуть зустрічатися записи про помилку підключення, за умови успішного підключення, виправити це можуть тільки розробники adb утиліт.
У майбутньому планувалося створення скрипта й у операційній системі Windows. Але через великі відмінності в синтаксисі, і брак мотивації, розбиратися немає бажання.