GithubHelp home page GithubHelp logo

bro2020 / adb-xiaomi Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 55.66 MB

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

Shell 100.00%
linux macos xiaomi bash script android adb poco redmi

adb-xiaomi's Introduction

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

adb-xiaomi's People

Contributors

bro2020 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.