Где в андроид хранятся драйвера
Рут даёт практически абсолютную власть над Android устройством. Сегодня я расскажу вам как получить еще больше имея склонность к программированию и желание исследовать систему на своём устройстве. Кто заинтересовался — прошу под кат.
Что же, начнём по порядку.
Что необходимо
- Минимальные знания C.
- Минимальные знания Java.
- Некоторое понимание того как взаимодействуют элементы системы Android.
- Рутованый Android телефон.
- IDE с поддержкой Android SDK/NDK (в моём случае eclipse, его очень легко настроить для работы с Android и описано это много раз).
- Тулчейн для кросс компиляции которым было собрано ядро на целевом устройстве.
- Собранное ядро для нашего устройства с правильной локальной версией.
Стоит сказать что я использовал ОС Linux Ubuntu 11.10 и все примеры буду приводить для неё.
Первые 3 пункта очевидны, как добиться 4 и 5 легко найти в интернете. Последние два рассмотрим подробно.
Выбор тулчейна для кросс компиляции модулей ядра (драйверов)
В данной статье мы не рассматриваем возможность прошивки собственноручно собранного ядра на свой телефон поэтому мы должны придерживаться определённых правил.
Для того чтобы узнать каким компилятором собрано ядро на нашем устройстве выполняем команду:
c помощью любого эмулятора терминала или используя утилиту adb:
В результате получаем строку вроде этой:
Видим что у нас установлено ядро версии 3.0.69 локальная версия "-g26a847e" и собрано оно тулчейном Linaro GCC 4.7-2012.07. Зная версию находим необходимый тулчейн и распаковываем в любую папку. У меня путь выглядел так:
Сборка ядра
Для начала узнаем какое именно ядро использует наше устройство. Это можно сделать выполнив команду указанную выше или зайдя на устройстве в настройки, раздел «О телефоне».
Как было сказано выше в моём случае это 3.0.69-g26a847e. Немного поковырявшись на гитхабе прошивки (PACman for HTC Desire S) я определил что это ядро AndromadusMod.
Копируем найденные иходники себе на локальную машину (я предварительно форкнул необходимый репозиторий себе в гитхаб и выполнил git clone, производители вроде Google и изготовители кастомных прошивок держат исходники ядра в репозиториях с открытым доступом, некоторые просто позволяют скачать исходники в виде архива). Для меня это выглядело так:
Теперь нужно найти конфигурацию с которой собрано ядро нашего устройства. В большинстве случаев конфигурация лежит на самом устройстве и получить её можно с помощью adb, распаковать и скопировать в папку с исходниками ядра:
Необходимо также немного изменить конфигурацию — установить локальную версию на идентичную той что мы узнали ранее и выключить автоматическое назначение локальной версии. Сделать это можно с помощью любого текстового редактора:
После переходим в папку с исходниками, настраиваем переменные окружения для сборки и собственно собираем ядро:
Теперь можно перейти к программированию.
Написание кода
Android приложение
Учитывая огромное количество статей о написании Android приложения я рассмотрю только моменты связанные с задачей.
Наше приложение будет иметь всего 1 Activity:
Выглядит это в итоге вот так:
На кнопку мы назначаем событие которое получит информацию от нашего драйвера и запишет её в текстовое поле:
Теперь создадим класс обёртку для нашей jni библиотеки:
Создадим папку jni в корне проекта Android приложения.
Далее сгенерируем Си хедер для нашей нативной библиотеки:
Получаем хедер и копируем в ранее созданную папку, создадим соответствующий .c и конфигурацию сборки Android.mk:
- Открыть ноду драйвера.
- Выделить буфер под информацию из драйвера
- Получить информацию с помощью ioctl запроса.
- Закрыть ноду.
- Преобразовать информацию в Java строку и передать в обёртку.
Драйвер ядра
- Драйвер написанный для этой статьи не делает ничего сверхъестественного — только возвращает список имён сетевых интерфейсов.
- Для общения с драйвером используется механизм ioctl.
- Makefile для сборки позволяет указывать ядро для которого требуется собрать данный драйвер, для этого нужно правильно указать переменные окружения и использовать команду:
Запуск
Для начала зальём собранный драйвер на устройство, и установим его в ядро, заодно сделаем ноду драйвера доступной для всех:
Если версия ядра модифицирована правильно и ядро совпадает с тем которое было на устройстве ошибок быть не должно.
После можно запускать Android приложение напрямую через eclipse или установить его. Нажимаем единственную кнопку и получаем результат:
Логи ядра можно получить командой:
Заключение
Показанное применение данной связки не единственное. Использование драйверов ядра позволяет напрямую работать с любыми интерфейсами устройства, влиять на работу любого приложения и системы в целом, также позволяет работать с интерфейсами которые спрятаны глубоко в системе за целой кучей API и фреймворков — например драйвер который будет писать необходимую вам информацию прямо в буфер видеопамяти устройства. Данное решение применимо не только для телефонов но и для любых устройств на базе Android.
Полные исходники лежат на GitHub.
На этом заканчиваю, спасибо за внимание. Надеюсь что данный материал окажется для кого-нибудь полезным.
Общаясь на форумах и являясь куратором нескольких тем, часто сталкиваюсь с полным непониманием новичков об устройстве андроида. «Ну, а зачем обычному пользователю знать это?» — скажете вы. И тут я с вами соглашусь, задав встречный вопрос: «А зачем тогда обычный пользователь лезет в дебри прошивок, root доступа и твиков системы, не понимая в этом ничего?». Именно это и натолкнуло меня на написание данной статьи, в которой я попытаюсь, обычным и понятным языком, донести сложные вещи.
Материал направлен, в первую очередь, на обычных пользователей. Поэтому здесь будет представлена сжатая и поверхностная информация без технических углублений и нюансов.
Содержание:
1. Разделы внутренней памяти
Внутренняя память устройства на андроиде разбита на несколько логических дисков (разделов).
Приведу только основные:
Bootloader – здесь находится микропрограмма (загрузчик), позволяющая запускать операционную систему, рекавери и другие сервисные режимы.
Recovery – как видно из названия, тут установлено инженерное меню восстановления или просто Рекавери.
Boot – сердце Андроид ОС, тут находится ядро, драйвера и настройки управления процессором и памятью.
System – системный раздел, в котором находятся все, необходимые для работы Android ОС, файлы, это как папка Windows на вашем диске С: (здесь и далее буду проводить ассоциацию с ОС Windows)
Data – раздел для установки приложений и хранения их данных. (Program files)
User – это всем известная sdcard или, проще говоря, место под пользовательские файлы (Мои документы). Здесь я вынужден сделать отступление, т.к. размещение данного раздела имеет несколько вариантов:
- Раздел отсутствует во внутренней памяти, а вместо него используется внешний накопитель — самый популярный вариант. (рис.1)
- В устройствах со встроенной памятью большого размера, данный раздел видится какsdcard, а внешняя карта памяти видится какsdcard2илиextsd(могут быть и другие варианты названия). Обычно, встречается на устройствах сAndro >
2. Bootloader, Recovery, adb и fastboot
Теперь, когда мы знаем, что и где находится, давайте разберемся для чего оно там.
Начнем с Bootloader. Это загрузчик, который запускает Андроид, рекавери и т.п. Когда мы нажимаем кнопку включения, запускается загрузчик и, если нет дополнительных команд (зажатых клавиш), запускает загрузку boot. Если же была зажата комбинация клавиш (у каждого устройства она своя) то запускает, в зависимости от команды, recovery, fastboot или apx. На рисунке ниже наглядно показано, что запускает Bootloader и как взаимосвязаны разделы.
Как видно из рисунка №3, раздел Recovery не влияет на загрузку Андроид ОС, но зачем же он тогда нужен? Давайте попробуем разобраться.
Recovery (рекавери) по сути является маленькой утилитой на ядре Linux и загружается не зависимо от Андроид. Его штатный функционал не богат: можно сбросить аппарат до заводских настроек или же обновить прошивку (заранее скачанную на sdcard). Но, благодаря народным умельцам, у нас есть модифицированные рекавери, через которые можно устанавливать модифицированные (кастомные) прошивки, настраивать андроид, создавать резервные копии и многое другое. Наличие или отсутствие рекавери, а также его версия не влияют на работоспособность Андроид ОС (очень частый вопрос на форумах).
Раз уж зашла речь об интерфейсах, хочу рассказать о еще одном, довольно известном,- adb (android debug bridge). Это, так называемый, режим отладки и назван он так неспроста – через него можно отслеживать работу, как системы в целом, так и отдельных приложений. Но это еще не все, при помощи adb можно получить полный доступ к файловой системе устройства и изменять системные файлы или же вытянуть важную информацию, когда ваш девайс завис на загрузке. Все функции режима отладки описывать не буду т.к. моя цель донести общую информацию, а не подробный обзор о функциях того или иного режима.
3. Внутренности системы
Разобравшись с теорией, давайте запустим Андроид ОС.
Нажимаем кнопку питания — запускается Bootloader, который загружает Ядро (boot), оно, в свою очередь, запускает систему (System), ну, а она уже подгружает программы (data) и пользовательское пространство (user). (Рис.3)
А теперь перейдем в корневой каталог и посмотрим на внутренности самой Android OS:
В этой схеме я привел, только необходимые для ознакомления, директории. На самом деле их гораздо больше и на обзор только одной папки System понадобится целая статья.
И так, папка data. Как можно догадаться из названия, она как-то связана с данными, но с какими? Да практически со всеми, это и данные о синхронизации и аккаунтах, пароли к точкам доступа wifi и настройки vpn, и так далее. Среди всего прочего тут можно обнаружить папки app, data и dalvik—cache – рассмотрим их назначение:
- app – сюда устанавливаются программы и игры.
- data – здесь хранятся данные приложений, их настройки, сэйвы игр и прочая информация.
- dalvik—cache — программная область кэш-памяти для программы Dalvik. Dalvik это Java-виртуальная машина, которая является основой для работы программ, имеющих *.apk расширение. Для того, чтобы сделать запуск программ быстрее — создается их кэш.
Папка System хранит в себе системные данные и все необходимое для работы ОС. Давайте рассмотрим некоторые из этих папок:
- app – здесь находятся системные приложения (смс, телефон, календарь, настройки и т.п.), а так же приложения установленные производителем устройства (фирменные виджеты, живые обои и т.д.).
- fonts – системные шрифты
- media – содержит стандартные мелодии звонков, уведомлений, будильников и звуков интерфейса, а так же загрузочную анимацию (bootanimation)
- build.prop – Этот файл упоминается, чуть ли не первым, в разговорах и статьях о тонкой настройке системы. В нем содержится огромное количество настроек, таких как плотность экрана, время задержки сенсора приближения, управление wifi, имя и производитель устройства и многие другие параметры.
4. Root
— Знать что в какой папке это хорошо, но можно ли что-то с этим сделать?
— Да! Но нужны права суперпользователя (root) или, если проводить аналогию с Windows, права Администратора. Изначально все устройства на Андроид идут без root прав для конечного пользователя, т.е. покупая девайс, мы не являемся в нем полноценными хозяевами. Это сделано как для защиты от вредоносных программ, так и от самого пользователя – ведь, в неумелых руках, полный доступ к системе может привести к «смерти» операционной системы и последующей необходимости в перепрошивке устройства.
«Ну и в чем польза такой опасной штуки?» — спросите Вы.
- Возможность делать резервные копии данных и восстанавливать их после прошивки или случайного удаления.
- Тонкая настройка системы вручную или при помощи специальных программ.
- Удаление системных приложений, мелодий, обоев и т.п.
- Изменение внешнего вида ОС (например, отображение заряда батареи в процентах)
- Добавление функционала (поддержкаad—hocсетей, к примеру)
Данный список можно продолжать еще долго, но, думаю, данных примеров будет достаточно для представления о возможностях и широте применения root привилегий.
— Это все здорово, но теперь любая программа сможет получить доступ к «сердцу» операционки и моим данным?
— Нет. Вы сами решаете разрешить, тому или иному приложению, получить root доступ, или нет. Для этого существует программа Superuser или ее продвинутая сестра SuperSU. Без этой или подобной программы воспользоваться root не возможно.
Эпилог
Как видите, Андроид не такая уж и сложная штука. Надеюсь, после прочтения статьи, вы узнали что-то новое или получили ответ на давно интересовавший вопрос.
Засим откланиваюсь, до встречи в комментариях. 😉
Есть OnePlus One 16gb, разбил экран, потом поменял на новый в сборе с тачскрином.
НО
Тачскрин на любых прошивках сходит с ума, огромное количество фантомных нажатий, использовать OS вообще невозможно. Нашел прошивку cm-12.0-YNG1TAS17L в которой есть исправления по повожу тачскрина, тачскрин ведет себя так как должен, нажатий нет, но есть другой косяк, но это отдельная история.
Хочу вытащить драйвер тачскрина, и подсунуть его вместо стокового драйвера в других прошивках.
Например подсунуть в cm-12.1 чтобы без танцев с бубном поставить Kali
Подскажите, эта затея вообще реальна с подменой драйвера?
На каком этапе загружается драйвер тачскрина?
Где лежат драйверы для тачскрина ?
Смогу ли я просто заменить файлы ?
Если нельзя это просто сделать, напишите простой алгоритм как это делается, очень хочется заморочиться)))
В данной статье вы узнаете какие папки (директории) в Andro >
Предисловие о структуре
У многих есть компьютер и на них установлена ОС Windows. Все прекрасно знают, что в данной ОС все распределено по дискам:
C: — на данном диске находиться система
D: — для личных файлов (диска может и не быть, если он не «разбит»)
E: — Z: — флешки, переносные жесткие диски, CD или DVD приводы.
В Windwows все рассредоточено по различным дискам. В UNIX/Linux куда входит и Android (а также BSD, куда входит Mac OS X) все выглядит все немного иначе. Файловая структура имеет древовидный вид. Возможно сейчас не понятно, но дальше с прочтением статьи будет более понятно.
Также стоит знать что Android как и в Linux, в отличие от Windows очень чувствительны к регистру. Например папка Name, NaMe, name, NAME — это 4 разных папки, тогда как Windows сможет создать только одну папку с таким именем.
Для того чтобы было более понятно о чем идет речь, рекомендуется установить файловый менеджер Root Browser.
Структура и назначение папок и файлов Android
Как было выше сказано — структура имеет древовидный вид. У любого дерева имеется корень, в UNIX/Linux он также существуют. Корень — это отправной пункт в файловой структуре, с корня система обрастает папками и файлами. Корень в UNIX/Linux отмечается как знак:
В данном разделе находятся временные файлы в момент загрузки Android, а также сюда загружаются обновления системы «по воздуху» — update.zip.
/dev/ — в данном разделе содержится информация о устройствах системы и файлов.
раздел /data/ — пользовательский раздел в котором находятся установленные приложения, личные настройки
папка /data/app — здесь находятся установленные приложения, игры.
папка /data/app-lib — дополнительные библиотеки необходимые для работы определенных приложений (присутствует в новых версиях Android).
папка /data/dalvik-cache — кеш-память, для работы Java машины Dalvik которая является «двигателем» в Android отвечающая за запуск и работу приложений.
папка /data/data — в данной папке находятся индивидуальные настройки каждого пользовательского приложения, библиотеки и другие файлы необходимые файлы для их работы.
папка /data/system/ — в данном разделе находятся глобальные настройки пользовательского окружения, синхронизация, аккаунты, блокировка.
файлы gesture.key, locksettings.db, locksettings.db-shm, locksettings.db-wal — графический ключ, пин-код.
раздел /efs/ — находится файлы и папки отвечающие за IMEI (данный раздел имеется не во всех Android).
раздел /preload/ — в данном разделе находятся дополнительные файлы и папки, которые зеркалируются в раздел /system/ (данный раздел имеется не во всех Android, преимущественно в Samsung).
раздел /system/ — данный раздел содержит системные папки и файлы необходимые для функционирования Android.
папка /system/app — здесь находятся системные приложения и сервисы (в новых ОС Android сервисные приложения вынесли в другую папку priv-app).
папка /system/bin и /system/xbin — папка содержит файлы и ссылки на исполняемые бинарные файлы.
файл /system/xbin/su — файл отвечающий за Root права.
папка /system/camerdata — в данной папке находятся файлы отвечающие за работу камеры.
папка /system/etc — в данной папке находятся конфигурационные файлы необходимые при загрузке ОС а также необходимые в процессе работы различных программ.
папка /system/init.d — в данной папке находятся скрипты, которые могут влиять на работу системы.
файл /system/etc/ hosts — файл отвечающий за блокировку, переадресацию веб адресов.
файл /system/etc/ apns.conf — файл с информацией о точках доступах интернет (APN).
файл /system/etc/ gps.conf — настройки GPS.
папка /system/fonts — папка с системными шрифтами.
папка /system/framework — папка с «процессами» Android.
папка /system/lib/ — библиотеки системных приложений и сервисов.
папка /system/lib/modules — драйверы системы.
папка /system/media — папка с системными звуками и анимацией включения.
файл /system/media/bootanimation.zip — исполняемый архив с загрузочной анимацией.
папка /system/priv-app — папка с сервисами/приложениями Android.
папка /system/tts— папка с голосовыми движками системы.
файл /system/build.prop — конфигурационный файл с помощью которого можно изменить системные настройки.
раздел /proc — виртуальный раздел содержащий информацию о ядре и его конфигурации.
раздел /mnt — в данный раздел монтируются (добавляются) карты памяти и внутренняя память и другие виртуальные разделы (также в новых версиях можно встретить раздел storage).
раздел /storage — в данный раздел монтируются только реальные (существующие, то есть не виртуальные) карты памяти и внутренняя память.
Все файлы которые существуют у вас на Android (картинки, мелодии, видео, документы) записаны либо на внутренней памяти или карте памяти. Если в Android присутствует собственная память (внутренняя память) то она имеет монтируется под именем.
/mnt/sdcard или /storage/sdcard
Да, я прекрасно понимаю что многие считают давать название собственной памяти таким именем, но что поделаешь…
Если же внутренней памяти нет, то это имя занимает карта памяти. Если же есть и внутренняя память и карта памяти, то внутренней так и остается под именем sdcard, а карта памяти берет одно из имен:
sdcard2
external_sd
sdcard1
extSdCard
Общаясь на форумах и являясь куратором нескольких тем, часто сталкиваюсь с полным непониманием новичков об устройстве андроида. «Ну, а зачем обычному пользователю знать это?» — скажете вы. И тут я с вами соглашусь, задав встречный вопрос: «А зачем тогда обычный пользователь лезет в дебри прошивок, root доступа и твиков системы, не понимая в этом ничего?». Именно это и натолкнуло меня на написание данной статьи, в которой я попытаюсь, обычным и понятным языком, донести сложные вещи.
Материал направлен, в первую очередь, на обычных пользователей. Поэтому здесь будет представлена сжатая и поверхностная информация без технических углублений и нюансов.
Содержание:
1. Разделы внутренней памяти
Внутренняя память устройства на андроиде разбита на несколько логических дисков (разделов).
Приведу только основные:
Bootloader – здесь находится микропрограмма (загрузчик), позволяющая запускать операционную систему, рекавери и другие сервисные режимы.
Recovery – как видно из названия, тут установлено инженерное меню восстановления или просто Рекавери.
Boot – сердце Андроид ОС, тут находится ядро, драйвера и настройки управления процессором и памятью.
System – системный раздел, в котором находятся все, необходимые для работы Android ОС, файлы, это как папка Windows на вашем диске С:\ (здесь и далее буду проводить ассоциацию с ОС Windows)
Data – раздел для установки приложений и хранения их данных. (Program files)
User – это всем известная sdcard или, проще говоря, место под пользовательские файлы (Мои документы). Здесь я вынужден сделать отступление, т.к. размещение данного раздела имеет несколько вариантов:
- Раздел отсутствует во внутренней памяти, а вместо него используется внешний накопитель — самый популярный вариант. (рис.1)
- В устройствах со встроенной памятью большого размера, данный раздел видится какsdcard, а внешняя карта памяти видится какsdcard2илиextsd(могут быть и другие варианты названия). Обычно, встречается на устройствах сAndroid3.2. (Рис.2 Вариант 1)
- Данный вариант пришел на смену предыдущему варианту, вместе с Андроид 4.0. РазделUserзаменили папкойmediaна разделеData, что позволило использовать всю доступную пользователю память для установки программ и хранения данных, а не то количество, что выделил нам производитель. Иными словамиsdcardиdataявляются одним целым. (Рис.2 Вариант 2)
2. Bootloader, Recovery, adb и fastboot
Теперь, когда мы знаем, что и где находится, давайте разберемся для чего оно там.
Начнем с Bootloader. Это загрузчик, который запускает Андроид, рекавери и т.п. Когда мы нажимаем кнопку включения, запускается загрузчик и, если нет дополнительных команд (зажатых клавиш), запускает загрузку boot. Если же была зажата комбинация клавиш (у каждого устройства она своя) то запускает, в зависимости от команды, recovery, fastboot или apx. На рисунке ниже наглядно показано, что запускает Bootloader и как взаимосвязаны разделы.
Как видно из рисунка №3, раздел Recovery не влияет на загрузку Андроид ОС, но зачем же он тогда нужен? Давайте попробуем разобраться.
Recovery (рекавери) по сути является маленькой утилитой на ядре Linux и загружается не зависимо от Андроид. Его штатный функционал не богат: можно сбросить аппарат до заводских настроек или же обновить прошивку (заранее скачанную на sdcard). Но, благодаря народным умельцам, у нас есть модифицированные рекавери, через которые можно устанавливать модифицированные (кастомные) прошивки, настраивать андроид, создавать резервные копии и многое другое. Наличие или отсутствие рекавери, а также его версия не влияют на работоспособность Андроид ОС (очень частый вопрос на форумах).
Раз уж зашла речь об интерфейсах, хочу рассказать о еще одном, довольно известном,- adb (android debug bridge). Это, так называемый, режим отладки и назван он так неспроста – через него можно отслеживать работу, как системы в целом, так и отдельных приложений. Но это еще не все, при помощи adb можно получить полный доступ к файловой системе устройства и изменять системные файлы или же вытянуть важную информацию, когда ваш девайс завис на загрузке. Все функции режима отладки описывать не буду т.к. моя цель донести общую информацию, а не подробный обзор о функциях того или иного режима.
3. Внутренности системы
Разобравшись с теорией, давайте запустим Андроид ОС.
Нажимаем кнопку питания — запускается Bootloader, который загружает Ядро (boot), оно, в свою очередь, запускает систему (System), ну, а она уже подгружает программы (data) и пользовательское пространство (user). (Рис.3)
А теперь перейдем в корневой каталог и посмотрим на внутренности самой Android OS:
В этой схеме я привел, только необходимые для ознакомления, директории. На самом деле их гораздо больше и на обзор только одной папки System понадобится целая статья.
И так, папка data. Как можно догадаться из названия, она как-то связана с данными, но с какими? Да практически со всеми, это и данные о синхронизации и аккаунтах, пароли к точкам доступа wifi и настройки vpn, и так далее. Среди всего прочего тут можно обнаружить папки app, data и dalvik—cache – рассмотрим их назначение:
- app – сюда устанавливаются программы и игры.
- data – здесь хранятся данные приложений, их настройки, сэйвы игр и прочая информация.
- dalvik—cache — программная область кэш-памяти для программы Dalvik. Dalvik это Java-виртуальная машина, которая является основой для работы программ, имеющих *.apk расширение. Для того, чтобы сделать запуск программ быстрее — создается их кэш.
Папка System хранит в себе системные данные и все необходимое для работы ОС. Давайте рассмотрим некоторые из этих папок:
- app – здесь находятся системные приложения (смс, телефон, календарь, настройки и т.п.), а так же приложения установленные производителем устройства (фирменные виджеты, живые обои и т.д.).
- fonts – системные шрифты
- media – содержит стандартные мелодии звонков, уведомлений, будильников и звуков интерфейса, а так же загрузочную анимацию (bootanimation)
- build.prop – Этот файл упоминается, чуть ли не первым, в разговорах и статьях о тонкой настройке системы. В нем содержится огромное количество настроек, таких как плотность экрана, время задержки сенсора приближения, управление wifi, имя и производитель устройства и многие другие параметры.
4. Root
— Знать что в какой папке это хорошо, но можно ли что-то с этим сделать?
— Да! Но нужны права суперпользователя (root) или, если проводить аналогию с Windows, права Администратора. Изначально все устройства на Андроид идут без root прав для конечного пользователя, т.е. покупая девайс, мы не являемся в нем полноценными хозяевами. Это сделано как для защиты от вредоносных программ, так и от самого пользователя – ведь, в неумелых руках, полный доступ к системе может привести к «смерти» операционной системы и последующей необходимости в перепрошивке устройства.
«Ну и в чем польза такой опасной штуки?» — спросите Вы.
- Возможность делать резервные копии данных и восстанавливать их после прошивки или случайного удаления.
- Тонкая настройка системы вручную или при помощи специальных программ.
- Удаление системных приложений, мелодий, обоев и т.п.
- Изменение внешнего вида ОС (например, отображение заряда батареи в процентах)
- Добавление функционала (поддержкаad—hocсетей, к примеру)
Данный список можно продолжать еще долго, но, думаю, данных примеров будет достаточно для представления о возможностях и широте применения root привилегий.
— Это все здорово, но теперь любая программа сможет получить доступ к «сердцу» операционки и моим данным?
— Нет. Вы сами решаете разрешить, тому или иному приложению, получить root доступ, или нет. Для этого существует программа Superuser или ее продвинутая сестра SuperSU. Без этой или подобной программы воспользоваться root не возможно.
Эпилог
Как видите, Андроид не такая уж и сложная штука. Надеюсь, после прочтения статьи, вы узнали что-то новое или получили ответ на давно интересовавший вопрос.
При использовании приложений под Android иногда появляются вопросы: «А где приложение хранит созданные файлы?», «Можно ли до них достучаться?» и «Удалятся ли файлы при удалении приложения?» Давайте попробуем посмотреть, где же приложение может хранить свои данные и какие последствия это имеет для пользователя.
Внутреннее хранилище данных
Смысл следует непосредственно из названия. Внутреннее хранилище (internal storage) располагается всегда в памяти смартфона вне зависимости от того, есть ли возможность установки карты памяти (и тем более того, вставлена ли она). Эта область памяти является защищенной. Находится в системном разделе /data. По умолчанию все файлы, которые там располагаются, доступны только тому приложению, которое их создало. Разумеется, можно сделать файлы доступными для других приложений, но это надо делать специально. Если приложение не открывает файлы для доступа извне, достучаться к ним можно будет только получив root.
Назначение хранилища понятно: внутренние защищенные данные, к которым не должно быть нерегламентированного доступа. Проблемы (с точки зрения пользователя) могут быть в следующих случаях:
- Неоправданно большой объем данных. Хочется вынести данные на карту памяти, чтобы сэкономить внутреннее пространство для других нужд, а приложение не дает.
- По мнению пользователя, регламент доступа к данным должен быть другим, не таким, как предлагает приложение.
Пример: приложение «Лекции по истории России». В приложении хороший контент (и по содержанию, и по качеству звука). Но сохраняется он во внутреннюю память. На бюджетных устройствах, где этой памяти мало, становится затруднительным закачать заранее много лекций, а потом, отключившись от интернета, слушать их. Второй проблемой становится собственно регламент доступа к данным. Даже если ограничиться тематикой истории, у меня есть аудиофайлы, полученные из трех источников: данное приложение, подкасты и аудиоверсии роликов с youtube. Хочется взять и объединить навек в их земной юдоли под владычеством всесильным Властелина Мордора их все в единый плейлист, и слушать его одним аудиоплеером. Но на смартфоне без root это сделать невозможно.
Внешнее хранилище «личных» данных
С точки зрения разработчика, кроме внутреннего хранилища данных, для персональных целей приложения есть еще внешнее хранилище. Оно необязательно размещается на карте памяти. Это может быть и внутренняя память смартфона, но весь раздел с такими данными размещается в общем доступе. В корне раздела есть папка Android/data, а в ней — подпапки с именами пакетов приложений.
Плюсы такого подхода очевидны: данные доступны извне для целей пользователя. А если это карта памяти, то и емкость может быть ограничена только вашими финансами (в продаже уже можно найти карты памяти на 400 гигабайт). Минусы тоже понятны: в любой момент любое приложение (конечно, имеющее разрешение на доступ к «внешним» данным) может взять и стереть чужие файлы. Также файлы будут удалены системой при удалении приложения (или при очистке его данных).
Пример приложения: подкаст-менеджер BeyondPod (более-менее свежей версии, раньше файлы хранились по-другому). Пользователь имеет доступ к скачанным подкастам и может легко удалять их (например, в целях экономии места) или слушать их во внешнем плеере.
Общее внешнее хранилище
Располагается в корне «внешнего» раздела на одном уровне с папкой «Android». Предназначается для хранения данных, разделяемых между разными приложениями. Обычно в документации Google в качестве примера приводят картинки (фото с камеры — папка DCIM). Основная проблема данных файлов: они никогда не удаляются автоматически. Даже если приложение вы удалили.
Пример: мессенджер Telegram. После того, как вы удалили приложение, загруженные файлы никуда не исчезают. Они продолжают спокойно лежать на накопителе данных, занимая драгоценное место.
Как можно удалить файлы, не удаляя приложения
Здесь важно ввести еще одну классификацию файлов приложений. Она справедлива для внутреннего хранилища и для внешнего хранилища личных данных. Все данные делятся на два типа: собственно данные и кэш.
Данные (папка data) — некие файлы, которые, по логике Google, нужны для постоянной работы с ними. Если полностью их удалить, то приложение поведет себя точно так же, как если бы его переустановили (удалили и заново установили). Частичное удаление файлов может не привести ни к каким неприятным последствиям. Но важно понимать, какие конкретно данные вы удаляете (например, очевидно, что скачанные файлы подкастов можно удалять совершенно свободно — это не повлияет на работоспособность подкаст-менеджера).
Кэш — временные данные, которые сформированы в ходе работы приложения и нужны для ускорения этой работы. Например, данные, которые часто нужны в интернете, загружаются и в дальнейшем вместо загрузки открываются локально (разумеется, кэш может обновляться, чтобы не показывать устаревшие данные). Удалять кэш любого приложения можно совершенно спокойно, это штатная операция.
Очистка памяти и кэша вызывается из настроек приложения. Кнопка «Очистить кэш» очищает только кэш, а кнопка «Очистить данные» — и кэш, и данные приложения.
Удаление файлов приложения из общего внешнего хранилища выполняется только вручную. Более того, даже оценка того, от какого приложения эти файлы остались, тоже выполняется вручную.
Вы пытались подключить Android-устройство к компьютеру, но оно не подключается? Мы знаем, как это неприятно. Хорошо, если ваше устройство на базе Windows автоматически обнаруживает ваш телефон Android. Но что, если это не так? Потому что иногда дела идут не так, как нужно. Если это произойдет, не расстраивайтесь. У вашей проблемы есть простое решение … узнайте, как установить драйвер USB для Android.
В этой статье мы научим вас, как с помощью 6 различных способов легко установить драйверы Android на свой компьютер. Но сначала… что такое драйвер USB?
Драйвер — это программа, которая обменивается данными с вашим телефоном для получения информации, необходимой приложению для выполнения ваших запросов. Он действует как мост между вашим ПК и устройством Android, так что оба они совместимы друг с другом, позволяя вам легко получать доступ друг к другу, передавать файлы с одного устройства на другое и так далее.
Теперь, когда вы знаете, что такое драйвер, следующий логичный вопрос: какова важность установки драйверов?
Если драйверы установлены правильно, вы можете передавать файлы, создавать резервные копии важных данных, рутировать устройство, запускать команды и делать другие вещи. Без драйверов компьютер под управлением Windows не сможет обнаружить ваше устройство Android. Это означает, что вы не сможете передавать файлы, документы, изображения, музыку и многое другое между вашим ПК и устройством Android. Возможно, вы не можете получить root-права на своем Android-устройстве.
Здесь, потому что…
При подключении смартфона или планшета Android через USB к компьютеру важно, чтобы были установлены правильные драйверы. Когда у вас есть эти драйверы, вы можете многое сделать.
Вот как правильно установить драйвер USB на Android. Следуйте подготовленным нами методам и шагам, и у вас все получится.
Что нужно для установки драйвера USB для Android
Для успешной и правильной установки драйвера вам необходимо иметь следующие основные вещи:
- Телефон или планшет Android
- ПК или Mac
- USB-кабель
- доступ в Интернет
- Базовые компьютерные знания
Как только у вас будет все готово, вы можете приступить к установке драйвера USB. Мы подготовили 6 методов, которые вы можете попробовать. Какой из них лучше, в конечном итоге будет зависеть от того, что работает лично для вас.
Метод 1: установите драйверы USB с помощью PdaNet
Вы можете установить драйвер USB для Android с помощью инструмента PdaNet, подход, который отлично работает для большинства гаджетов Android и поддерживает большинство операционных систем на базе Microsoft.
Что такое PdaNet?
Проще говоря, PdaNet — отличное приложение, которое позволяет подключать Интернет к компьютеру с помощью телефона Android. Когда вы устанавливаете этот инструмент, он устанавливает все необходимые драйверы для вашего телефона Android. Это создает платформу, позволяющую использовать преимущества при выполнении сложных задач на вашем телефоне, включая, помимо прочего, рутирование.
Чтобы установить драйверы USB для Android, вам необходимо загрузить последнюю версию PdaNet.
1. Отключите Android от ПК.
Убедитесь, что ваш Android-гаджет отключен от ПК.
2. Установите PdaNet
Откройте установочные файлы PdaNet для загрузки и установки приложения. Нажмите на. exe и нажмите «Выполнить» или «Да» на открывшемся экране.
3. Следуйте инструкциям мастера.
Нажмите «Далее. Следуйте инструкциям и при необходимости нажмите Далее. В конце концов, вы попадете в окно, информирующее вас об установке драйверов для вашего телефона.
4. Начать
Если установка функциональных драйверов для вашего телефона ранее была неудачной, эта установка предоставит вам возможность удалить ненужные драйверы и переустановить новые с помощью PdaNet. При появлении запроса нажмите Да. Иногда может возникнуть необходимость перезаписать предыдущие установки драйвера. Разрешить это.
5. Выберите устройство.
Выберите тип вашего устройства. Вам будет предложено выбрать ваше устройство. Если вашего гаджета Android нет в списке, выберите вариант «Другие» и нажмите «ОК».
6. Авторизовать
На этом этапе вы, скорее всего, увидите устрашающее диалоговое окно, в котором возникают вопросы о достоверности издателя программного обеспечения. Не паникуйте. Ничего страшного, не обращайте внимания на такие предупреждения и продолжайте процесс установки, выбрав «Установить». Если предупреждение появляется несколько раз, обязательно следуйте одному и тому же порядку действий, пока не завершите этот шаг.
Выберите Установить. Теперь, когда вы узнали, как успешно установить драйверы USB, необходимые для вашего гаджета Android, вы можете выбрать дополнительные действия, которые вы будете выполнять на своем смартфоне или планшете Android. Это включает в себя рут, передачу файлов или даже загрузку пользовательской прошивки.
Как проверить, установлен ли драйвер USB
Если вы не уверены, правильно ли был установлен драйвер USB, выполните следующие действия, чтобы вы могли проверить его самостоятельно.
1. Откройте командное окно.
Откройте окно командной строки, одновременно удерживая клавиши Windows + x на клавиатуре, а затем щелкнув Командная строка (администратор). Этот метод работает в Windows 10, но есть несколько способов открыть командное окно. Выберите Открыть командное окно.
2. Заходим в каталог
Теперь перейдите в каталог, в который было установлено программное обеспечение. Если вы установили программу установки от имени администратора, каталог должен быть C: / Program Files / AppInventor / commands-for-AppInventor в 32-разрядной системе или Program Files (x86) для 64-разрядной системы. Введите команду dir и убедитесь, что одним из перечисленных файлов является adb.exe. В противном случае вы находитесь в неправильном каталоге или программное обеспечение не было установлено.
3. Попробуйте
4. Проверьте список устройств.
Если в списке есть устройство, например HT99TP800054, телефон подключен, и компьютер может обмениваться данными с устройством Android. Если список устройств пуст, вам нужно будет вручную установить существующие драйверы, как в методе 3.
Метод 2: автоматическая установка драйверов USB
Этот метод очень прост, потому что ваш компьютер автоматически найдет драйвер для вас. Вам просто нужно щелкнуть файл драйвера после его полной загрузки и следовать инструкциям оттуда. Разрешите установку, а затем рекомендуется перезагрузить компьютер, чтобы завершить установку.
Метод 3: установка драйвера вручную
Установка драйверов вручную — это процесс, который различается почти для всех телефонов, но относительно прост. Скажем так, мы будем использовать Samsung в качестве производителя. Если ваше устройство поставляется с диском, вставьте его в дисковод для компакт-дисков и следуйте инструкциям.
1. Посетите сайт производителя.
Ссылка на сайт Samsung такая: Загрузки Samsung, но быстрый поиск в Google должен привести вас к вашему, если это другой производитель.
2. Выберите «Мобильные телефоны».
Он находится в разделе Mobile. Щелкните «Сотовые телефоны».
3. Выберите своего провайдера.
Найти оператора. Выберите вашего провайдера.
4. Найдите номер модели.
Как видно на изображении на сайте, номер модели указан на задней панели телефона.
7. Загрузите файл.
Щелкните загружаемый файл и выберите «Да», чтобы разрешить внесение изменений в ваш компьютер. Должен появиться мастер, который проведет вас через установку.
8. Продолжайте работу с мастером.
Вам нужно будет дважды нажать «Далее», а затем «Установить».
Метод 4: установите ADB и Fastboot вместе с соответствующими драйверами
Вместо того, чтобы загружать весь ADT (Android Developer Tools) размером в 500 МБ, используйте этот метод, для которого требуется менее 10 МБ памяти. Поскольку он легче, его установка обычно занимает всего несколько секунд. Вам по-прежнему потребуется соответствующий драйвер Windows из способов 1, 2 или 3.
1. Загрузите универсальный установщик.
Начните с загрузки ADB / Fastboot. Вы можете найти ссылку ниже.
2. Запускаем от имени администратора
После загрузки щелкните по нему и запустите от имени администратора.
3. Введите Y и нажмите Enter.
Это позволяет установку и устанавливает переменные среды. Тип Y.
4. Повторить
Повторите шаг 3, чтобы запустить общесистемную установку, или введите N, чтобы отклонить.
5. Повторить
На этот раз вы устанавливаете драйверы.
6. Продолжить
Откроется мастер установки драйвера устройства. Щелкните Далее, чтобы продолжить. Подождите, пока волшебник закончит делать свое дело. Это займет всего несколько секунд.
Метод 5: установите только драйверы ADB и Fastboot
Если на данный момент вам не обязательно нужна полная установка ADB / Fastboot, этот метод — ваш лучший вариант. Это загрузит только те драйверы, которые вам нужны.
Вот как вы можете установить эти драйверы.
Опять же, вам нужно будет скачать ADB / Fastfood. Для этого щелкните ссылку ниже.
2. Запуск от имени администратора
Как и в предыдущем методе, щелкните файл правой кнопкой мыши и выберите «Запуск от имени администратора».
3. Введите N
Введите N, чтобы отказаться от установки ADB / Fastboot. Если ввести N для «нет», этот шаг будет пропущен. Тип N.
4. Нажмите Y
Нажмите Y (Да), чтобы установить драйверы. Мастер установки драйвера устройства запустится. Выберите «Далее».
5. Щелкните Далее.
Метод 6: установите драйвер интерфейса загрузчика Android
Если у вас все еще возникают проблемы с более традиционными драйверами, вы можете попробовать этот метод. Вот вам сайт.
1. Перейдите на сайт Semantic.GS.
2. Прокрутите до параметров загрузки.
Если вы уже точно знаете, какая у вас операционная система, вы можете использовать раскрывающийся список, чтобы выбрать ее. Если вы не знаете свою ОС и все в порядке с интерфейсом загрузчика Android е если обновляются другие устаревшие драйверы, перейдите вправо. Выберите тип вашей операционной системы.
Нажмите соответствующую кнопку «Загрузить», как описано в шаге 2.
Установите драйвер USB — синхронизируйте свои устройства
Если вас беспокоят будущие обновления для вашего драйвера, вы можете настроить Центр обновления Windows на автоматическую установку рекомендуемых обновлений. Другое дело, если вы используете USB-концентратор, попробуйте подключить ваше устройство напрямую к одному из USB-портов вашего компьютера.
Теперь, когда вы готовы, вы можете заняться передачей всех видов данных между устройствами!
Какой метод лучше всего подошел вам? Были ли у вас проблемы во время или после? Присылайте нам свои мысли по всем этим темам!
Читайте также: