Доступ к системным файлам android через компьютер – Как изменять системные файлы android через компьютер. Как отредактировать или заменить системные файлы и папки

Доступ к системным файлам андроид с пк. «Робот» изнутри. Учимся работать с файлами на Android

В статье рассмотрим стандартную утилиту ADB для управления с персонального компьютера устройствами с мобильной операционной системой Android .


Введение в ADB

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

Программа adb устанавливает связь между устройством и компьютером, позволяет посылать команды на устройство через USB соединение и выполнять различные манипуляции с системой Android . Продвинутые пользователи сталкивались с ней при получении прав root, установке ClockworkMod Recovery.

Утилита является составной частью Android SDK, предназначенного для разработчиков. Также эту утилиту производитель смартфона может поставлять вместе с драйверами конкретного мобильного устройства. Но более подробно об установке утилиты чуть ниже.

Основные возможности интерфейса ADB:

  • просмотр подключенных к ПК устройств Android;
  • просмотр лога системы Android;
  • копирование файлов с/на устройство Android;
  • установка и удаление приложений на устройстве Android;
  • очищать раздел data на устройстве Android;
  • запускать различные скрипты управления устройством Android.


Подготовка к работе

Для начала нужно установить саму консольную утилиту adb. Существует несколько вариантов её получения.

1. Обычно в системах Windows она может установиться вместе с фирменными драйверами смартфона или планшета. Искать её обычно следует в папке Program Files в каталоге, имеющем название марки смартфона.

2. Универсальным способом получения adb для пользователей всех операционных систем является установка утилиты через менеджер Android SDK.

Для пользователей Linux драйвера устанавливать не нужно, но надо написать правило для udev. Ниже приведена последовательность создания правила для Ubuntu.

Для этого сначала нужно узнать значения переменных idVendor и idProduct вашего мобильного устройств. Сделать это можно при помощи команды lsusb в терминале, подключив устройство через USB-шнур, в результате чего должна отобразиться информация примерно такого вида:

Bus 002 Device 006: ID 12d1:1038 Huawei Technologies Co., Ltd.

Здесь idVendor — это шестнадцатеричные цифры после ID и до двоеточия. IdProduct — это следующие четыре цифры после двоеточия.

После этого создаём файл /etc/udev/rules.d/51-android.rules с правами chmod 644 и со следующим содержанием (подставлять свои значения ID и пользователя):

SUBSYSTEMS==»usb», ATTRS{idVendor}==»12d1″, ATTRS{idProduct} ==»1038″, MODE=»0666″, OWNER=»пользователь»

$ sudo /etc/init.d/udev reload

В первом и втором случае получения adb очень желательно настроить переменные окружения , чтобы не вводить при запуске в консоли полный путь к установленной утилите. О том, как это делать, не раз писалось и на страницах «КВ», поэтому не будем подробно устанавливаться на этом вопросе.

Настройка персонального компьютера на этом закончена. На мобильном устройстве должна быть включена отладка по USB: «Настройки — Приложения — Разработка — Отладка по USB». Подключите ваш телефон через кабель USB и НЕ МОНТИРУЙТЕ как SD!

Для получения абсолютно всех возможностей adb мобильное устройство должно уже иметь root, и также должен быть установлен пакет Busybox (имеется в Google Play). Но всегда следует помнить, что установка прав root в некоторых случаях может лишить гарантии на ваше устройств.

Вот теперь можно приступать к работе с adb.


Работа с adb

Рассмотрим некоторые команды adb. Открываем консоль и запускаем команду

$ adb devices

Данная команда выведет список устройств, подключенных к ПК. Должно появиться что-то вроде

List of devices attached
4CA94Dxxxxx device

$ adb reboot

$ adb reboot recovery

Установка с компьютера пакета apk

$ adb install

Удаление пакета

$ adb uninstall

Просмотреть лог работы устройства

$ adb logcat

После чего вы увидите динамический вывод системных сообщений Android. Если производить с устройством какие-либо манипуляции, это тут же будет отображаться через вывод соответствующих сообщений. Выход из режима отладки через комбинацию клавиш Ctrl+C.

И при помощи ADB можно запустить на мобильном устройстве самый настоящий шелл Unix.

$ adb shell

Запустив шелл, можно использовать все доступные на устройстве команды UNIX — cat, ls, df и другие, а также запускать сценарии.

Если есть root и Busybox, то с мобильным устройством вообще можно делать всё, что захочется. Так что, используя ADB, следует быть осторожным.

Полный список всех команд ADB можно получить, запустив adb без параметров.

Возможно, для многих утилита adb покажется сложной. В дальнейших статьях мы рассмотрим разные программы-оболочки, которые упрощают работу с этой утилитой.

Михаил АСТАПЧИК

К iOS часто выдвигают претензии, связанные с полной закрытостью операционной системы и, как следствие, отсутствием системы управления файлами. Получить доступ к содержимому i-устройства можно только проведя процедуру «джейлбрейка», либо установив на ПК программу iTools или ее аналог. Платформа Android, исходный код которой открыт, в этом отношении отличается куда большей гибкостью.

Выгрузить программу из памяти, найти документы на флеш-накопителе или получить доступ ко

Как зайти в папку system на android, системные файлы андроид

Редактирование системных приложений Андроид чаще всего осуществляется тогда, когда пользователя смартфона, планшета или другого аппарата, управляемого данной операционной системой, перестает удовлетворять текущий внешний вид программ, установленных в девайсе производителем или продавцом. Еще одной причиной может являться необходимость произвести не только изменения, касающиеся графического оформления приложений Андроид, но также затрагивающие расположение различных элементов и выполнения основных функций.

Для того чтобы вносить изменения в код, требуются элементарные навыки программирования практически на любых языках (желательно – Java и C++). Для замены графики сгодятся прямые руки и умение работать в графическом редакторе.

Прежде всего следует определиться, нужно ли просто заменить графику в приложениях Андроид либо необходимо менять расположение элементов в системе и делать более глубокие изменения в коде. От этого зависят дальнейшие шаги, предполагающие либо работу с приложением как с архивом, либо его полную разборку и редактирование.

Изменение графики в системных приложениях Андроид

Для того чтобы просто заменить либо видоизменить исходную графику (поменять цвета кнопок, перерисовать картинки и т.п.), достаточно иметь на компьютере стандартный архиватор WinRAR. На аппарате при этом у пользователя должны быть права «рут» (аналог учетной записи администратора на Windows), а также желательно иметь альтернативный рекавери (CWM) и рут-эксплорер (для доступа к файловой системе Андроид непосредственно в самом девайсе).

В первую очередь необходимо включить в аппарате «Отладку по USB», затем подключить его к компьютеру при помощи USB-кабеля и установить необходимые драйвера. Обычно они находятся на виртуальном диске, который появляется при подключении к компьютеру.

Затем нужно также скачать в сети Интернет ADB-плагин для файлового менеджера. Данный плагин позволяет видеть всю систему Андроид как подключенный диск с папками. Все системные приложения находятся по адресу /system/app, а также /system/framework. Найдя нужное приложение, просто копируем его на компьютер. Если плагин не ставится, можно с помощью рут-эксплорера скопировать приложение с расширением apk на съемную SD-карту, а затем уже с нее уже на компьютер.

Папки в Android-смартфоне и что они означают

После копирования нужного приложения можно приступать к редактированию графики. К слову, все картинки в приложениях Андроид сохраняются в формате png, который легко открывается любым графическим редактором. Открыв файл приложения с помощью WinRAR, можно увидеть ряд папок. Нас будет интересовать только папка res, внутри которой обнаружится, в свою очередь, очень много разных папок. Из них необходимы только те, которые имеют в своем названии слово «drawable».

Теперь вспомним наш тип девайса и разрешение его экрана. Если это смартфон, а разрешение равно 240х320, то нас будут интересовать преимущественно папки drawable и drawable-ldpi. Если разрешение 320х480 – соответственно папки drawable и drawable-mdpi, а для разрешения 480х800 – папки drawable и drawable-hdpi. В дополнение к ним обычно присутствуют также папки, в названии которых есть слово «land» – это графика для портретного режима, т.е. когда девайс наклоняют.

Если в руках планшет, то нас будут интересовать только папки drawable и drawable-mdpi при любом разрешении экрана.

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

После завершения редактирования папки нужно закачать обратно в архив, коим выступает само приложение с расширением apk. При этом необходимо обязательно выбирать в WinRAR опцию «без сжатия».

Подправленное приложение закачивается обратно в аппарат либо при помощи рут-эксплорера (сначала файл копируется на SD-карту, а с нее — уже в девайс), либо после выхода в рекавери – сразу с компьютера в папку /system/app или /system/framework. Далее нужно обязательно выставить при помощи соответствующих опций в рут-эксплорере или плагине ADB разрешения на файл. Они должны быть формата 644. После перезагрузки аппарата можно посмотреть результат работы обновленного приложения.

Редактирование исходного кода системных приложений

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

1) Установить на компьютер необходимый пакет программ в их последних версиях: Java SE Runtime Environment и Android SDK Windows (программы для работы с приложениями и их компонентами), APKtool или APKManager либо Firmware_tool (одна из трех программ для разборки и декомпиляции системных приложений), редактор NotePad++ (для внесения изменений в исходный код системных приложений Андроид).

2) Включить в аппарате «Отладку по USB», подключить его к компьютеру при помощи USB-кабеля, установить необходимые драйвера для работы с девайсом.

3) При помощи одной из вышеназванных программ для работы с кодом приложений необходимо извлечь из телефона в соответствующую папку программы папку /system/framework (полностью) и системные приложения из папки /system/app. Например, для программы Firmware_tool файлы из телефона необходимо скопировать в папку C:Firmwaretoolfw_project1_source2_system.img_unpacked в соответствующие подпапки (приложения – в папку app, файлы из framework – в папку framework). При использовании как этой, так и других программ нужно обязательно прочесть инструкцию к ним.

4) Установить «опорный framework», т.е. набор правил, в соответствии с которыми будет осуществляться декомпиляция (т.е. разборка кода) и компиляция (т.е. сборка кода) приложений.

На этом подготовка к работе с системными приложениями завершена.

Выгрузка приложений из девайса и их загрузка обратно осуществляется аналогично процедуре, описанной в разделе «Изменение графики в системных приложениях Андроид».

Редактирование кода приложений Андроид обычно производится с помощью редактора NotePad++ — одного из самых удобных текстовых редакторов, имеющих опцию подсветки синтаксиса выбранного языка программирования. Как правило, при редактировании можно также попутно менять графику с помощью выбранного графического редактора.

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

Замена системных файлов Android с помощью adb / Habr

Способ может быть полезен в том случае, если «уже ничего не помогает», доступа к 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 — символом #.

Как найти и открыть системные файлы на Android смартфоне

Последние версии Android наполнены встроенными сервисами, которые нельзя удалить без доступа к файлам ОС. Но разработчики по умолчанию скрыли их. В статье расскажем, как открыть системные файлы Андроид и какая папка, за что отвечает.

Для чего нужен root доступ и как посмотреть файлы

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

Root Browser

Для просмотра «внутренностей» Андроид не обязательно взламывать смартфон, нужно только скачать специальный файловый менеджер из магазина приложений Google Маркет. Вводим в поиске Root Browser и устанавливаем программу. В интернете рекомендуют другое конкурирующее приложение под названием Root Explorer, но последние версии не отличаются стабильностью, а пользователи жалуются на большое количество рекламы.

Интерфейс Root Browser

Открываем Root Browser. Даем разрешение на доступ к файловой системе телефона. Чтобы узнать, где находится корневая папка на смартфоне андроид, делаем свайп вправо и в появившемся меню выбираем Root Directory.

Обозначение системных папок

Рассмотрим назначение важных папок на Андроид. Фирменная операционная система Google написана на основе Linux, поэтом, если ищете конкретный файл или папку пишите её название дословно. В файловой структуре Android, в отличие от Windows, директории с именем «Cache» и «cache» будут разными разделами.

System

Не знаете, как зайти в папку system на своём Android? В разделе Root Directory прокручиваем список вниз и находим требуемый раздел. В ней расположены все основные записи, связанные с внутренними настройками и предустановленными сервисами. Будьте внимательны, на китайских смартфонах встречается System вне рут раздела, не перепутайте. Рассмотрим основные вложенные директории:

  • В app находятся предустановленные Google программы. На новых версиях разработчики перенесли их в отдельную директорию с названием priv-app;
  • По пути xbin/su расположены файлы, отвечающие за права суперпользователя;
  • В etc лежат конфигурации для запуска ОС и других приложений;

System

  • etc/hosts, как и на Windows, отвечает за блокировку входящих и исходящих соединений;
  • fonts – директория с системными шрифтами;
  • framework отвечает на все внутренние процессы и важные модули контроля ОС.

System 2

Cache

В ней находятся временные записи, предстоящие обновления операционной системы и кэш установленных игр и приложений.

Data

С новых версий Андроид, раздел не обязательно находится в рут библиотеке. Как открыть и где найти папку data на Android? Пользователям с ревизией 8 – 10, рекомендуем искать data на внутреннем накопителе, а для более молодых версий использовать взлом. В директории находятся все внешние программы и сервисы, которые человек ставил из Google Маркета или используя apk.

Root директории

Efs

Доступен не на всех устройствах. В нём хранится информация связанная с IMEI и другими параметрами идентификации девайса.

Mnt

В разделе находятся файлы с внешнего накопителя, в новых ревизиях переименован в storage. Если в смартфон вставлена SD-карта или другой накопитель, внутри будет находиться раздел с именем sdcard или sdcard2, если внутренняя память дублирует название.

sdcard root

Система сохраняет всю музыку, изображения, видео и другую пользовательскую информацию по этому пути. Если нужно перенести личную информацию на компьютер через USB-кабель, рекомендуем её искать в mnt или storage.

На заметку: недостаточно информации о внутреннем устройстве файловой системы? Читайте статью: «Структура Android».

mnt

Важно понимать, что имена и размещение разделов может отличаться в зависимости от большого количества факторов: производитель телефона, внешних оболочек и наличия root. Без прав администратора запрещено редактировать и заменять документы, а некоторые записи могут не отображаться.

( Пока оценок нет )

Доступ к файловой системе андроид с компьютера. Как зайти в папку system на android, системные файлы андроид

Статьи и Лайфхаки

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

Где находятся папки в Андроиде и как в них зайти?

Если мы пользуемся настольным компьютером с Windows, то наверняка привыкли к тому, что всё в этой системе распределено по дискам. К примеру, на диске C установлена система, а диск D используется для хранения личных файлов. Остальные диски могут использоваться, к примеру, для съёмных флэш-накопителей и внешних жёстких дисков (например, Z или E).

Система Android, основанная на ядре Linux, организована иным способом. Здесь предусмотрена древовидная структура файлов, отправным пунктом в которой выступает корень. Кроме того, сама мобильная операционная система весьма чувствительна к регистру. Так, если в Windows мы не можем создать в одном месте одновременно папки ALBUM и Album, то в Android это вполне возможно.

Раздел data на Linux содержит данные самого пользователя, а также персональные настройки, а раздел cache – временные файлы, включая и обновления системы. Информация об устройствах хранится в dev, а файлы, которые отвечают за идентификатор IMEI – в efs (хотя последний раздел встречается и не всегда). Системные папки находятся в system. Что касается сведений о ядре и его конфигурации, они содержатся в proc. Добавим, что для того, чтобы увидеть корневые разделы именно под такими названиями, нам понадобятся root-права, а также специальный файловый менеджер.

Если нас интересует, как зайти в папки в андроиде, и у нас нет root-прав, не стоит рисковать только ради того, чтобы увидеть разделы так, как это представлено изначально на ядре Linux. Лучше всего использовать один из самых распространённых файловых менеджеров вроде Total Commander. Через такой диспетчер мы сможем наглядно увидеть, что и где именно расположено.

Как зайти в папку с кэшем игр в Андроиде?

Чтобы игра работала корректно, нам никак не обойтись без набора дополнительных файлов, то есть без кэша. Это в особенности касается игр значительного объёма с 3D-графикой. Сразу же после установки и открытия игры кэш начинает загружаться через Интернет. Кроме того, мы можем заранее скачать и загрузить на мобильное устройство, подключив его по USB. Распаковываем кэш, используя архиватор вроде WinRar.

Добавим, что настоятельно рекомендуется загружать кэш по Wi-Fi. Если же прямо сейчас у нас нет доступа к Wi-Fi точке, однако есть стабильный и безлимитный мобильный Интернет, в крайнем случае, можно воспользоваться им, а также приложением под названием Reverse Tethering для Android.
Рекомендуем отдельно ознакомиться с инструкцией по установке кэша формата obb. Зайти в него можно обычно по следующему адресу: sdcard/Android/obb.

Если найти папку obb мы не можем по причине её отсутствия, стоит создать её самостоятельно. Кэш другого типа можно поискать в sdcard/Android/data.

Системные приложения Google, такие как Gmail, Google Карты, Google+, Gtalk можно сносить, но сервисы лучше оставить, так как их отсутствие приведет к сбоям в работе Play Market, игр и других программ, частым ошибкам.

Кроме того, нельзя удалять Адреса и Навигацию, если планируется использование Google Maps, но можно избавиться от Просмотра улиц, так как оно он не входит в это приложение.

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

Родные программы расположены в папке /system/app и представлены файлами с расширениями apk и odex. Если прошивка деодексированная, то тут имеются только apk. Чтобы попасть в папку нужно использовать сторонний файловый менеджер, например, Root Explorer.

Удалять приложения можно вручную и через дополнительные программы. В первом случае надо:

  • через Root Explorer зайти в /system/app;
  • нажать на кнопку «Права R/W» вверху справа, перемонтировав папку для записи;
  • поставить галки на удаляемые apk и odex файлы приложения, у которых одинаковое название;
  • внизу выбрать значок с ножницами;

  • перейти в папку на флешке;
  • далее «Переместить сюда».

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

Для упрощения процедуры можно установить Uninstaller pro.

Используют ее так:

  • после первого запуска нужно предоставить ему права суперпользователя;
  • нажать кнопку назад;
  • в списке программ найти нужную и нажать на нее;
  • затем «Удалить» и согласиться.

Кроме того, здесь же можно сначала сделать бэкап на всякий случай.

Если стандартная программа была обновлена, то сначала нужно обновление удалить стандартным способом:

  • зайти в «Настройки»;
  • «Приложения»;
  • выбрать нужное;
  • «Удалить обновление».

После стирания основных файлов остаточные располагаются в следующих папках:

  • /system/lib содержит библиотеки.so, которые нужны для работы связанных приложений, они не соответствуют названию основного файла и их ни в коем случае нельзя трогать, так как это может убить устройство;
  • /data/dalvik-cache — их надо удалять, для этого лучше делать hard reset.

Поскольку это невозможно сделать с использованием общедоступного API, я нашел способ сделать это очень «хакерским» способом, который требует внедренного устройства.

Обновление: как указано ниже пользователем864555, это еще одно решение

«Этот код отключает приложение SystemUI, которое является фактически панелью меню. Какую эту модификацию вы также получите пространство этой панели системы, но обязательно запустите кнопку« Назад »или что-то для выхода».

Обновление: Вот третий метод. Способ сделать это программно или с помощью командной строки. Найдено здесь: http://android.serverbox.ch/?p=306

Этот метод требует корневого доступа, но вам не нужно менять плотность ЖК-дисплея, сохраняя то же самое, что и оригинал, и вы можете бы

Управляем ОС Android при помощи ADB

В статье рассмотрим стандартную утилиту ADB для управления с персонального компьютера устройствами с мобильной операционной системой Android.


Введение в ADB

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

Но не всегда такое фирменное ПО прилагается, например, для пользователей Linux. Поэтому желательно хотя бы иметь представление об универсальном интерфейсе доступа к устройствам Android с персонального компьютера, который называется Android Debug Bridge (отладочный мост Android) или кратко — ADB. Реализован этот интерфейс в виде консольной утилиты под одноимённым названием adb, которая имеется для всех популярных операционных систем и запускается из командной строки.

Программа adb устанавливает связь между устройством и компьютером, позволяет посылать команды на устройство через USB соединение и выполнять различные манипуляции с системой Android. Продвинутые пользователи сталкивались с ней при получении прав root, установке ClockworkMod Recovery.

Утилита является составной частью Android SDK, предназначенного для разработчиков. Также эту утилиту производитель смартфона может поставлять вместе с драйверами конкретного мобильного устройства. Но более подробно об установке утилиты чуть ниже.

Основные возможности интерфейса ADB:

  • просмотр подключенных к ПК устройств Android;
  • просмотр лога системы Android;
  • копирование файлов с/на устройство Android;
  • установка и удаление приложений на устройстве Android;
  • очищать раздел data на устройстве Android;
  • запускать различные скрипты управления устройством Android.


Подготовка к работе

Для начала нужно установить саму консольную утилиту adb. Существует несколько вариантов её получения.

1. Обычно в системах Windows она может установиться вместе с фирменными драйверами смартфона или планшета. Искать её обычно следует в папке Program Files в каталоге, имеющем название марки смартфона.

2. Универсальным способом получения adb для пользователей всех операционных систем является установка утилиты через менеджер Android SDK.

Для этого нужно скачать сам архив Android SDK и распаковать. Пользователям Windows в корневой папке архива нужно запустить SDK Manager.exe. Пользователям Linux в папке tools архива SDK нужно запустить исполняемый файл android. (В системе также должна быть установлена Java).

В результате запустится менеджер компонентов Android SDK, через который нужно загрузить компоненты «Android SDK Tools» и «Android SDK Platform tools». Утилита adb должна появиться в каталоге platform-tools в папке разархивированного Android SDK.

3. Пользователи Ubuntu 12.10+ могут загрузить нужные утилиты прямо через менеджер пакетов системы. Утилита adb уже имеется в официальном репозитории этого дистрибутива. Установить нужно пакеты android-tools-adb и android-tools-fastboot.

Для полноценной работы в Windows необходимо установить еще и драйвера конкретного устройства для поддержки интерфейса ADB по USB. Обычно Windows Vista и Windows 7 сами находят этот драйвер в Сети. После установки USB-драйверов для Windows в диспетчере устройств вы должны наблюдать: My Computer — Android Phone — Android ADB Interface. Если у вас вместо Android ADB Interface после подключения устройства светится желтый вопросительный знак, значит, драйвера установились некорректно.

Для пользователей Linux драйвера устанавливать не нужно, но надо написать правило для udev. Ниже приведена последовательность создания правила для Ubuntu.

Для этого сначала нужно узнать значения переменных idVendor и idProduct вашего мобильного устройств. Сделать это можно при помощи команды lsusb в терминале, подключив устройство через USB-шнур, в результате чего должна отобразиться информация примерно такого вида:

Bus 002 Device 006: ID 12d1:1038 Huawei Technologies Co., Ltd.

Здесь idVendor — это шестнадцатеричные цифры после ID и до двоеточия. IdProduct — это следующие четыре цифры после двоеточия.

После этого создаём файл /etc/udev/rules.d/51-android.rules с правами chmod 644 и со следующим содержанием (подставлять свои значения ID и пользователя):

SUBSYSTEMS==»usb», ATTRS{idVendor}==»12d1″, ATTRS{idProduct} ==»1038″, MODE=»0666″, OWNER=»пользователь»

Далее выполняем

$ sudo /etc/init.d/udev reload

В первом и втором случае получения adb очень желательно настроить переменные окружения, чтобы не вводить при запуске в консоли полный путь к установленной утилите. О том, как это делать, не раз писалось и на страницах «КВ», поэтому не будем подробно устанавливаться на этом вопросе.

Настройка персонального компьютера на этом закончена. На мобильном устройстве должна быть включена отладка по USB: «Настройки — Приложения — Разработка — Отладка по USB». Подключите ваш телефон через кабель USB и НЕ МОНТИРУЙТЕ как SD!

Для получения абсолютно всех возможностей adb мобильное устройство должно уже иметь root, и также должен быть установлен пакет Busybox (имеется в Google Play). Но всегда следует помнить, что установка прав root в некоторых случаях может лишить гарантии на ваше устройств.

Вот теперь можно приступать к работе с adb.


Работа с adb

Рассмотрим некоторые команды adb. Открываем консоль и запускаем команду

$ adb devices

Данная команда выведет список устройств, подключенных к ПК. Должно появиться что-то вроде

List of devices attached
4CA94Dxxxxx device

Просто перезагрузка устройства

$ adb reboot

Быстрая перезагрузка устройства в режим Recovery

$ adb reboot recovery

Установка с компьютера пакета apk

$ adb install <путь_к_apk>

Удаление пакета

$ adb uninstall <package>

Просмотреть лог работы устройства

$ adb logcat

После чего вы увидите динамический вывод системных сообщений Android. Если производить с устройством какие-либо манипуляции, это тут же будет отображаться через вывод соответствующих сообщений. Выход из режима отладки через комбинацию клавиш Ctrl+C.

И при помощи ADB можно запустить на мобильном устройстве самый настоящий шелл Unix.

$ adb shell

Запустив шелл, можно использовать все доступные на устройстве команды UNIX — cat, ls, df и другие, а также запускать сценарии.

Если есть root и Busybox, то с мобильным устройством вообще можно делать всё, что захочется. Так что, используя ADB, следует быть осторожным.

Полный список всех команд ADB можно получить, запустив adb без параметров.

Возможно, для многих утилита adb покажется сложной. В дальнейших статьях мы рассмотрим разные программы-оболочки, которые упрощают работу с этой утилитой.

Михаил АСТАПЧИК

Восстановление данных из внутренней памяти на Android для чайников / Habr

Сейчас всё больше смартфонов идут без слота для sd-card, и информацию приходится хранить на встроенной памяти с доступом к ней по MTP. Такой режим подключения не позволяет стандартными средствами восстановить данные телефона после wipe’а или случайного удаления.

Сегодня на примере связки Xiaomi Mi2s и Windows 8.1 я постараюсь рассказать, как можно восстановить утерянные данные, кому интересно, добро пожаловать под кат.

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

Протокол MTP не позволяет компьютеру распознать подключенный девайс как USB-накопитель и программы для восстановления не могут просканировать такое устройство и спасти данные, поэтому нам потребуется скопировать весь внутренний раздел памяти в виде образа системы.

Подготовка Android-устройства

Вам понадобится root и включенная отладка по USB.
Подготовка PC

Для того, чтобы скопировать раздел системы, нам понадобится:
Сперва устанавливаем USB-драйвера для вашего устройства и ADB. После этого советую перезагрузить ПК.
VHDtool

Создаём папку с адресом C:\cygwin64\000 (имя не имеет значения, не стоит только использовать буквы отличные от латиницы), здесь будет лежать наш образ. Копируем в папку VHDtool.exe.
FileZilla

В ходе инсталяции соглашаемся на все стандартные установки.
После установки FileZilla запустится автоматом, но из программы необходимо выйти и запустить её от имени Администратора.
При запуске FileZilla спросит имя сервера, оставляем всё как есть.

Далее заходим Edit — Settings и делаем следующие настройки:

listen on those ports 40
timeout settings — по умолчанию стоит 120, 60, 60, а мы ставим везде 0 и нажимаем ОК.
Заходим в edit — users. В окошке users создаем нового юзера. В моем случае это юзер qwer.
Нажимаем Add — пишем имя — пароль pass — нажимаем ОК.

Далее в том же меню Users, слева выбираем закладку Shared folders. Заходим туда и добавляем папку в которую будет заливаться наш блок. Нажимаем Add и добавляем папку C:\cygwin64\000. В окошке появится путь к этой папке. Если слева от надписи C:\cygwin64\000 не будет буквы H, то нужно нажать Set as home dir. Затем выделив строчку C:\cygwin64\000 нужно отметить права Read и Write галочками. Затем нажать ОК.

ADB

Нам понадобятся следующие файлы:
  • adb.exe
  • AdbWinApi.dll
  • adb-windows.exe
  • AdbWinUsbApi.dll
  • fastboot.exe

Скачать их можно на тут.
Или вытащить из дистрибутива Android SDK.

Копируем их в папку C:\cygwin64\bin

Проверка работы ADB

Запускаем консоль из папки C:\cygwin64\bin, для этого достаточно вписать cmd в адресную строку проводника

Вводим команду:

adb devices

Список подключенных девайсов не должен быть пуст, если после строчки List of devices attached пусто, то вы не установили USB-драйвера или не включили отладку по USB.

Когда всё идет хорошо, консоль выглядит так:

20352f2c – мой Xiaomi Mi2s

Режим модема по USB

Нам понадобится подключить аппарат по USB к вашему ПК и включить режим модема по USB. Я использую CyanogenMod 11 и у меня этот режим находится по пути: Настройки > Беспроводные сети > Ещё… > Режим модема > USB-модем
Скриншот
Теперь нам необходимо узнать, какой IPv4 адрес получил ваш компьютер.
Используем команду ipconfig в командной строке
или
Идем по пути: Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом

Кликаем по надписи ’Подключение по локальной сети’ далее Сведения и копируем адрес IPv4.

В моём случае это 192.168.42.79

Важно! При каждом переподключении USB кабеля и вкл/выкл режима модема IPv4 будет меняться.

Какой блок памяти нам нужен?

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

Теперь нам необходимо посмотреть список блоков памяти, для этого вводим построчно следующие команды:

adb shell
su
find /dev/block/platform/ -name 'mmc*' -exec fdisk -l {} \; > /sdcard/list_of_partitions.txt

Hint: если вам лень вручную переписывать команды или вы боитесь допустить ошибку, то можно воспользоваться копированием, но вставить привычным способом строчку в консоль не выйдет, поэтому необходимо кликнуть правой кнопкой мыши по окну консоли, далее выбрать изменить > вставить.

После чего во внутренней памяти появится файл list_of_partitions.txt, который нам необходимо скопировать на ПК и изучить.
Скопировать его можно в нашу папку 000 с помощью простой команды (выполнять её следует в отдельном окне командной строки):

adb pull /sdcard/list_of_partitions.txt C:/cygwin64/000
Мой файл имеет вид
Disk /dev/block/platform/msm_sdcc.1/mmcblk0p27: 25.6 GB, 25698483712 bytes
4 heads, 16 sectors/track, 784255 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Disk /dev/block/platform/msm_sdcc.1/mmcblk0p27 doesn't contain a valid partition table

Disk /dev/block/platform/msm_sdcc.1/mmcblk0p26: 3758 MB, 3758096384 bytes
4 heads, 16 sectors/track, 114688 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Disk /dev/block/platform/msm_sdcc.1/mmcblk0p26 doesn't contain a valid partition table

Disk /dev/block/platform/msm_sdcc.1/mmcblk0p25: 402 MB, 402653184 bytes
4 heads, 16 sectors/track, 12288 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Disk /dev/block/platform/msm_sdcc.1/mmcblk0p25 doesn't contain a valid partition table

итд…

Внутренней памяти в моём аппарате 32 GB. Поэтому я ищу самый большой раздел, в моём случае это mmcblk0p27 размером 25,6 GB, у вас он скорее всего будет иметь другое имя, или вообще не будет иметь приписки p**. Безусловно, никто не гарантирует что именно самый большой раздел окажется тем самым на котором еще совсем недавно лежали ваши фото, видео, документы и тд., но в 90% случаев это оказывается именно тот раздел памяти который нам нужен. В противном случае вам придется по порядку копировать все образы и проверять каждый из них.

Копируем раздел памяти на ПК.

Если вы уже закрыли окно cmd, то запускаем его снова.

Вводим команды построчно:

adb shell
su
mkfifo /cache/myfifo
ftpput -v -u qwer -p pass -P 40 192.168.42.79 mmcblk0p27.raw /cache/myfifo

Не забудьте внести соответствующие корректировки в код!

Расшифруем написанное:

qwer – имя учетной записи в FileZilla (у вас свой если меняли)
pass – пароль от учетной записи в FileZilla (у вас свой если меняли)
40 – порт сервера FileZilla
192.168.42.79 – адрес сервера FileZilla (у вас свой)
mmcblk0p27.raw – копируемый блок памяти (у вас свой)

Открываем второе окно командной строки и вводим команды:

adb shell
su
dd if=/dev/block/mmcblk0p27 of=/cache/myfifo

Не забудьте исправить mmcblk0p27 на номер своего блока!

Смотрим в окно FileZilla и видим, что скачивание mmcblk0p27.raw в папку C:\cygwin64\000 началось, теперь можно закрыть окна cygwin и сделать перерыв на чай.

Конвертируем и восстанавливаем

Вернулись? Файл скачался? Отлично. Отключаем телефон, подключаем интернет. Запускаем Cygwin.bat и вводим следующие команды.
cd C:/cygwin64/000/
VhdTool.exe /convert mmcblk0p27.raw

Не забудьте исправить mmcblk0p27 на номер своего блока!

У меня конвертирование заняло пару секунд. На выходе у нас получается всё тот же файл mmcblk0p27.raw в папке C:\cygwin64\000, но уже немного другой. Этот сконвертированный файл можно смонтировать как виртуальный диск, или, например через R-studio, произвести восстановление данных непосредственно из нашего образа. Я так и поступил.


Hint: важные моменты пометил желтым.

Итоги

Моей целью было популярным языком объяснить способ копирования системного раздела с android-девайса на ПК, возможно, некоторые упрекнут меня в сложностях, связанных с USB-модемом и ftp, и скажут, что наверняка можно было проще вытащить образ. Отвечу так: я пробовал другими способами, описанными на 4pda и xda-developers, у меня не вышло, зато с ftp получилось со второй попытки, а входе написания статьи всё вообще прошло как по маслу.

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

В завершении хочется также упомянуть еще одну небольшую утилиту, которая восстанавливает данные — DiskDigger undelete. Она бесплатная, неплохой функционал, но к сожалению, после 40% она у меня вывалилась с ошибкой.

P.S. Теперь буду чаще делать бэкап…
P.P.S. Большое спасибо пользователю bakatrouble за наглядный эксперимент в комментариях и помощь в оптимизации процесса

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *