Замена системных файлов Android с помощью adb. Скачиваем и устанавливаем ADB, драйверы и Fastboot Установка приложений через ADB

Главная / Обзоры 

Для linux. [Это пакет инструментов для разработчиков под Android]

  • Распакуйте директорию /tools на рабочий стол. [Возможно для этого понадобится установить архиватор 7zip. Он есть в репозиториях Ubuntu.]
  • Создайте директорию "bin" и поместите туда программу ADB:
  • mkdir -p ~/bin
    mv ~/Desktop/tools/adb ~/bin/

    2. Сбор необходимой информации

    • На вашем телефоне перейдите Насторйки=>Приложения=>Разработка (Settings=>Applications=>Development) и включите опцию Отладка по USB(USB debugging)
    • Подключите ваш телефон к компьютеру. [*В режиме телефона, не в режиме USB накопителя]
    • В терминале на компьютере выполните "lsusb " без кавычек
    • Одна из строк в результате должна быть похожа на что-то вроде (в зависимости от производителя вашего телефона):
    • Запишите или запомните первые 4 символа после ID. Это идентификатор производителя (Vendor ID, в нашем примере 04e8). Номера Bus и Device будут разными всякий раз при переподключении телефона к компьютеру или после его перезагрузки.
    • В терминале выполните "id " без кавычек, эта команда покажет имя и группу пользователя под которым вы вошли в систему (если вы не уверены, что знаете их точно)

    3. Установка првила Udev для работы ADB

    • Откройти любимый текстовый редатктор с правами root. Например, в терминале Kubuntu наберите "kdesudo kate ".
    • Вставьте следующую строку без переносов в редактор и измените как указано ниже:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="<идентификатор производителя Vendor ID>", OWNER="<имя пользователя>" GROUP="<имя группы>"

    Для нашего примера "< идентификатор производителя Vendor ID > " заменяем "04e8". Не трогаете кавычки но заменяете < > и все, что в нутри.

    • Сохраните файл по этому пути /etc/udev/rules.d/51-android.rules
    • И ещё по этому пути /lib/udev/rules.d/51-android.rules

    [Примечание: Вообще вам нужен первый из них, но он может отличаться в разных системах]

    • В терминале, наберите ls /etc/udev/rules.d/51-android.rules дабы убедиться, что файл на месте, аналогично для второго пути.
    • Перезапустите udev или перезагрузите компьютер чтобы изменения вступили в силу

    [Примечание: в некоторых руководствах при настройке првил udev рекомендуется устанавливать права доступа 0666 которые открывают доступ к файлу всем. Здесь мы назначаем доступ одному пользователю, которому это нужно, так будет безопаснее. Приоритет правила установили 51, это не принципиально, можно назначить и другой.]

    4. Проверяем что получилось

    • В терминале наберите "lsusb ", как делали это ранее
    • Одна из строк должна быть похожа на:

    Bus 001 Device 002: ID 04e8:681c Samsung Electronics Co., Ltd

    • В данный момент нас интересуют номера после Bus и Device, которые, возможно, изменились если вы перезагрузили компьютер.
    • В терминале выполните "ls -l /dev/bus/usb/001/002 " ВНИМАНИЕ 001/002 это Bus/Device из примера выше, замените Bus/Device на цифры из вашего вывода команды "lsusb ".
    • Если в результате команды имя пользователя и группа отличаются от "root root" можно продолжать дальше. Если это не так, перечитайте и повторите шаги 2 и 3.
    • *Убедитесь что ваш телефон все еще в режиме Отладка по USB . Должен быть красный треугольник с восклицательным знаком в строке состояния вашего телефона (зависит от темы и версии Android).
    • В терминале наберите "sudo adb devices " [*sudo понадобится только при первом запуске adb.]

    Вы должны увидеть свой телефон в списке.

    Замечание. Предварительное рутование может и не потребоваться при переходе непосредственно на нестандартные прошивки, такие как: CM7 или MIUI через Odin/Heimdall, в любом случае вам потребуется ADB (см. пункты 1-4) Samsung Fascinate Root Package
    Эти файлы необходимы, хотя драйвера не нужны для Linux.

    6. Распаковка 4-х файлов в ~/bin
    Эту директорию мы создали в шаге 1, там уже должен быть файл adb. Вы можете распаковать куда-нибудь загруженный архив и поместить необходимые файлы в ~/bin (это su, rage.bin, busybox, Superuser.apk).

    7. Переход в ~/bin
    В терминале наберите "cd ~/bin ", а затем "ls ", должно быть 5 файлов.

    8. Перенос файлов на телефон и запуск root:
    Выполните каждую из следующих строк по отдельности в терминале, скопируйте и встаьте (жмите Enter после вставки каждой строки):

    ./adb push su /sdcard/su
    ./adb push rage.bin /data/local/tmp/rage.bin
    ./adb push busybox /sdcard/busybox
    ./adb shell

    [Примечание: символ приглашения ввода строки должен измениться на

    $ , это означает, что мы удаленно подключились к телефону]

    cd /data/local/tmp

    chmod 0755 rage.bin

    ./rage.bin

    [Примечание: Эта комманда определит ограничение процесса, найдет номер процесса adb, а затем запускает процессы до исчерпания этого ограничения. Вы быстро вернетесь в строк сприглашением $, но ЭТО НЕ ВСЕ. ЖДИТЕ пока не выведется что-то похожее на "[+] Forked 3705 childs." и вы вернетесь в свою домашнюю директорию.]

    9. Зафиксируем права root

    • В терминале вернитесь в директорию ~/bin введите "./adb shell "

      На этот раз вы должны получить приглашение # вместо $ . Это означает, что теперь вы удаленно зашли на телефон как root.

    • Скопируйте и вставьте каждую строку по отдельности (жмите Enter после каждой строки):

    mount -t rfs -o remount,rw /dev/block/stl9 /system
    cd /system/xbin
    cat /sdcard/su > su
    cat /sdcard/busybox > busybox
    chmod 4755 su
    chmod 4755 busybox
    exit
    ./adb install Superuser.apk

    10. Убедимся что получили права root

    • Перезапускаем телефон
    • В терминале выполняем "~/bin/adb shell "
      Вы должны получить приглашение $
      Выполните "su "
      На телефоне должно появиться всплывающее сообщение где запрашивается подтверждение использования прав суперпользователя. После того, как вы разрешите, приглашение должно измениться на #

    Это сообщение будет появляться всякий раз, когда вы устонавливаете и запускаете программу требующую привелегий пользователя root.
    Теперь запустите приложение SuperUser, оно должно показать список программ имеющих привелегии root пользователя.

    Способ может быть полезен в том случае, если «уже ничего не помогает», доступа к Root Explorer нет или телефон вообще не может загрузиться. В моем случае, пришлось в «боевом» режиме восстанавливать удалённый по глупости SystemUI.apk. При этом на телефоне что-то делать можно было только в доли секунды между нажатием кнопки «ОК» на предыдущем окне с ошибкой и появлением следующего такого же окна. Перепрошиваться не хотелось, потому пришлось срочно осваивать adb.

    Итак, для того, чтобы подключить свой гуглофон к adb, вам нужно:

    1) Android SDK для Вашей системы (здесь - на примере GNU/Linux Ubuntu)
    2) Android SDK Platform-tools (устанавливаются выбором соответствующей галочки в Android SDK)
    3) В «Параметры - Программы - Отладка» должна стоять галочка на «Отладка по USB»
    4) Подключить телефон к USB
    5) В моём случае пришлось сделать еще две вещи:
    указать ID производителя телефона idVendor (его можно найти ):
    #echo SUBSYSTEM=="usb", SYSFS{idVendor}==" 0bb4 ", MODE="0666" > /etc/udev/rules.d/51-android.rules
    #chmod a+r /etc/udev/rules.d/51-android.rules
    где 0bb4 заменяем на код своего производителя, после чего перезапустить adb
    #adb kill-server
    #adb start-server

    Итак, все установлено и подключено, вы добавили путь к platform-tools в переменную $PATH своей операционной системы или перешли в эту папку с помощью команды cd. По команде «adb devices» должен выдавать некий номер и справа от него «device». Это значит, что adb видит телефон и может с ним работать. Если вместо «device» что-то другое или вообще «List of devices attached» - проблема где-то на 4-5 шаге.

    Далее вам нужно поместить системный файл, который вы хотите установить, в папку platform-tools. То есть запасная копия системного файла должна быть приготовлена заранее или скопирована с аналогичного телефона.

    После этого можно закинуть системный файл в /system/app такой последовательностью команд:

    $adb push YourFile.apk /data/Yourfile.apk
    $adb remount
    $adb shell
    $su
    #cp -f /data/YourFile.apk /system/app/Yourfile.apk
    #chmod 644 /system/app/YourFile.apk
    #exit
    $exit
    $adb reboot
    где YourFile.apk - имя вашего системного файла, причем регистр букв имеет значение.
    После последней команды Ваш телефон должен перезагрузиться уже с новыми файлами.
    Если на команду «adb remount» Вы получаете ответ «remount failed: Operation not permitted», то попробуйте вместо нее после «su» ввести "#mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system".

    P.S.: В линуксе, если platform-tools не добавлена в $PATH, вместо «adb» нужно писать "./adb".

    В этой статье команды, которые я запускал от имени обычного пользователя обозначены символом $ в начале строки, от имени root - символом #.

    Многие из нас уже знакомы с ADB (Android Debug Bridge), поскольку, будучи владельцем Android устройства, довольно часто приходится выполнять такие простые действия, как adb push и pull , или adb reboot и т.д. Но для многих начинающих пользователей один только вид командной строки уже пугает, и кажется запредельно возможным. Хотя на самом деле всё довольно просто, опытные пользователи не дадут мне соврать, а самая большая сложность заключается в том, чтобы запомнить все эти команды, хотя это тоже не обязательно делать, поскольку Интернет всегда под рукой и найти нужную команду не составляет труда.

    Android Debug Bridge, который является частью эмулятора Android SDK, позволяет осуществлять связь между Вашим компьютером и подключенным к нему Android устройством, кстати если нужен какой то софт, то программы на ноутбук скачать бесплатно можно здесь. Что я могу делать с помощью ADB? Возможности у него довольно широкие, например, самые популярные действия: копировать файлы с Android устройства на компьютер, заливать файлы с компьютера на Android, выполнять множество Linux команд, получать отчеты об ошибках и т.д.

    Поэтому, если Вы новичок в этом деле и хотите узнать немного больше об ADB, чем просто что это такое, тогда предлагаю Вам ознакомится с моим небольшим базовым пособием по изучению ADB.

    Что понадобится

    1. Android Debug Bridge (ADB) для Windows 32bit - скачать

    2. Android Debug Bridge (ADB) для Windows 64bit - скачать

    3. Компьютер с установленной Windows ОС.

    Теперь переходим к активной фазе:

    1. Скачиваем нужный zip архив и извлекаем его куда Вам будет угодно, например, диск С.

    2. Теперь переходим в директорию C:/adb/sdk/platform-tools. Здесь вы найдете набор файлов, как показано на картинке ниже.

    3. Зажимаем кнопку Shift + правый клик мышью и запускаем командную строку Windows с текущей директории.

    4. Вводим команду adb start-server .

    5. Чтобы убедится, что Ваше устройство правильно подключено и было распознано компьютером, введите команду: adb devices . Если всё хорошо, вы увидите что то похоже на это:

    Теперь, когда Ваше устройство подключено и всё работает, давайте немного с ним поиграем.

    Читаем LOGCAT через ADB

    Самый простой способ, это выполнить команду: adb logcat . Как результат, на экране появится всё содержимое лог файла устройства. Чтобы получить logcat в отдельном файле выполните: adb logcat > logcat.txt .

    Отчет об ошибках (BUGREPORT)

    Можно выполнить команду: adb bugreport , но вы получите уведомление, что сформировавшийся отчет невозможно будет прочитать, поэтому лучше воспользоваться: adb bugreport >result.txt .

    ADB совместно с ROOT правами доступа

    Для работы из-под ADB с полными правами доступа, нужно рутить девайс. Если девайс уже рученый, тогда выполняем команду: adb root и видим то, что показано на картинке ниже (перезагрузка ADB с root правами).

    Установка приложений через ADB

    Чтобы установить приложение, убедитесь, чтобы в названии apk файла не было пробелов и надо точно знать правильный путь к нему. Ну а дальше выполняем команду: adb install + название файла инсталяции. В своем примере я установил игру papertoss, поэтому если всё пройдет успешно, вы получите на экране такую картинку:

    Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/Android-Root..jpg 500w, http://androidkak.ru/wp-content/uploads/2015/08/Android-Root-300x127.jpg 300w" sizes="(max-width: 500px) 100vw, 500px">
    Если вы открыли эту статью, то вы наверняка уже имеете хоть какое-то представление о правах суперпользователя. Но на тот редкий случай, если вы являетесь обычным пользователем Android и открыли статью из праздного интереса – небольшой ликбез.

    Права суперпользователя, они же рут-права (от английского “root”, что значит “корень”) – это возможность записывать, изменять и удалять информацию, находящуюся в системном (или корневом) разделе файловой системы. Данное понятие схоже с правами администратора на Windows и применяется на операционных системах, основанных на UNIX (Linux, Android, Tizen и т.д.)

    Права root можно получить практически на всех Android-устройствах и мы обязательно пройдемся по самым популярным способам их получения, но сначала давайте ответим на два очень важных вопроса: безопасно ли то, что мы с вами собираемся сейчас сделать, а также стоит ли оно того.

    Какие последствия влечет за собой получение рут-прав

    Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/vnimanie.jpg" alt="обратите внимание" width="145" height="121" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/vnimanie..jpg 300w" sizes="(max-width: 145px) 100vw, 145px"> Прежде всего, ответьте на вопрос – читали ли вы гарантийное соглашение, которое прилагалось к вашему телефону? Если читали – то вы знаете, что получение рут-прав – это серая зона и останется ли ваша гарантия при вас по завершении процесса, зависит только от политики производителя.
    Далее, запомните одну вещь – суперпользователь даёт вам полный доступ. ПОЛНЫЙ. То есть если вам вдруг придет в голову удалить важные системные файлы – вас никто не остановит. Так что внимательно следите, какие программы получают от вас данные права, а также консультируйтесь с другими, более опытными пользователями Android перед тем, как делать какую-нибудь глупость.

    Какие преимущества можно получить при наличии root-прав

    Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-vigody.jpg" alt="Выгоды получения прав" width="159" height="50" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-vigody..jpg 300w" sizes="(max-width: 159px) 100vw, 159px"> Список того, что можно сделать при наличии root-прав просто огромен. Только взгляните на наиболее популярные причины получения прав суперпользователя!

    ВАЖНО: В скобках указана программа, которая позволяет выполнить данное действие.

    1. Удаление предустановленных программ а-ля Facebook или Twitter из системного раздела (Titanium Backup);
    2. Перенос кеша приложений с внутренней карты памяти на внешнюю (FolderMount);
    3. Перенос раздела с приложениями на карту памяти (Xposed App2SD);
    4. Глобальная модификация интерфейса с возможностью тонкой настройки (практически все модули Xposed);
    5. Отключение рекламы во всех приложениях (Adaway);
    6. Взлом покупок в приложениях с PlayMarket (Freedom);
    7. Отключение проверки лицензии в невзламываемых приложениях, а также их взлом (Lucky Patcher).

    Читайте также: Fastboot Mode на Андроиде: установка, настройка и выход

    И это ещё не всё! Фактически, имея root-доступ к вашему телефону, вы можете сделать из него практически всё что угодно. И если ваш запал ещё не остыл – давайте перейдём к собственно процессу получения рут-прав.

    Инструкция

    data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/Android-s-root-pravami.jpg" alt="Рутированный Андроид" width="165" height="91" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/Android-s-root-pravami..jpg 300w" sizes="(max-width: 165px) 100vw, 165px">
    К несчастью, просто так включить root-доступ на Android нельзя – производители постарались обезопасить свои творения от кривых рук пользователей и это, на самом деле, правильно – иначе число обращений в сервисные центры выросло бы в разы. Но это не значит, что получить рут-права нельзя совсем. Более того, для большинства телефонов эта процедура является крайне будничной и занимает всего несколько минут.

    Существует множество способов получения root-прав и как и в наших других инструкциях, мы пойдём от простого к сложному.

    1. С самого устройства

    Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/google-play-logo-274x300.png" alt="google play market" width="92" height="100" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/google-play-logo-274x300..png 405w" sizes="(max-width: 92px) 100vw, 92px"> Несмотря на то что многие производители максимально закрывают доступ к своим смартфонам, хакеры со всего мира время от времени находят лазейки, которые позволяют получить права всего одним нажатием на экран. А другие производители просто доверяют своим пользователям и даже публикуют алгоритмы обхода своей защиты. Именно на таком принципе и основаны различные автоматические получатели root-прав, наиболее известным из которых является KingRoot.

    Всё, что требуется для получения root-прав на устройстве с помощью KingRoot – это нажать одну кнопку. Из недостатков KingRoot – не самый привычный старым пользователям Android менеджер прав. Вместо привычного SuperSU, KingRoot использует собственную программу, которая, впрочем, не особо отличается от SuperSU в вопросах функциональности.

    Помимо KingRoot, популярностью пользуется программа Framaroot, а также многочисленные другие приложения для Андроид-устройств, например, VRoot,

    2. С помощью ПК и специальных программ

    Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-i-pk-300x258.jpg" alt="Подключение андроида к ПК" width="150" height="129" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-i-pk-300x258..jpg 473w" sizes="(max-width: 150px) 100vw, 150px"> Если передать инструкции для разблокировки изнутри Android-системы нельзя, это ещё не значит, что этого нельзя сделать совсем. По крайней мере, согласно этому принципу оперируют такие программы, как SuperOneClick, Kingo и многие другие. В качестве основы своей работы они используют USB-соединение Андроид-смартфона и ПК, через которое и подаются команды.

    Читайте также: Как пользоваться смартфоном или планшетом на Андроиде новичку

    Для того чтобы получить возможность так делать, вам нужно включить в настройках вашего Android-смартфона опцию “Отладка по USB”. Находится она в скрытом разделе “Для разработчиков”, а чтобы открыть этот раздел (если он закрыт), зайдите в раздел “О планшете” и десять-пятнадцать раз нажмите на пункт “Версия сборки”.

    После того как вы её включили просто подключите ваш Андроид-смартфон к ПК (в режиме Mass Storage, естественно) и запустите выбранную вами программу, после чего следуйте инструкциям по работе с ней. О том, какую именно программу выбрать и как именно ею пользоваться, вам придётся думать самостоятельно – число Android-устройств слишком велико, чтобы можно было с уверенностью сказать, какие именно из них работают с одной программой, а какие – с другой.

    3. С помощью ПК и ADB-терминала

    data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-pc-adb-300x258.jpg" alt="Соединение телефона и компьютера по adb-протоколу" width="150" height="129" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-pc-adb-300x258..jpg 473w" sizes="(max-width: 150px) 100vw, 150px"> Если производитель вашего смартфона очень любит свою паранойю и при этом достаточно успешен, чтобы позволить себе нанять много талантливых программистов для мало кому нужного дела (особенно этим грешит Sony) – получить рут-права с помощью KingRoot или Kingo не выйдет. Точно так же, как не выйдет и получить root на устройствах с нестандартной начинкой (скажем на линейке Asus Zenfone или китайских Андроид-планшетах построенных на Intel Atom). В этом случае придётся воспользоваться помощью компьютера и adb-интерфейса.

    Для тех, кто не знает, что такое adb, отвечаем. ADB – это специальный протокол, который позволяет вашему Андроид-устройству получать инструкции с компьютера по USB-кабелю. Благодаря тому, что ADB является частью самой системы Android, такие команды в большинстве случаев имеют более высокий приоритет, чем защитные решения производителя телефона.

    Для нормальной работы ADB с вашим телефоном вам понадобится как минимум:

    • Компьютер с операционной системой Windows 7 (более новые ОС могут работать нестабильно или вообще не работать с нужными драйверами);
    • Набор adb-драйверов для вашего устройства (обычно выдаётся производителем);
    • USB-кабель;
    • Собственно, смартфон с включённой в настройках опцией “Отладка по USB”;
    • Распакованный в папку “X://ADB”, где X – (желательно) несистемный диск, архив с ADB-терминалом.

    В сети легко найти как получить рут доступ для почти любого устройства на Android. Программы для этого и методики отличаются, но вариант всегда есть. Большинство, получив рут, даже не задумываются о том, как он был получен. Я не смогу рассказать про все способы и как они работают. Но я смогу рассказать про одну интересную вещь, которая связана с получение root доступа.

    Я предполагаю, что читатели хотя бы поверхностно знаю об утилите для Android - ADB . Если кто-то еще не слышал, можете легко поиском найти что это такое. Это утилита для отладки устройств. С её помощью можно получить доступ к командной строке (shell ) устройства на Android , передавать и принимать файлы и делать много интересных вещей. В большинстве скриптов для получения рута или всяких модов для вашего устройства так или иначе используется ADB.

    У ADB есть команда root . Она должна перевести режим работы в root доступ. Казалось бы так можно элементарно получить рут на любом устройстве. Но работает она не всегда. Часто, даже на устройстве с уже полученными root правами при попытке выполнить "adb root" можно получить следующую ошибку:

    adb cannot run as root in production builds

    Что значит, что ADB не будет запускаться из-под root"а в продакшен (финальном) билде (речь о прошивке). Если у вас есть рут, вы можете и без этого зайти в шелл (adb shell ), и уже там получить root права, набрав su . При этом adb root упорно не будет работать, сетуя на продакшен билд.

    Сделано это конечно же специально , чтобы не дать получить root на реальных устройствах для конечных пользователей. С другой стороны некоторые прошивки без проблем дают выполнить эту команду или даже скажут, что ADB уже работает от root"а, если в них это разрешено.

    Раз работает по разному в разных прошивках , догадливый читатель поймет, что это может регулироваться какой-то настройкой . И если эту настройку сменить, то можно будет получить root просто через adb root. Конечно же так и есть. Но конечно же эта настройка храниться в "недрах" прошивки и просто так её поменять не дадут. Во всяком случае в современных прошивках без наличия root прав заранее точно не получится "на лету".

    Настройки эти являются обычными свойствами (prop) , навроде тех, что хранятся в build.prop . Называются ro.debuggable и ro.secure . Только хранятся они в /default.prop . Т.е. в отличии от build.prop , которых хранится в /system , эти хранятся прямо в корне . Проблема в том, что даже если при наличии root прав отредактировать этот файл, то изменения не вступят в силу, а после перезагрузки содержимое файла вернется назад .

    Дело в том, что default.prop , как и вся корневая файловая система в Android не является обычной. Это специально подготовленный образ ramdisk . Т.е. он загружается из прошивки в память (ОЗУ) и все изменения происходят только в памяти . Следовательно после перезагрузки все изменения теряются . Для их редактирования нужно снять образ раздела BOOT , распаковать его, достать оттуда образ ramdisk"а (initramfs ) и отредактировать в нём default.prop. Далее проделать всё в обратном порядке. Но как записать данные назад, если нет доступа? Хорошо, если root у нас уже есть и мы просто хотим напрямую разрешить adb root по каким-то причинам. А если root еще нет? Получается проблема - чтобы получить root, нужно иметь root.

    Чтобы статья не получилась слишком длинная, я разбил её на две части. Продолжение о том, как можно обойти это дело вы сможете прочитать

    © 2024 splav38.ru -- Новости. Советы. Обзоры. Программы. Безопасность