View data sd card android

Содержание
  1. Инструкция по использованию SD-карты в устройстве с ОС Android
  2. Установка SD-карты в слот android-устройства
  3. Шаг 1. Как правильно установить карту памяти
  4. Шаг 2. Как включить карту памяти sd
  5. Использование SD-карты
  6. Как перенести приложения на карту памяти
  7. Как перенести файлы с телефона на карту памяти Андроид
  8. Шаг 1. Копирование сохраненных в телефоне файлов на внешний накопитель
  9. Шаг 2. Удаление файлов, сохраненных во внутреннем накопителе смартфона.
  10. Просмотр файлов или приложений, сохраненных на карте памяти
  11. Форматирование съемного накопителя
  12. Отключение и извлечение карты памяти
  13. Шаг 1. Отключение карты памяти
  14. Использование карты памяти /sdcard/ приложениями в Android
  15. Android: извлекаем данные с зашифрованной SD-карты и получаем доступ к скрытым методам
  16. Содержание статьи
  17. Почитать
  18. Как Android обеспечивает безопасность
  19. Как работают атаки класса Cloak & Dagger
  20. Как получить доступ к зашифрованной карте памяти
  21. Как обойти ограничения на доступ к внутренним библиотекам и методам
  22. Описание уязвимостей в Android Download Provider

Инструкция по использованию SD-карты в устройстве с ОС Android

Илья – главный редактор сайта softdroid.net. Является автором нескольких сотен руководств и статей по настройке Android. Около 15 лет занимается ремонтом техники и решением технических проблем iOS и Android. Имел дело практически со всеми более-менее популярными марками мобильных смартфонов и планшетов Samsung, HTC, Xiaomi и др. Для тестирования используется iPhone 12 и Samsung Galaxy S21 с последней версией прошивки.

Некоторые устройства на операционной системе Android имеют слот под карту памяти, чаще всего, формата microSD. Если у вас одно из таких устройств, это позволит:

  • хранить большее количество информации за счет увеличения объема памяти;
  • переносить некоторые приложения из внутреннего накопителя смартфона на SD-карту без потери их функционала.

Найти информацию о наличии слота под карту памяти sd можно на странице вашего устройства на сайте компании-производителя.

Некоторые из функций sd карты доступны только в устройствах с версией Android 6.0 и выше.

Установка SD-карты в слот android-устройства

Шаг 1. Как правильно установить карту памяти

  1. Определите расположение слота под сд карту в вашем устройстве.
  2. Выключите устройство.
  3. Извлеките слот или откройте заднюю панель устройства. Если это необходимо, приподнимите держатель карты памяти.
  4. Установите карту в нужное положение. Опустите держатель, если это необходимо.
  5. Верните слот и/или заднюю панель устройства в исходное положение.

Шаг 2. Как включить карту памяти sd

1. После включения телефона вы получите уведомление об установке карты памяти.

2. Кликните кнопку «Настроить».

3. Выберите один из вариантов настройки памяти:

  • Съемный накопитель. При выборе этого пункта можно сохранять файлы (музыку, фото и т.п.), переносить их с sd-картой на любое устройство, имеющее слот под карту, без потери сохраненной информации. Перенос приложений в этом случае не предусмотрен.
  • Внутренняя память. Выбирая этот пункт, вы получаете возможность сохранить приложения на дополнительном накопителе, но использовать их можно только на этом устройстве. После переноса сд карты в другое устройство она будет очищена.

4. Проведите дальнейшую настройку по подсказкам, возникающим на дисплее телефона.

5. Когда настройки памяти будут завершены, нажмите кнопку «Готово».

Использование SD-карты

Как перенести приложения на карту памяти

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

Зайдите в настройки своего устройства.

Найдите пункт «Приложения».

Выберите, что именно хотите сохранить на карте памяти.

Выберите пункт «Хранилище».

Зайдите в раздел «Использовано» и кликните кнопку «Изменить».

Выберите пункт «SD-карта».

Проведите дальнейшую настройку по подсказкам, возникающим на дисплее вашего смартфона.

Как перенести файлы с телефона на карту памяти Андроид

Если во время настройки вы выбрали пункт «Съемный накопитель», это дает возможность переместить сохраненные на вашем телефоне файлы (музыку или фото и т.п.) на sd-карту, таким образом, освободив внутреннее хранилище смартфона.

Шаг 1. Копирование сохраненных в телефоне файлов на внешний накопитель

  1. Зайдите в настройки своего устройства.
  2. Кликните пункт «Память».
  3. Кликните пункт «Внутренняя память».
  4. Выберите, какой тип файлов вам нужно переместить.
  5. Долгим нажатием выберите те файлы, которые вам нужно отправить на внешний накопитель.
  6. Нажмите на три точки (⋮), выберите пункт «Скопировать в. ».
  7. Выберите пункты Сохранить → SD-карта.
  8. Выберите папку, в которой хотите сохранить файлы.
  9. Скопируйте выбранные файлы.

Шаг 2. Удаление файлов, сохраненных во внутреннем накопителе смартфона.

  1. Зайдите в настройки своего устройства.
  2. Выберите «Память».
  3. Выберите пункт «Внутренняя память».
  4. Выберите, какой тип файлов вы хотите удалить.
  5. Долгим нажатием выберите те файлы, которые нужно удалить.
  6. Выберите значок корзины.

Просмотр файлов или приложений, сохраненных на карте памяти

На телефоне можно просматривать список всех файлов, приложений. Кроме того, Андроид позволяет узнать, сколько свободного места осталось на sd-карте.

Если при настройке накопителя был выбран пункт «Внутренняя память»

  1. Зайдите в настройки своего устройства.
  2. Выберите «Память».
  3. В списке выберите карту памяти.
  4. Теперь можно увидеть количество использованного места, а также, сколько памяти накопителя еще свободно. Выбирая различные категории, вы можете просматривать, какие именно файлы скачаны на sd карту.

Если при настройке накопителя был выбран пункт «Съемный накопитель»

  1. Вытащите панель управления движением пальца по экрану смартфона сверху вниз.
  2. Нажмите кнопку «Открыть» под активным уведомлением об установке карты памяти.
Читайте также:  Использовать андроид как мышку для андроида

Форматирование съемного накопителя

  1. Зайдите в настройки своего устройства.
  2. Выберите пункт «Память».
  3. В списке меню нажмите пункт sd-карта.
  4. Нажмите на три точки (⋮), выберите пункты Настройки → Формат.
  5. Выберите пункт «Очистить и отформатировать» — это удалит все сохраненные приложения/файлы, хранившиеся в памяти внешнего накопителя.

Отключение и извлечение карты памяти

Чтобы не повредить данные, сохраненные на съемном накопителе, перед извлечением его необходимо безопасно отключить!

Шаг 1. Отключение карты памяти

  1. Зайдите в настройки своего устройства.
  2. Выберите пункт «Память».
  3. Выберите пункт «Извлечь».

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

Источник

Использование карты памяти /sdcard/ приложениями в Android

Друзья, поклонники зеленых роботов, разработчики приложений, просто пользователи:
как Вы используете карту памяти /sdcard/ в Вашем Android-девайсе?

Рассмотрим, для начала данный вопрос на примере большинства рядовых пользователей устройства под управлением ОС Андроид:

Как и многие, я устанавливаю приложения на карту памяти — для экономии места в самом телефоне, но сами приложения, их кеши и т.д. — все это сохраняется прямо в корень карты памяти, в итоге я получаю на карте полную «кашу»:
огромное количество папок и т.д. среди которых достаточно неудобно (как через ФМ так и при подключении к ПК) искать нужные мне файлы, папки и т.д. Понятно, что можно обойтись костылями и, например, добавить мои папки в «избранное» в том же ФМ и т.д., но вопрос в другом.
Почему изначально большинство приложений устанавливаются на карту памяти так:

или, например, так:

или на худой конец — есть же скрытая системная
/sdcard/.android_secure
(понятно, что туда не всегда есть доступ и т.д., но все таки)

В итоге: что же получает юзер?
Среднестатистический юзер устанавливает достаточно много приложений и, зачастую, для экономии места, перемещает их на карту памяти. Все хорошо, но до того момента, когда нам вдруг понадобилось найти свой собственные документы на карте памяти, тут мы подключаем девайс с ПК в режиме карты памяти или же через ФМ самого смартфона заходим сюда: /sdcard/
И что же мы видим?
Да вот что:
habrastorage.org/storage1/e5deae9f/54a3c20b/8ba76329/55414a1a.jpg

Напрашивается, закономерный вопрос: почему так?
Насколько я понимаю, причины две:
1) это сама компания google, точнее ее политика в отношении это аспекта, то есть действия разработчиков программ никак тут не ограничены (тем же условием опубликования программы на market’e и т.д.)
2) разработчики программ, которые пишут софт, зачастую, создающий массу папок в корне /sdcard/

Ну и для любопытства ради воспользуемся любимым поиском:
habrahabr.ru/blogs/android_development/111868
Например тут указан некий Стандарт разработки приложений под Android
из которого четко следует:
Корневой каталог для всех файлов пользователя, кроме временных:
/sdcard/название проекта/, например /sdcard/TalentMania/

Каталог для музыки:
/sdcard/название проекта/sound/, например /sdcard/TalentMania/sound/
Каталог для MIDI:
/sdcard/название проекта/midi/, например /sdcard/TalentMania/midi/
Каталог для графики:
/sdcard/название проекта/img/, например /sdcard/TalentMania/img/

Подкаталоги для файлов различных активити:
/sdcard/название проекта/img/название активити/, например /sdcard/TalentMania/img/guitar/

И т.д.
Никаких претензий я разработчикам или вообще кому либо не предъявляю.
Просто хочу задать два вопроса:
1) Почему так? Почему все «сваливается» в корень карты памяти?
2) Одному мне это чертовски неудобно?

Спасибо за внимание!

PS: а пока юзеры выдают просто шедевральные методы облегчения использвания карты памяти:
открываешь карту памяти и создаешь
_Видео
_Документы
_Музыка
_Прочее
|-Карты
|-и т.д.
_Фото
как результат, то что мне нужно, хотя бы всегда сверху
как в телефоне
так и на ПК

Источник

Android: извлекаем данные с зашифрованной SD-карты и получаем доступ к скрытым методам

Содержание статьи

Сегодня в выпуске: обзор систем безопасности Android, объяснение атак типа Cloak & Dagger, гайд по извлечению данных с зашифрованной карты памяти, обход ограничений на загрузку нативных библиотек и доступ к скрытым Java-методам, уязвимость в Android Download Provider. А также: несколько инструментов пентестера и подборка библиотек для программистов.

Почитать

Как Android обеспечивает безопасность

The Android Platform Security Model — написанный сотрудниками Google вайтпейпер, посвященный теории и практике реализации подсистем безопасности в Android. В документе много воды, но есть и хоть и не новая, но полезная новичкам информация. Наиболее интересные моменты:

  • Android использует три вида аутентификации (проще говоря: метода разблокировки экрана) с разным уровнем надежности и, соответственно, уровнем доступа: 1) пароль или пин-код — считается наиболее надежным и поэтому дает полный контроль над устройством без всяких ограничений; 2) отпечаток пальца или снимок лица — менее надежный, поэтому система запрашивает пароль после каждой перезагрузки телефона, а также через каждые 72 часа; 3) аутентификация по местоположению или близости определенного Bluetooth-устройства — наименее надежный метод, поэтому на него накладываются те же ограничения, что и на биометрический метод, плюс он не позволяет получить доступ к аутентификационным ключам Keymaster (например, тем, что используются для платежей), а принудительный запрос пароля происходит не через 72 часа, а уже через четыре.
  • Песочницы (изолированная среда исполнения) для приложений в Android реализованы с помощью запуска каждого приложения от имени созданного специально для него Linux-пользователя. Приложение имеет полный контроль над файлами своей песочницы ( /data/data/имя_пакета ), но не может получить доступ к файлам других приложений и многим системным файлам. Система также использует UID (идентификатор пользователя) для контроля полномочий приложения.
  • Контроль доступа на основе UID не распространяется на карты памяти и USB-накопители, так как зачастую они используют файловую систему FAT, которая не позволяет назначить права доступа к файлам. Чтобы решить эту проблему, Android использует виртуальную файловую систему (sdcardfs), которая подключается к каталогу /sdcard/Android . Приложения могут хранить данные внутри нее без опасения, что другие приложения получат к ним доступ. Также Android позволяет подключить карту памяти в режиме Adoptable Storage, когда SD-карта форматируется в зашифрованную ФС ext4 и становится частью внутреннего хранилища данных.
  • Единственный способ покинуть песочницу — получить права root. В Linux пользователь root имеет неограниченный доступ к файловой системе (ядро отключает любые проверки доступа для этого пользователя).
  • Для защиты ключей шифрования/аутентификации Android и приложения могут использовать Keymaster. Это подсистема, позволяющая хранить данные в TEE (Trusted Execution Environment), специальном микрокомпьютере внутри SoC, к которому имеет доступ только система. TEE позволяет защитить данные даже в том случае, если злоумышленник получил права root. Начиная с девятой версии Android также поддерживает StrongBox, выделенный чип TEE, разработанный самой Google. Он позволяет защититься от атак класса Rowhammer.
  • Для защиты от эксплуатации уязвимостей в системных компонентах Android использует SELinux, подсистему ядра Linux, позволяющую более тонко управлять правами доступа, а также контролировать доступ процессов к системным вызовам. К примеру, обнаружив в одном из системных компонентов уязвимость, взломщик может попытаться принудить этот компонент выполнить системный вызов exec для запуска root shell, но, если правила SELinux запрещают это делать данному компоненту, вызов будет отклонен.
  • Начиная с седьмой версии Android способен гарантировать, что ни операционная система, ни загрузчик не были скомпрометированы. Такая проверка называется Verified Boot и выполняется на этапе загрузки: сначала загрузчик сверяет контрольную сумму раздела boot, затем один из следующих компонентов загрузки сверяет контрольные суммы файлов в разделе system. Тот же механизм используется для защиты от отката на предыдущую версию прошивки, которая может содержать уязвимости. Производители вольны сами выбирать, как должна повести себя система в случае обнаружения нарушения: вывести на экран предупреждающее сообщение или прекратить загрузку.
Читайте также:  Асус андроид мтп девайс

Как работают атаки класса Cloak & Dagger

Cloak and Dagger — Mobile Malware Techniques Demystified — небольшая заметка о том, как работают атаки класса Cloak & Dagger. Мы писали об этом типе атак еще в 2017 году, но тогда рассмотрели только одну из них: кейлоггер, не требующий дополнительных прав в системе. Эта статья посвящена другой атаке, позволяющей заставить пользователя включить настройку доступа к AccessibilityService (позволяет перехватывать любые нажатия пользователя и нажимать кнопки интерфейса за него), замаскировав переключатель под нечто безобидное.

Атака использует разрешение SYSTEM_ALERT_WINDOW, которое приложения из Google Play получают автоматически. SYSTEM_ALERT_WINDOW позволяет выводить элементы интерфейса поверх других приложений, то есть реализовать такие вещи, как плавающие окна, меню, панели управления. Создатели вирусов быстро смекнули, что эту возможность можно использовать для перекрытия текущего окна на экране и обмана пользователя, поэтому с версией Android 5 Google выкатила защиту, которая проверяет, не был ли перекрыт какой-либо опасный для включения элемент интерфейса оверлеем, и отказывается его включить, если это так. Поэтому Cloak & Dagger вместо одного оверлея на весь экран создает несколько небольших и выкладывает их вокруг элемента управления, так что в результате защита не срабатывает.

Обход защиты на включение AccessibilityService с помощью трех-четырех оверлеев

Атака работает на Android версий 4.4.4–7.1.2, исходный код доступен.

В дополнение можно отметить еще одну статью на смежную тему: Android Toast Overlay Attack: “Cloak and Dagger” with No Permissions. Ее авторы пошли еще дальше и реализовали ту же атаку вообще без использования разрешения SYSTEM_ALERT_WINDOW. Вместо него они засунули все оверлеи в toast-сообщение, то самое, которое позволяет выводить в нижней части экрана информационные сообщения. Как оказалось, такие сообщения тоже представляют собой полноценные полноэкранные окна, большая часть которых прозрачна. И у приложения есть доступ к этому окну и возможность его изменять.

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

Recovering data from a failing Android adoptable storage — статья о том, как восстановить данные с карты памяти, отформатированной с помощью механизма Adoptable Storage. В отличие от обычного подключения SD-карты, Adoptable Storage создает на карте памяти зашифрованный том, форматирует его в файловую систему ext4, а затем подключает ее к основному хранилищу данных так, что на нее можно сохранять не только фотки с пляжа, но и приложения, их данные и любую другую информацию, которая обычно хранится только во внутренней памяти устройства. Другими словами, Adoptable Storage позволяет расширить встроенную память устройства.

Но есть одна, а точнее две смежные проблемы: 1) если вставить карту памяти в другой телефон — он ее не увидит из-за отсутствия ключа для расшифровки данных; 2) если что-то пойдет не так (например, карта памяти начнет сбоить), восстановить данные с нее не получится, точнее получится, но через одно место. Как через это место восстанавливать данные, описано в статье.

Читайте также:  Android app alarm system

Для начала на телефоне необходимо получить права root. Затем подключить карту памяти к Linux-машине (macOS тоже должна подойти, но действия описаны именно для Linux) и снять ее образ. Обычный dd в этом случае не подойдет, так как, если карта памяти начала сбоить, он, скорее всего, вывалится с ошибкой Input/output error. Выручит ddrescue, который предназначен как раз для таких случаев:

Далее необходимо извлечь из памяти устройства ключ шифрования (на устройствах с активным модулем TEE такой трюк, скорее всего, не пройдет):

Используем полученный ключ, чтобы смонтировать файловую систему:

Это все. Далее автор рассказывает, как залить файлы на другую карту памяти и изменить размер файловой системы. Про это можно прочитать в оригинальной статье. Также стоит отметить, что если карты памяти одинакового объема, то можно вообще не заморачиваться с подключением файловой системы на компе и копированием ключа, а просто залить полученный на первом шаге образ на новую карту памяти с помощью того же ddrescue:

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

Android Runtime Restrictions Bypass — статья о том, как обойти ограничения на доступ к внутренним библиотекам и методам Android.

Начиная с Android 7 Google ввела ограничения на прямую загрузку нативных системных библиотек (например, /system/lib/libart.so ). Позже, уже в релизе Android 9, появилось ограничение на доступ к определенным скрытым методам, которые раньше можно было вызывать с помощью рефлексии. Как оказалось, эти механизмы достаточно просто обойти.

Принцип работы механизма, ограничивающего загрузку библиотек, построен на пространствах имен. Если JNI-библиотека приложения попытается загрузить библиотеку, которая расположена за пределами каталогов /data , /mnt/expand или в песочнице самого приложения, оно будет завершено с такой ошибкой:

Проверка осуществляется в лоадере библиотек ( /system/bin/linker ), который создает для каждой JNI-библиотеки приложения структуру soinfo, которая хранит информацию о ней и пространствах имен, к которым она может получить доступ:

Все структуры soinfo размещены в мэпе g_soinfo_handles_map.

Интересно здесь то, что g_soinfo_handles_map — это экспортированная статическая переменная. Поэтому с помощью символьной таблицы ELF можно найти базовый адрес /system/bin/linker , рассчитать адрес g_soinfo_handles_map JNI-библиотеки и изменить структуру soinfo, добавив нужные пути в доступное ей пространство имен:

После этого попытка загрузить библиотеку будет успешной:

Ограничение доступа к внутренним методам Java API, предназначенным только для использования системными компонентами, реализовано иначе, а именно с помощью прямых проверок на доступ. Например, функция GetStaticMethodID, используемая для доступа к Java-методам из JNI-библиотеки, вызывает функцию FindMethodID, которая в том числе проверяет, доступен ли данный метод:

ShouldBlockAccessToMember() в конечном итоге вызывает метод Runtime::GetHiddenApiEnforcement(), который сообщает, стоит ли отклонить вызов или нет. При этом система может либо пропустить его без вопросов, либо вывести предупреждение, либо использовать черный и серый списки, которые содержат имена запрещенных к использованию методов.

Чтобы отключить проверку, мы должны перевести рантайм в режим «пропускать без вопросов» (EnforcementPolicy::kNoChecks), но для этого нам нужен доступ к самому рантайму:

Однако в этом случае компилятор (а точнее, линковщик) будет вынужден импортировать символ art::Runtime::instance_ в JNI-библиотеку, то есть слинковать ее с libart.so. И здесь мы столкнемся с ограничением пространства имен, а предложенный ранее метод его обхода не сработает, так как мы не сможем изменить пространство имен раньше, чем в память загрузится libart.so.

Но есть другой способ получить доступ к рантайму. Дело в том, что метод JNI_OnLoad, который запускается при загрузке JNI-библиотеки, в качестве первого аргумента получает указатель на art::JavaVMExt, который имеет метод GetRuntime(). Так что все, что нам остается, — это получить доступ к рантайму и отключить проверку:

Примечательно, что команда Android security team не считает описанные методы обхода нарушением безопасности (мол, не для безопасности они были придуманы), поэтому быстро дала согласие на обнародование информации и публикацию исходного кода PoC.

Описание уязвимостей в Android Download Provider

Multiple Vulnerabilities in Android’s Download Provider — статья исследователя, нашедшего три уязвимости в Android: CVE-2018-9468, CVE-2018-9493 и CVE-2018-9546. Все они затрагивают Download Content Provider, компонент, позволяющий любому приложению запустить загрузку файла из интернета так, чтобы пользователь видел уведомление с прогрессом загрузки.

  • CVE-2018-9468. Первая уязвимость заключается в том, что Download Content Provider позволяет увидеть любые другие загрузки, происходящие на устройстве, а не только свои собственные. Используя URL вида content://downloads/public_downloads/# , зловредное приложение может подобрать загрузку по номеру и, например, прочитать загруженный файл или подменить его сразу после загрузки. Причем это относится как к обновлениям ПО, так и к загрузкам из Google Play. Исходный код примера.
  • CVE-2018-9493. Вторая уязвимость — SQL-инъекция, позволяющая получить доступ к закрытым столбцам таблицы (например, CookieData). Исходный код примера.
  • CVE-2018-9546. Третья уязвимость позволяет извлечь HTTP-заголовки (могут включать аутентификационные данные и кукисы) для любой загрузки. Уязвимость использует тот же трюк, что и первая. Исходный код примера.

Данные уязвимости были исправлены в сентябрьском и ноябрьском security-патчах.

Источник

Оцените статью