Показаны сообщения с ярлыком adb. Показать все сообщения
Показаны сообщения с ярлыком adb. Показать все сообщения

воскресенье, 31 января 2016 г.

Android Screencast. Управление Android устройством через ADB.

В этом посте я вкратце расскажу вам об одном из вариантов управления Android устройством через ADB. Для чего это может понадобиться? Самая распространенная ситуация - это вариант, в котором экран устройства у вас поврежден, например, разбит, а получить доступ к устройству нужно. Например, для копирования данных или выполнения каких-либо других действий. Также возможно рассмотреть и другие сценарии использования, такие как выполнение определенной последовательности действий в автоматическом режиме. Что это может быть? Да что угодно ... К примеру, у вас есть какое-то важное для вас приложение на котором установлен "защитный PIN-код", который вы забыли. При этом вы знаете что код состоит из 4 цифр, например, от 0000 до 9999. Понятно что такой вариант "защиты" практически ни от чего не защищает, ну разве что от случайного человека, который взял в руки ваш телефон. Но если вы действительно забыли этот код, подобрать его не так сложно. Надо всего лишь попробовать все комбинации от 0000 до 9999 ... Правда сколько времени у вас на этой уйдет, если пытаться сделать это вручную? Думаю сценарий понятен, нужно написать небольшой скрипт, который автоматически будет нажимать в нужные кнопки на экране (пример, естественно, учебный, в большинстве случаев есть масса других способов "вытащить" такой пароль из приложения).

Что нам понадобится? Конечно же немного теории. Для начала, например, рекомендую ознакомиться с этой статьей - Автоматизация тестирования Android приложений, из которой самое главное в рамках поставленных нами задач - это работа с Event'ами. Т.е. сначала мы можем записать в лог с помощью команды adb shell getevent -t > events.txt определенное действие, а потом воспроизвести его. Здесь я сразу перейду к результатам (экспериментировать мы будем на моем Micromax Q415 Canvas Pace 4G). Для того чтобы произвести эмуляцию нажатия (тапа) по экране в месте с определенными координатами X,Y необходимо выполнить следующий сценарий:

adb shell sendevent /dev/input/event0 3 57 3
adb shell sendevent /dev/input/event0 3 53 X
adb shell sendevent /dev/input/event0 3 54 Y

adb shell sendevent /dev/input/event0 1 330 1 
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 1 330 0
adb shell sendevent /dev/input/event0 0 0 0 

Чтобы разобраться что к чему, если что-то непонятно можно прочитать еще вот эту статью - Простая автоматизация нагрузочного UI тестирования для Android QA инженера. Если вкратце, то сначала мы задаем координаты нажатия, потом делаем touch down (1 330 1) и затем touch up (1 330 0). Событие 0 0 0 здесь - это так называемый разделитель событий. Откуда я взял конкретные коды событий? Из лога ... т.е. запустил запись событий в лог, с помощью команды приведенной выше, кликнул по определенному месту экрана, остановил запись в лог, выделил из него нужное, а затем просто воспроизвел записанную последовательность.

Теперь нам становится более понятно, каким образом можно осуществить любую последовательность нажатий на экране, для этого нужно просто знать координаты соответствующих точек на экране по которым необходимо осуществить тап. Приведенный пример хорошо подходит для написания скриптов по автоматизации каких-то действий (например, в задаче перебора "пароля"). Но для полноценного управления устройством он не подходит, не будете же вы, например, для того чтобы запустить какое-то приложение и выполнить в нем простую последовательность действий, которая и нужна-то один раз (например, для того чтобы выгрузить нужные данные), вычислять координаты каждой кнопки и надписи, по которой нужно кликнуть.

В этом варианте, когда управлять устройством хочется при помощи мышки с ПК и видеть результат своих действий нам поможет проект AndroidScreencast от xSAVIKx. На данный момент последняя версия приложения v.0.0.5.1S. Скачать именно эту версию можно с GitHub'а - androidscreencast-0.0.5.1S.jar или с зеркала, отсюда - android_screencast.7z .

В последнем архиве в "комплект" уже входит jar-файл, драйвера ADB и platform-tools, т.е. adb.exe и все сопутствующее. Да, естественно, для общения с устройством через ADB - в нем должна быть включена "Отладка по USB" в опциях разработчика. Скачиваем архив android_screencast.7z и распаковываем в отдельную папку. Далее подключаем устройство с помощью USB-кабеля к ПК и запускаем Android Screencast - java -jar androidscreencast-0.0.5.1S.jar (на ПК должна быть установлена Java версии >= 7):


И сразу же видим рабочий стол нашего устройства. Все управляется мышкой, также можно посылать в аппарат определенные нажатия через меню Execute Keycode, просматривать содержимое папок (Explore):


И многое другое. Часть функционала правда может не работать, но для выполнения базовых задач того что есть вполне хватит.

p.s. Есть правда и некоторые "нюансы". Например, для того чтобы устройством можно было управлять через ADB - на нем должна быть включена отладка по USB, а на ПК, к которому вы его подключаете - должен быть принят запрос RSA авторизации. Если на устройстве уже разбит экран и вы не можете осуществить по нему ни одного нажатия, а отладка по USB при этом выключена или RSA-авторизация не принята, то, естественно, что т.к. у вас нет доступа к устройству через ADB - все описанное работать не будет. Однако, если доступ через ADB есть - то материал приведенный в посте окажет значительную помощь. На самом деле отладку через USB можно попытаться включить и другими способами, например, прямым редактированием соответствующих настроек в ФС Android, а RSA авторизацию для ADB и вовсе отключить, например, пересобрав boot.img ... но это уже гораздо более обширная тема. Кому интересно вот небольшая подборка полезных ссылок:


p.p.s. Ну и напоследок одна мысль, скорее в качестве идеи. Предположим, что мы попали в ситуацию, когда отладка по USB на устройстве у нас выключена, но установлен какой-нибудь кастомный recovery. Можно подготовить соответствующий update.zip, содержащий утилиту sqlite для arm и shell скрипт автоматизирующий все действия по включению отладки по USB. В этом случае для включения отладки по USB нам придется лишь прошить подготовленный нами zip через custom recovery. Но это уже в качестве предмета для самостоятельного изучения.

воскресенье, 17 мая 2015 г.

Мегафон Login 3. Возвращаем доступ к ADB на последних прошивках.

Этот небольшой пост является продолжением этой Мегафон Login 3. Возвращаем доступ к ADB на 5.1.6.0 статьи. Сегодня я расскажу вам более простой способ не требующий дополнительных знаний или использования ADB. Способ приведенный в предыдущей статье не рекомендуется к применению, т.к. после его использования пропадает кнопку "Переместить на SD-карту" в свойствах приложения.

  1. Скачиваем файл mflogin3t_enable_adb.7z и распаковываем на ПК. Внутри будут два файла - Settings.apk и MFLogin3TADBEnabler.apk.
  2. Эти файлы любым способом копируем на планшет.
  3. Открываем на планшете через Проводник папку, куда мы скопировали эти файлы и нажимаем по Settings.Apk, появится запрос на установку:


  4. Устанавливаем приложение. В качестве места установки оставляем "На усмотрение системы" и нажимаем "Открыть", либо находим в меню приложение Настройки и открываем его.
  5. Заходим в меню "О планшете" и три раза кликаем на "Модель". Появляется меню qualcomm.
  6. Как видите в нем уже есть enable_adb,  заходим в него и ставим галочку "Отладка по USB".
  7. После чего заходим в меню Настройки -> Приложения, на самой первой закладке "Сторонние" видем приложение "Настройки", нажимаем по нему и выбираем "Удалить обновления". Затем соглашаемся с тем, что мы хотим установить исходную версию приложения.
Собственно всё ;) Для пользователей у которых установлены root права, процесс еще проще. Устанавливаем приложение MFLogin3TADBEnabler.apk из архива:


Кнопка Enabled ADB используется в нем для включения диагностического режима, кнопка Disabled ADB для выключения. Надо сказать что это мой первый опыт разработки приложений на Android, поэтому прошу строго не судить. Рут права нужны для управления свойствами USB порта, изменить их из приложения пользовательского контекста не представляется возможным. При написании приложения мне помогли статьи Where is android.os.SystemProperties, класс com.jrummyapps.android.os (исходник), который дает доступ к методам android.os.SystemProperties и книга Алексея Голощапова "Google Android. Создание приложений для смартфонов и планшетных ПК". По большому счету ничего хитрого в нем нет, единственное, через SystemProperties.set установить значение свойства нельзя (т.к. не хватает прав), поэтому для установки свойств USB используется запрос root прав (обратите внимание, их наличие не проверяется).

суббота, 6 декабря 2014 г.

Как установить драйвера ADB на Android?

В последнее время меня буквально засыпали вопросами о том как установить драйвера ADB для Android. Особенно в режиме Fastboot. Собственно поэтому я и решил написать небольшую инструкцию. Итак, во-первых драйвера для ADB под все распространенные версии ОС можно взять тут - AdbDriver
Installer.7z, после чего необходимо подключить ваше Android устройство в режиме ADB к ПК (т.е. разрешить в опциях разработчика режим отладки по USB, и подключить устройство к ПК кабелем, после чего запустить установщик драйверов). Если вы подключили устройство в режиме Fastboot, и у вас вдруг оно не видится в Fastboot'е - первым делом необходимо проверить диспетчер устройств. А присутствует ли оно там? И если нет, установить соответствующие драйвера. Для эксперимента я взял свежеустановленную Windows 8.1 x64 и подключил к ней планшет Мегафон Login 3 в режиме FastBoot. После завершения установки устройств, которая длилась несколько минут (видимо из-за того что драйвера подтягивались с сервера обновлений Microsoft) в диспетчере устройств мы увидели следующую картину:


Если у вас такая же картина - то по fastboot devices устройство должно успешно определяться. На всякий случай посмотрим DEV_ID и VEN_ID данного устройства:

USB\VID_18D1&PID_D00D&REV_0100

Если вдруг драйвера для него не установились автоматически, то вы всегда можете найти соответствующий INF файл для ручной установки по PID_D00D&REV_0100 в интернете.

p.s. Если в режиме ADB у вас в диспетчере устройств неопознанное устройство и с помощью AdbDriverInstaller.exe из архива в Windows 8.1 драйвера не устанавливаются, вам необходимо вручную указать для неизвестного устройства папку с драйверами Android ADB driver x64.

Если устройство в режиме ADB у вас имеет статус offline или unauthorized рекомендую ознакомиться с этой статьей - Как бороться с ADB "device offline" на Android 4.4?

воскресенье, 16 ноября 2014 г.

Мегафон Login 3. Возвращаем доступ к ADB на 5.1.6.0

В прошлом посте я писал о негативных моментах, которые появляются при обновлении прошивки Мегафон Login 3 на 5.1.6.0, в частности, о том что в этой прошивке пропал доступ к ADB и диагностическому порту Qualcomm. Т.е. если установить в Опциях разработчика галочку "Разрешить отладку по USB" - то устройство в диспетчере устройств видится, но работать с ним через ADB нельзя, т.к. adb devices сообщает нам о том что устройств не найдено. Собственно немного поковырявшись я нашел способ "вернуть все как было". Как раз в момент когда я пишу эти строки в планшет восстанавливается backup от 5.0.8.0, который я потом обновлю до 5.1.6.0 и еще раз проверю способ перед тем как его выложить в public.

Собственно почему так произошло - догадаться нетрудно, разработчики по всей видимости хотели ограничить доступ к диагностическому порту Qualcomm, но вместе с этим "сломали" и adb. Почему так произошло, и что именно было изменено - я не разбирался в силу отсутствия времени, может как-нибудь потом, но способ вернуть все на свои места вполне рабочий.

Внимание! Материал приведенный ниже устарел. Актуальная практическая инструкция по возвращению доступа к ADB на последних версиях прошивок находится здесь - Мегафон Login 3. Возвращаем доступ к ADB на последних прошивках.

Новый метод тут.


Итак, что нам потребуется:
  1. Скачиваем архив mflogin3t_enable_adb_5.1.6.0.7z и распаковываем его в отдельную папку.
  2. Если у вас до этого не были установлены драйвера ADB - обязательно устанавливаем их, т.е. запускаем AdbDriverInstaller.exe и нажимаем в нем кнопку Install (драйвера входят в комплект архива).
  3. Далее нам необходимо загрузить планшет в режиме FastBoot. Выключаем его, зажимаем кнопки Громкость- + Кнопка включения питания и отпускаем их после того как планшет провибрирует два раза и на экране появится надпись Android. Если вы все сделали правильно, то планшет должен остаться в этом же состоянии. Т.е. на экране будет надпись Android.
  4. Подключаем планшет к ПК.
  5. Запускаем файл boot_recovery.cmd , в результате планшет загружается с модифицированным recovery, в котором монтируются разделы /system и /data и доступен root. Если вы все сделали правильно - вверху будет надпись Recovery NoSigCheck / Decker. Если планшет не загрузился в recovery и fastboot написал какую-то ошибку, перед выполнением пункта 5 выполните пункт 2.
  6. После предыдущего шага на экране у вас должен быть Recovery NoSigCheck / Decker. Запускаем файл restore_settings.cmd . Если все сделано верно, настройки adb вернутся к первоначальному состоянию и планшет перезагрузится.
  7. Далее, делаем две вещи. Заходим в меню Настройки -> О планшете. Тыкаем по пункту "Номер сборки" до тех пор пока не появится надпись о том что режим разработчика включен. Заходим в меню Настройки -> Для разработчиков, перетаскиваем ползунок в правом верхнем углу экрана в положение "Вкл" и ставим птичку "Отладка по USB". Затем заходим опять в Настройки -> О планшете и нажимаем три раза по пункту Модель. Если до этого вы все сделали верно там будет пункт enable_adb, который как раз в 5.1.6.0 и стремились убрать. 
  8. Нажимаем по enable_adb, и ставим птичку на Отладка по USB. После чего планшет видится по adb devices. Бинго!

Также вы можете воспользоваться любым файловым менеджером для работы с устройством через ADB, например плагином FarDroid для FarManager или соответствующим плагином для Total Commander (ADBPlugin.wfx):


Как мы видим - все работает. Ну и чтобы ни у кого не осталось сомнений, что adb работает именно на 5.1.6.0 можно дать команду adb shell getprop ro.build.display.id, результат на скрине ниже:

Как видно - у нас 5.1.6.0 и adb работает. На этом на сегодня все.

p.s. Большая просьба при цитировании данной статьи оставлять ссылку на оригинал. Спасибо.

понедельник, 15 сентября 2014 г.

Мегафон Login 3. Модифицированный Recovery.

Не так давно в статье Как получить root на Мегафон Login 3 (MT4A)? мы писали о модифицированном оригинальном recovery с отключенной проверкой цифровой подписи update.zip, позволившим получить root на планшете (с помощью заливки специального update.zip, который помещал в /system/xbin файлы su и daemonsu). Т.к. CWM для Login 3 собрать пока не получается (вернее он собирается, но изображение на экране с деффектами, видимо надо крутить graphics.c), я решил немного покопать в сторону оригинального recovery. Итак, давайте задумаемся, а зачем собственно нам cwm? Чтобы делать backup'ы раздела system и пользовательских данных, и восстанавливать их в случае чего. Однако, той же возможности, правда, наверное в менее удобном варианте можно добиться и через обычный recovery, слегка подправив его. Итак, что мы знаем о recovery и adb ... то что когда устройство загружено в recovery - adb не работает. А что если модифицировать recovery так, чтобы когда устройство находится в нем были доступны на чтение и запись system и userdata, да причем с правами root? Сказано - сделано. Встречайте вторую версию мода оригинального recovery.

Ключевые возможности:
  1. Отключена проверка цифровой подписи update.zip, т.е. можно заливать кастомные update.zip для оригинального recovery. Т.е. все то же самое что было в Recovery NoSigCheck / Decker.
  2. При загрузке в Recovery работает adbd (т.е. можно подключиться через adb с ПК)
  3. adbd работает в режиме root (!)
  4. Примонтированы /system и /data, причем они доступны для чтения / записи.
  5. Интегрирован busybox (/sbin/busybox) ... для тех кто в курсе - это открывает вообще неограниченные возможности, netcat, tar и т.д. и т.п.
Ссылка на сам recovery: https://yadi.sk/d/9dJv-X5bbUVEv (прошивать через fastboot)

p.s. Может помочь в случае когда вы нечаянно что-то удалили с планшета и после этого он не загружается. Также, на основе данного recovery вполне можно делать скрипты для восстановления, а-ля tar -cvf /sdcard/system.ext4.tar /system для backup'а раздела system, и tar -xvf ... для восстановления. Правда так как sd-карточки у меня под рукой нет, то монтируется ли sdcard корректно или нет - возможности проверить не было.
p.p.s. Методика использования - прошиваем recovery через fastboot, загружаемся в recovery, делаем adb shell и получаем root доступ к /system и /data ...

(!) Ну и конечно помните, что ответственность за испорченное оборудование, в результате неумелых действий / нелепых случайностей / случайных удалений каких-то файлов, некорректной установки прав доступа и т.п. - целиком и полностью лежит только на вас. Если вы не уверены в своих силах, поверьте, вам не нужен root доступ из recovery!

Q&A:

Q. Как сделать backup раздела system во внутреннюю память планшета?
A. adb shell "/sbin/busybox tar -cvf /data/media/0/system.ext4.tar /system"
Q. Как восстановить backup раздела system из внутренней памяти?
A. adb shell "/sbin/busybox tar -xvf /data/media/0/system.ext4.tar"

Естественно все это, загрузившись в модифицированный recovery.

Q. Как примонтировать флешку в recovery?
A. adb.exe shell "mkdir /sdcard1 & mount -t vfat -o rw /dev/block/mmcblk1p1 /sdcard1" , после чего флешка будет доступна в /sdcard1

Q. Как отмонтировать флешку в recovery?
A. adb.exe shell "umount /sdcard1 & rmdir /sdcard1"

Q. Как сделать backup раздела system на флешку?
A. adb shell "/sbin/busybox tar -cvf /sdcard1/system.ext4.tar /system"

Q. Как восстановить backup раздела system с флешки?
A. adb shell "/sbin/busybox tar -xvf /sdcard1/system.ext4.tar"

воскресенье, 14 сентября 2014 г.

Backup раздела /system в Android напрямую на ПК (на примере Мегафон Логин 3)

Иногда делаешь какие-то вещи, которые в итоге оказываются не то что беполезными, но малоприменимыми что-ли. Предысторией к этой заметке является статья на Хабре - Как сделать nandroid backup устройства непосредственно на компьютер, минуя sdcard. Вообщем-то пробежавшись мельком по ней, я решил вспомнить что такое netcat (в данном случае речь идет не о популярной CMS), и как собственно ее можно использовать для backup'а раздела system на ПК, минуя карту памяти. Под рукой у меня был рутированный планшет Мегафон Логин 3, и собственно его backup'ом я и решил заняться. Автор статьи на Хабре использует cygwin терминал, ну а я собственно, решил свести задачу к использованию "нативного" Win32 софта. Сборка NetCat по Win32 нашлась практически сразу же - netcat 1.11 for Win32/Win64, ну а большего собственно нам и не было нужно. Т.к. тестировал я все на планшете, то и рассказывать в дальнейшем я буду про этот планшет. Итак, нам понадобятся root права, включенный abd и установленный busybox на планшете (установить его можно прямо из Google Play, это не так сложно). Активируем отладку по USB и в дальнейшем работаем через ADB.

Первое что мы делаем - это adb forward tcp:5555 tcp:5555, т.е. мапим локальный TCP порт 5555 планшета, на localhost:5555. Теперь при обращении к 127.0.0.1:5555 - фактически мы будем обращаться к порту планшета (android'а). Затем в adb shell делаем три следующие команды:

/system/xbin/busybox mkfifo /data/local/tmp/myfifo
/system/xbin/busybox tar -cvf /data/local/tmp/myfifo /system
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /data/local/tmp/myfifo

Создаем FIFO очередь с помоющью mkfifo, затем запускаем tar, который будет отправлять содержимое /system в созданную нами очередь в /data/local/tmp/myfifo, ну и наконец запускаем netcat. Он создаст pipe и будет слушать на порту 5555, ожидая входящего подключения. Вернее выполнится команда cat /data/local/tmp/myfifo, которая фактически запустит отображение нашей очереди в порт. Т.е. при подключении клиента на порт 5555 - сработает cat, который будет отображать очередь, а в очередь у нас tar будет класть содержимое system. Пока клиент не подключился на 5555 порт - tar не работает. Но достаточно с локального ПК дать команду: nc 127.0.0.1 5555 > system.tar , как содержимое /system с планшета польется через pipe на ваш ПК в файл system.tar. Все вышесказанное оформлено с помощью простого скрипта - https://yadi.sk/d/rQnasL5cbTkWH (пароль на архив - www.decker.su, будьте внимательны - некоторые антивирусы определяют netcat порт под win32 как RemoteAdmin_Tool/Not_A_Virus, на самом деле ничего страшного в этом инструменте нет, если его используете именно вы, а не кто-нибудь на вашем ПК в тайне от вас).

Распаковываем скачанный архив backup_mflogin3t.rar , подключаем планшет USB шнурком, убеждаемся в том что отладка по USB включена, на планшете есть root и busybox и он видится по adb devices. После чего запускаем backup.cmd. При этом на экране поочередно появляются несколько окон cmd:


Не закрываем их, а просто дожидаемся окончания выполнения скрипта. В окне #1 вы видите надпись "Ждите ... ", в окне #2 - показан вывод tar'а, который пишет содержимое system в пайп от nc, который в свою очередь перенаправлен в файл system.tar у вас на диске.  Когда все окна автоматически закроются у вас на диске окажется файл system.tar (~860 Mb), это и есть backup папки system.

Почему скрипт фактически бесполезен? Потому что развернуть backup аналогичным образом не удастся, я уже отписывался на этом на 4pda, поэтому здесь лишь процитирую себя же:

"Как его использовать - это уже другой вопрос. Потому как залить все назад аналогичным образом по понятным причинам не получается. Если мы начнем разворачивать backup (примонтировать system как rw, чтобы туда была разрешена запись - не проблема), проблема в том что способ требует запущенного экземпляра nc и tar на планшете, понятное дело что если мы распаковываем system.tar в /system, то рано или поздно случится "баг" (работающие экземпляры уже ведь находятся в system). Поэтому, повторюсь, в архиве только скрипты для backup'а. Я также писал скрипт восстановления из этого backup'а, но в архиве его нет, т.к. на выходе можно получить кирпич. Скрипт Backup'а абсолютно безопасен для вашего планшета. Но с другой стороны - зачем нужен backup который нельзя развернуть? ) Разве что отдельные файлы, чтобы брать, если случайно удалили (чтобы не просить на форуме). Вообщем так или иначе решил поделиться. " (с) Decker

Идеи, комментарии, предложения, пожелания приветствуются ;)

p.s. На самом деле писалось все это только чтобы "освежить" свои знания в плане *nix, pipe'ов, ну и собственно практики использования netcat. Надеюсь что для кого-то все это также окажется полезным ) 

среда, 27 августа 2014 г.

Как получить root на Мегафон Login 3 (MT4A)?

В этой заметке я расскажу вам о том как получить root на Мегафон Login 3 (MT4A) / Haier MFLogin3T. Первое с чего надо начать, чтобы все понимали в чем собственно сложность с этим - на аппарате установлен Android 4.4.4 (KTU84P), т.е. самая последняя и самая защищенная версия на данный момент. Так что ни один exploit ее не берет, именно по этой причине бесполезно пробовать получить root права с помощью Towelroot, Framaroot и т.п. приложений. Как же мне это удалось? Вы наверняка в курсе что один из способов получения root - это установка специального update.zip через CWM Recovery. Однако беда в том, что на Мегафон Login 3 (MT4A) используется стоковый 3e recovery, который проверяет проверку цифровой подписи update.zip, таким образом, если мы подсунем специальным образом сформированный update.zip в recovery, то у нас ничего не получится, т.к. он выдаст ошибку Signature Verification Failed, после чего установка прекратится. Мне показалось это наиболее простым способом ... в отсутствии CWM, убрать проверку цифровой подписи в оригинальном recovery ;) В результате получился Recovery NoSigCheck / Decker для Login 3:


Отдельное спасибо здесь хочется сказать пользовател. ruslan_3_ с 4pda ... Т.к. именно он рассказал мне про утилиту Android Image Kitchen с помощью которой можно пересобрать Kernel+Recovery Images и отредактировать ramdisk. Кому нужно на всякий случай, вот ссылка на тему на XDA - [DEV][TOOL] Android Image Kitchen - Unpack/Repack Kernel Ramdisk [Win/Android/Linux]. Ну а теперь инструкция:

Как получить root на Мегафон Login 3 (MT4A)?

  1. Скачиваем архив mt4a_root.7z, внутри вы найдете: image-new.img - образ recovery с отключенной проверкой цифровой подписи, platform-tools_r19.0.1-windows.zip - последняя версия adb и fastboot для работы с Android 4.4, update.zip - собственно кастомный update для получения root.
  2. Распаковываем архив, также распаковываем platform-tools, кладем image-new.img в папку с platform-tools.
  3. Подключаем планшет и закидываем update.zip на внутреннюю память (!)
  4. Активируем на планшете опции разработчика и отладку через USB.
  5. Запускаем командную строку cmd.exe в папке platform-tools (Удерживая Shift на папке platform-tools кликните по ней правой кнопкой мыши, и в появившемся меню выберите "Открыть окно команд".)
  6. Набираем adb devices, если вы все сделали верно, то вы должны увидеть подключенное устройство. Т.е. в List of devices attached должно значиться что-то вроде 5d619130        device.
  7. Делаем adb reboot-bootloader для перезагрузки в режим bootloader'а.
  8. Далее проверяем fastboot devices, если вы видите что ваше устройство в режиме fastboot, значит можно прошивать модифицированный recovery.
  9. fastboot.exe flash recovery image-new.img - шьем Recovery NoSigCheck и перезагружаем планшет, можно через fastboot reboot.
  10. Recovery NoSigCheck у нас прошит, выключаем планшет. Держим кнопку Громкость+ и нажимаем кнопку включения питания для загрузки в Recovery.
  11. Если вы все сделали верно, то в заголовке Recovery вы увидите строку Recovery NoSigCheck / Decker, как на картинке.
  12. Теперь выбираем Apply Update from Internal Storage и указываем ему на update.zip во внутренней памяти. После завершения установки бинарник su окажется у вас в /system/xbin.
  13. root уже получен, но неплохо было бы поставить какую-нибудь утилиту для управления правами.
  14. Запускаем на планшете Google Play и устанавливаем оттуда SuperSU.
  15. При первом запуске утилита скажет что неплохо было бы обновить версию su - соглашаемся и выбираем нормальный режим обновления. После чего перезагружаем устройство.
  16. Все. Полноценный root получен. Можно ставить Root Explorer и наслаждаться ... 
Все действия описанные в этой инструкции вы выполняете на свой страх и риск, никто кроме вас не несет ответственности за поврежденное или испорченное в результате ваших действий оборудование. 

Возможно чуть позже я сделаю небольшой скрипт, который позволит установить все вышеописанное автоматом при запуске одного файла, но пока и так неплохо ... надеюсь, что понятно все описал ;)

p.s. Способ опробован на прошивке V5.0.8.0, однако судя по отзывам на версии прошивки V5.0.9.0-Test способ не сработал.

p.p.s. Видеоролик иллюстрирующий данный способ (спасибо 3ginfo.ru):


Как получить root если у вас прошивка 5.1.6.0 или выше?

  1. Вместо пунктов с 4 по 7 - Переводим планшет в режим fastboot, т.е. держим кнопку Громкость МИНУС + Power до появления надписи Android. После того как планшет два раза провибрирует, отпускаем их. Подключаем планшет к ПК.
  2. Вместо пунктов с 9 по 10 - fastboot boot image-new.img

Внимание! Перед выполнением любых действий, не лишним будет сделать полный backup планшета при помощи HDD Raw Copy, чтобы всегда была возможность вернуться к состоянию "из магазина", если по какой-то причине вы что-то сделаете не так. В последнее время очень много вопросов, от пользователей, который установили root, потом нечаянно удалили / модифицировали какие-то системные файлы и столкнулись с проблемами. На подобные вопросы "я все испортил, как вернуть все как было?" или "я случайно удалил ... планшет не работает ... помогите ... " - отвечать не буду. Делаем backup при помощи HDD Raw Copy, в случае любых проблем - восстанавливаем планшет из него.

p.s. Не забудьте поддержать наш проект, если какая-то из статей оказалась полезной для вас.

среда, 6 августа 2014 г.

Как бороться с ADB "device offline" на Android 4.4?

Вообщем расскажу тут про одну проблему с которой я столкнулся при "общении" с несколькими новыми девайсами на Android 4.4, а именно смартфоном Билайн Смарт 2 и планшетом Supra M727G. У обоих на борту Android 4.4 и при включении режима отладки по USB и попытке законнектиться по ADB - последний видел устройство, но постоянно писал - "device offline". На форумах данная проблема как-то не обсуждалась, поэтому пришлось искать решение своими силами. Во-первых, когда устройство находится в состоянии offline (т.е. по adb devices оно видится, но написано что offline) к нему невозможно подсоединиться по ADB, запрос разрешения на отладку (как показано на картинке) не происходит и при попытке, к примеру, сделать adb shell - получаем все то же, что device offline.

После курения нескольких англоязычных форумов выяснилось, что якобы нужна последняя версия ADB или драйверов ADB - 1.0.31. Собственно проще всего было "обновиться" с официального сайта. Но обо всем по порядку. Проверить текущую версию adb можно с помощью adb version, так, например, до обновления у меня выдавалось: Android Debug Bridge version 1.0.26, а уже после - Android Debug Bridge version 1.0.31. Скачать обновление ADB можно по следующим ссылкам:

Также ссылки на последние версии platform tools можно посмотреть в sdk-repository. Переходим по ссылке и в XML'ке ищем строку platform-tools*.zip, соответствующую вашей версии ОС. После чего скачиваем ее по ссылке https://dl-ssl.google.com/android/repository/platform-tools*.zip . После того как мы скачали platform-tools_r19.0.1-windows.zip (в моем случае это именно версия под Windows), распаковываем ее в отдельную папку и делаем adb kill-server, а после adb devices. Если вы все сделали правильно и у вас версия 1.0.31 - то статус устройства изменится с offline на unathorized, а при попытке совершить следующее действие с помощью adb на экране устройства появится запрос авторизации, как на картинке. Примите RSA fingerprint на устройстве - после чего ADB работает.

Для удобства работы с файлами через ADB я использую Far Manager 3.0 и плагин FarDroid. Правда если устройство не рутированно, то в настройках плагина нужно выставить "Use safe mode". Чтобы лишний раз не рассказывать - проще один раз показать как это выглядит:


Все очень просто и удобно.