Skip to content

Скрипт видалення, відновлення та встановлення android додатків через adb

Notifications You must be signed in to change notification settings

bro2020/adb-xiaomi

Repository files navigation

adb-xiaomi

Інтерактивний 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. Але через великі відмінності в синтаксисі, і брак мотивації, розбиратися немає бажання.

About

Скрипт видалення, відновлення та встановлення android додатків через adb

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages