Как перезаписать файл на андроид
Иногда некоторые приложения на Android чем-то не устраивают пользователя. В качестве примера можно привести назойливую рекламу. А то бывает и так — всем хороша программа, да только перевод в ней или кривой, или вовсе отсутствует. Или, например, программа триальная, а получить полную версию возможности нет. Как же изменить ситуацию?
Введение
В этой статье мы поговорим о том, как разобрать пакет APK с приложением, рассмотрим его внутреннюю структуру, дизассемблируем и декомпилируем байт-код, а также попробуем внести в приложения несколько изменений, которые могут принести нам ту или иную выгоду.
Чтобы сделать все это самостоятельно, потребуются хотя бы начальные знания языка Java, на котором пишутся приложения для Android, и языка XML, который используется в Android повсеместно — от описания самого приложения и его прав доступа до хранения строк, которые будут выведены на экран. Также понадобится умение обращаться со специализированным консольным софтом.
Итак, что же представляет собой пакет APK, в котором распространяется абсолютно весь софт для Android?
Декомпиляция приложений
В статье мы работали только с дизассемблированным кодом приложения, однако если в большие приложения вносить более серьезные изменения, разобраться в коде smali будет гораздо сложнее. К счастью, мы можем декомпилировать код dex в Java-код, который будет хоть и не оригинальным и не компилируемым обратно, но гораздо более легким для чтения и понимания логики работы приложения. Чтобы сделать это, нам понадобятся два инструмента:
Использовать их следует так. Сначала запускаем dex2jar, указывая в качестве аргумента путь до apk-пакета:
В результате в текущем каталоге появится Java-пакет mail.jar, который уже можно открыть в jd-gui для просмотра Java-кода.
Устройство APK-пакетов и их получение
Пакет приложения Android, по сути, является обычным ZIP-файлом, для просмотра содержимого и распаковки которого никаких специальных инструментов не требуется. Достаточно иметь архиватор — 7zip для Windows или консольный unzip в Linux. Но это что касается обертки. А что внутри? Внутри же у нас в общем случае такая структура:
- META-INF/ — содержит цифровой сертификат приложения, удостоверяющий его создателя, и контрольные суммы файлов пакета;
- res/ — различные ресурсы, которые приложение использует в своей работе, например изображения, декларативное описание интерфейса, а также другие данные;
- AndroidManifest.xml — описание приложения. Сюда входит, например, список требуемых разрешений, требуемая версия Android и необходимое разрешение экрана;
- classes.dex — компилированный байт-код приложения для виртуальной машины Dalvik;
- resources.arsc — тоже ресурсы, но другого рода — в частности, строки (да-да, этот файл можно использовать для русификации!).
Перечисленные файлы и каталоги есть если не во всех, то, пожалуй, в абсолютном большинстве APK. Однако стоит упомянуть еще несколько не столь распространенных файлов/каталогов:
- assets — аналог ресурсов. Основное отличие — для доступа к ресурсу необходимо знать его идентификатор, список asset’ов же можно получать динамически, используя метод AssetManager.list() в коде приложения;
- lib — нативные Linux-библиотеки, написанные с помощью NDK (Native Development Kit).
Этот каталог используют производители игр, помещая туда движок игры, написанный на C/C++, а также создатели высокопроизводительных приложений (например, Google Chrome). С устройством разобрались. Но как же получить сам файл пакета интересующего приложения? Поскольку без рута с устройства забрать файлы APK не представляется возможным (они лежат в каталоге /data/app), а рутить не всегда целесообразно, имеется как минимум три способа получить файл приложения на компьютер:
- расширение APK Downloader для Chrome;
- приложение Real APK Leecher;
- различные файлообменники и варезники.
Какой из них использовать — дело вкуса; мы предпочитаем использовать отдельные приложения, поэтому опишем использование Real APK Leecher, тем более что написан он на Java и, соответственно, работать будет хоть в винде, хоть в никсах.
Настройка Real APK Leecher
Просмотр и модификация
Допустим, ты нашел интересующий тебя пакет, скачал, распаковал… и при попытке просмотра какого-нибудь XML-файла с удивлением обнаружил, что файл не текстовый. Чем же его декомпилировать и как вообще работать с пакетами? Неужели необходимо ставить SDK? Нет, SDK ставить вовсе не обязательно. На самом деле для всех шагов по распаковке, модификации и упаковке пакетов APK нужны следующие инструменты:
Использовать все эти инструменты можно и по отдельности, но это неудобно, поэтому лучше воспользоваться более высокоуровневым софтом, построенным на их основе. Если ты работаешь в Linux или Mac OS X, то тут есть инструмент под названием apktool. Он позволяет распаковывать ресурсы в оригинальный вид (в том числе бинарные XML- и arsc-файлы), пересобирать пакет с измененными ресурсами, но не умеет подписывать пакеты, так что запускать утилиту signer придется вручную. Несмотря на то что утилита написана на Java, ее установка достаточно нестандартна. Сначала следует получить сам jar-файл:
Далее нам понадобится скрипт-обвязка для запуска apktool (он, кстати, доступен и для Windows), включающий в себя еще и утилиту aapt, которая понадобится для запаковки пакета:
Далее просто сваливаем содержимое обоих архивов в каталог
/bin и добавляем его в $PATH:
Если же ты работаешь в Windows, то для нее есть превосходный инструмент под названиемVirtuous Ten Studio, который также аккумулирует в себе все эти инструменты (включая сам apktool), но вместо CLI-интерфейса предоставляет пользователю интуитивно понятный графический интерфейс, с помощью которого можно выполнять операции по распаковке, дизассемблированию и декомпиляции в несколько кликов. Инструмент этот Donation-ware, то есть иногда появляются окошки с предложением получить лицензию, но это, в конце концов, можно и потерпеть. Описывать его не имеет никакого смысла, потому что разобраться в интерфейсе можно за несколько минут. А вот apktool, вследствие его консольной природы, следует обсудить подробнее.
Импорт APK в Virtuous Ten Studio
Рассмотрим опции apktool. Если вкратце, то имеются три основные команды: d (decode), b (build) и if (install framework). Если с первыми двумя командами все понятно, то что делает третья, условный оператор? Она распаковывает указанный UI-фреймворк, который необходим в тех случаях, когда ты препарируешь какой-либо системный пакет.
Рассмотрим наиболее интересные опции первой команды:
- -s — не дизассемблировать файлы dex;
- -r — не распаковывать ресурсы;
- -b — не вставлять отладочную информацию в результаты дизассемблирования файла dex;
- --frame-path — использовать указанный UI-фреймворк вместо встроенного в apktool. Теперь рассмотрим пару опций для команды b:
- -f — форсированная сборка без проверки изменений;
- -a — указываем путь к aapt (средство для сборки APK-архива), если ты по какой-то причине хочешь использовать его из другого источника.
Пользоваться apktool очень просто, для этого достаточно указать одну из команд и путь до APK, например:
После этого в каталоге mail появятся все извлеченные и дизассемблированные файлы пакета.
Препарирование. Отключаем рекламу
Теория — это, конечно, хорошо, но зачем она нужна, если мы не знаем, что делать с распакованным пакетом? Попробуем применить теорию с пользой для себя, а именно модифицируем какую-нибудь софтину так, чтобы она не показывала нам рекламу. Для примера пусть это будет Virtual Torch — виртуальный факел. Для нас эта софтина подойдет идеально, потому что она под завязку набита раздражающей рекламой и к тому же достаточно проста, чтобы не потеряться в дебрях кода.
Поиск кода рекламы в jd-gui
Итак, с помощью одного из приведенных способов скачай приложение из маркета. Если ты решил использовать Virtuous Ten Studio, просто открой APK-файл в приложении и распакуй его, для чего создай проект (File -> New project), затем в контекстном меню проекта выбери Import File. Если же твой выбор пал на apktool, то достаточно выполнить одну команду:
После этого в каталоге com.kauf.particle.virtualtorch появится файловое дерево, похожее на описанное в предыдущем разделе, но с дополнительным каталогом smali вместо dex-файлов и файлом apktool.yml. Первый содержит дизассемблированный код исполняемого dex-файла приложения, второй — служебную информацию, необходимую apktool для сборки пакета обратно.
Первое место, куда мы должны заглянуть, — это, конечно же, AndroidManifest.xml. И здесь мы сразу встречаем следующую строку:
Нетрудно догадаться, что она отвечает за предоставление приложению полномочий на использование интернет-соединения. По сути, если мы хотим просто избавиться от рекламы, нам, скорее всего, достаточно будет запретить приложению интернет. Попытаемся это сделать. Удаляем указанную строку и пробуем собрать софтину с помощью apktool:
В каталоге com.kauf.particle.virtualtorch/build/ появится результирующий APK-файл. Однако установить его не получится, так как он не имеет цифровой подписи и контрольных сумм файлов (в нем просто нет каталога META-INF/). Мы должны подписать пакет с помощью утилиты apk-signer. Запустили. Интерфейс состоит из двух вкладок — на первой (Key Generator) создаем ключи, на второй (APK Signer) подписываем. Чтобы создать наш приватный ключ, заполняем следующие поля:
- Target File — выходной файл хранилища ключей; в нем обычно хранится одна пара ключей;
- Password и Confirm — пароль для хранилища;
- Alias — имя ключа в хранилище;
- Alias password и Confirm — пароль секретного ключа;
- Validity — срок действия (в годах). Значение по умолчанию оптимально.
Остальные поля, в общем-то, необязательны — но необходимо заполнить хотя бы одно.
Создание ключа в apk-signer
WARNING
Чтобы подписать приложение с помощью apk-signer, ты должен установить Android SDK и указать полный путь до него в настройках приложения.
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Теперь этим ключом можно подписать APK. На вкладке APK Signer выбираем только что сгенерированный файл, вводим пароль, алиас ключа и пароль к нему, затем находим файл APK и смело жмем кнопку «Sign». Если все пройдет нормально, пакет будет подписан.
Так как мы подписали пакет нашим собственным ключом, он будет конфликтовать с оригинальным приложением, а это значит, что при попытке обновить софтину через маркет мы получим ошибку.
Цифровая подпись необходима только стороннему софту, поэтому если ты занимаешься модификацией системных приложений, которые устанавливаются копированием в каталог /system/app/, то подписывать их не нужно.
Обычно авторы приложений создают специальные классы для вывода рекламы и вызывают методы этих классов во время запуска приложения или одной из его «активностей» (упрощенно говоря, экранов приложения). Попробуем найти эти классы. Идем в каталог smali, далее com (в org лежит только открытая графическая библиотека cocos2d), далее kauf (именно туда, потому что это имя разработчика и там лежит весь его код) — и вот он, каталог marketing. Внутри находим кучу файлов с расширением smali. Это классы, и наиболее примечателен из них класс Ad.smali, по названию которого нетрудно догадаться, что именно он выводит рекламу.
Мы могли бы изменить логику его работы, но гораздо проще будет тупо убрать вызовы любых его методов из самого приложения. Поэтому выходим из каталога marketing и идем в соседний каталог particle, а затем в virtualtorch. Особого внимания здесь заслуживает файл MainActivity.smali. Это стандартный для Android класс, который создается Android SDK и устанавливается в качестве точки входа в приложение (аналог функции main в Си). Открываем файл на редактирование.
Внутри находится код smali (местный ассемблер). Он довольно запутанный и трудный для чтения в силу своей низкоуровневой природы, поэтому мы не будем его изучать, а просто найдем все упоминания класса Ad в коде и закомментируем их. Вбиваем строку «Ad» в поиске и попадаем на строку 25:
Здесь происходит создание объекта. Комментируем. Продолжаем поиск и находим в строках 433, 435, 466, 468, 738, 740, 800 и 802 обращения к методам класса Ad. Комментируем. Вроде все. Сохраняем. Теперь пакет необходимо собрать обратно и проверить его работоспособность и наличие рекламы. Для чистоты эксперимента возвращаем удаленную из AndroidManifest.xml строку, собираем пакет, подписываем и устанавливаем.
Наш подопытный кролик. Видна реклама Он же, но уже без рекламы
Оп-па! Реклама пропала только во время работы приложения, но осталась в главном меню, которое мы видим, когда запускаем софтину. Так, подождите, но ведь точка входа — это класс MainActivity, а реклама пропала во время работы приложения, но осталась в главном меню, значит, точка входа другая? Чтобы выявить истинную точку входа, вновь открываем файл AndroidManifest.xml. И да, в нем есть следующие строки:
Они говорят нам (и, что важнее, андроиду) о том, что активность с именем Start должна быть запущена в ответ на генерацию интента (события) android.intent.action.MAIN из категории android.intent.category.LAUNCHER. Это событие генерируется при тапе на иконку приложения в ланчере, поэтому оно и определяет точку входа, а именно класс Start. Скорее всего, программист сначала написал приложение без главного меню, точкой входа в которое был стандартный класс MainActivity, а затем добавил новое окно (активность), содержащее меню и описанное в классе Start, и вручную сделал его точкой входа.
Открываем файл Start.smali и вновь ищем строку «Ad», находим в строках 153 и 155 упоминание класса FirstAd. Он тоже есть в исходниках и, судя по названию, как раз и отвечает за показ объявлений на главном экране. Смотрим дальше, идет создание экземпляра класса FirstAd и интента, по контексту имеющего отношение к этому экземпляру, а дальше метка cond_10, условный переход на которую осуществляется аккурат перед созданием экземпляра класса:
Скорее всего, программа каким-то случайном образом вычисляет, нужно ли показывать рекламу на главном экране, и, если нет, перескакивает сразу на cond_10. Ок, упростим ей задачу и заменим условный переход на безусловный:
Больше упоминаний FirstAd в коде нет, поэтому закрываем файл и вновь собираем наш виртуальный факел с помощью apktool. Копируем на смартфон, устанавливаем, запускаем. Вуаля, вся реклама исчезла, с чем нас всех и поздравляем.
- Перевод приложений Android;
- пример снятия триала с приложения.
Итоги
Эта статья лишь краткое введение в методы вскрытия и модификации Android-приложений. За кадром остались многие вопросы, такие как снятие защиты, разбор обфусцированного кода, перевод и замена ресурсов приложения, а также модификация приложений, написанных с использованием Android NDK. Однако, имея базовые знания, разобраться во всем этом — лишь вопрос времени.
Работа с настройками уровня activity и приложения позволяет сохранить небольшие данные отдельных типов (string, int), но для работы с большими массивами данных, такими как графически файлы, файлы мультимедиа и т.д., нам придется обращаться к файловой системе.
ОС Android построена на основе Linux. Этот факт находит свое отражение в работе с файлами. Так, в путях к файлам в качестве разграничителя в Linux использует слеш "/", а не обратный слеш "\" (как в Windows). А все названия файлов и каталогов являются регистрозависимыми, то есть "data" это не то же самое, что и "Data".
Приложение Android сохраняет свои данные в каталоге /data/data/<название_пакета>/ и, как правило, относительно этого каталога будет идти работа.
Для работы с файлами абстрактный класс android.content.Context определяет ряд методов:
boolean deleteFile (String name) : удаляет определенный файл
String[] fileList () : получает все файлы, которые содержатся в подкаталоге /files в каталоге приложения
File getCacheDir() : получает ссылку на подкаталог cache в каталоге приложения
File getDir(String dirName, int mode) : получает ссылку на подкаталог в каталоге приложения, если такого подкаталога нет, то он создается
File getExternalCacheDir() : получает ссылку на папку /cache внешней файловой системы устройства
File getExternalFilesDir(String type) : получает ссылку на каталог /files внешней файловой системы устройства
File getFileStreamPath(String filename) : возвращает абсолютный путь к файлу в файловой системе
FileInputStream openFileInput(String filename) : открывает файл для чтения
FileOutputStream openFileOutput (String name, int mode) : открывает файл для записи
Все файлы, которые создаются и редактируются в приложении, как правило, хранятся в подкаталоге /files в каталоге приложения.
Для непосредственного чтения и записи файлов применяются также стандартные классы Java из пакета java.io.
Итак, применим функционал чтения-записи файлов в приложении. Пусть у нас будет следующая примитивная разметка layout:
Поле EditText предназначено для ввода текста, а TextView - для вывода ранее сохраненного текста. Для сохранения и восстановления текста добавлены две кнопки.
Теперь в коде Activity пропишем обработчики кнопок с сохранением и чтением файла:
При нажатии на кнопку сохранения будет создаваться поток вывода FileOutputStream fos = openFileOutput(FILE_NAME, MODE_PRIVATE)
В данном случае введенный текст будет сохраняться в файл "content.txt". При этом будет использоваться режим MODE_PRIVATE
Система позволяет создавать файлы с двумя разными режимами:
MODE_PRIVATE : файлы могут быть доступны только владельцу приложения (режим по умолчанию)
MODE_APPEND : данные могут быть добавлены в конец файла
Поэтому в данном случае если файл "content.txt" уже существует, то он будет перезаписан. Если же нам надо было дописать файл, тогда надо было бы использовать режим MODE_APPEND:
Для чтения файла применяется поток ввода FileInputStream :
В итоге после нажатия кнопки сохранения весь текст будет сохранен в файле /data/data/название_пакета/files/content.txt
Где физически находится созданный файл? Чтобы увидеть его на подключенном устройстве перейдем в Android Stud в меню к пункту View -> Tool Windows -> Device File Explorer
После этого откроектся окно Device File Explorer для просмотра файловой системы устройства. И в папке data/data/[название_пакета_приложения]/files мы сможем найти сохраненный файл.
Вы можете обнаружить, что чем меньше объем внутренней памяти телефона, тем дешевле будут Android-телефоны. Обычного 8GB или 16GB недостаточно для большинства пользователей. В вашем телефоне не хватает места и он часто выходит из строя. Таким образом, многие люди предпочитают передавать данные из внутренней памяти на SD-карту, чтобы освободить внутреннее пространство. Ведь расширение дискового пространства с помощью SD-карты будет дешевле. Это также экономящий время способ перенести данные со старого телефона на новый.
Для большинства пользователей HD фото и видео занимают большую часть внутренней памяти. Вы можете переместить файлы на SD-карту, чтобы сохранить память телефона в порядке. Кроме того, вы также можете перенести приложения на SD-карту на телефоне Android, Просто оставьте встроенные приложения Android в покое, чтобы освободить место на диске.
Часть 1: Как перенести файлы из внутренней памяти на SD-карту
Для повышения производительности вашего телефона Android не рекомендуется хранить слишком много файлов во внутренней памяти. Ну, вы также должны содержать диск C в чистоте, чтобы ваш компьютер работал быстро. Телефон Android под управлением OS 4.0 и более поздних версий поддерживает передачу данных на SD-карту. Просто проверьте максимальную емкость карты microSD, которую поддерживает ваш телефон или планшет.
Шаг 1 Откройте приложение «Мои файлы». Если вы не можете найти такое приложение для управления файлами, вы можете загрузить его из Google Play Store.
Шаг 2 Нажмите Внутренние хранения or Устройство хранения чтобы получить доступ ко всем вашим файлам и папкам, хранящимся во внутреннем телефоне Android.
Шаг 3 Просмотрите и найдите файлы, которые вы хотите перенести на SD-карту. Например, вы можете открыть DCIM папка для перемещения фотографий и видео на SD-карту.
Шаг 4 Длительно нажмите файл или папку, пока он не будет отмечен. Затем выберите Двигаемся из трех точек Меню .
Шаг 5 Выберите SD Card or MicroSD, Выберите папку назначения на вашей SD-карте. Вы также можете создать новую папку для сохранения переданных файлов.
Шаг 6 Нажмите Готово or OK переместить внутреннюю память на SD-карту.
Часть 2. Как переместить приложения из внутренней памяти на SD-карту
Если во внутренней памяти телефона установлено слишком много приложений, вы можете перенести приложения из внутренней памяти на SD-карту. Имейте в виду, что не все приложения можно переместить на SD-карту Android. Это зависит от модели телефона и используемой ОС. Более того, приложение в первую очередь должно быть мобильным.
Ваш телефон должен работать между Android 4.0 и 4.2. Хотя Google снова включил функцию перемещения приложений в OS 4.3, поддерживаются только некоторые смартфоны. Например, Samsung Galaxy S9 позволяет пользователям переносить данные приложения из внутренней памяти на SD-карту.
Шаг 1 Откройте приложение «Настройки». Прокрутите вниз и выберите Использование, Приложения or Application Manager, Это зависит от того, какое устройство Android вы используете.
Шаг 2 Нажмите Управление приложениями, Некоторые приложения неактивны. Ну, это означает, что вы не можете переместить эти приложения на SD-карту.
Шаг 3 Выберите приложение и нажмите Переместить на SD-карту перенести данные с устройства на SD-карту. Ну, вы можете нажать нажмите Память > Изменить > SD Card переместить приложение на SD-карту для некоторых устройств Android.
Часть 3. Установите SD / карту памяти в качестве хранилища камеры по умолчанию
Тогда как насчет дальнейших фотографий и видео, которые вы делаете с помощью камеры телефона. Почему бы не установить SD-карту в качестве папки назначения? Вам не нужно снова и снова переносить данные из внутренней памяти на SD-карту в Samsung, HUAWEI, OPPO и других телефонах. Вот учебник.
Шаг 1 Откройте приложение «Камера». Нажмите на передачу Параметры значок в правом верхнем углу.
Шаг 2 Нажмите на передачу Параметры значок в правом верхнем углу.
Шаг 3 Выберите Место хранения.
Шаг 4 Переключитесь на вкладку SD Card поменять хранилище на SD-карту. Теперь ваши новые фото и видео будут по умолчанию на карте microSD.
Передача данных с iPhone, Android, iOS, компьютера в любое место без каких-либо потерь.
- Перемещайте файлы между iPhone, iPad, iPod touch и Android.
- Импортируйте файлы с iOS на iOS или с Android на Android.
- Переместите файлы с iPhone / iPad / iPod / Android на компьютер.
- Сохранить файлы с компьютера на iPhone / iPad / iPod / Android.
Часть 4. Используйте программное обеспечение для передачи телефона для быстрого перемещения данных между телефонами
Вот и все, как перенести данные из внутренней памяти на SD-карту. Можете ли вы освободить место для хранения на вашем телефоне? Какую SD-карту вы используете? Вы можете оставлять комментарии ниже и делиться с нами. Если у вас есть какие-либо вопросы, вы также можете связаться с нами.
Всякая всячина, которую дядюшка Раджа находит в интернете и хочет поделиться с читателями.
Об авторе
Архив блога
Мой блог смотрят
13 февраля 2012
Как заменять системные APK-файлы на Android?
Это опять я и мои инструкции для чайников и кофейников с картинками.
Android - это маленький Linux. В нём надо соблюдать ряд правил при замене файлов, чтобы телефон не превратился в кирпич, оживить который поможет только полная перепрошивка с потерей всех данных из внутренней памяти устройства. Внутренние разделы отформатированы в файловую систему отличную от FAT32 на флешках. В свойствах файла кроме всего прочего хранятся разрешения для разных групп пользователей (хозяин файла, группа хозяина файла, остальные пользователи). При операции с системными файлами их надо сохранять, потому что при загрузке система просто может не суметь получить к ним доступ и не загрузиться нормально.
Начнем с инструментария.
- Менеджер файлов, который умеет работать с root-правами и разрешениями файлов. Лучше всего подойдет Root Explorer (Вы же его купили, да?)
- Сам модифицированный файл, который мы хотим положить наместо системного (ссылка в конце статьи).
Для начала нужно найти и сохранить резервную копию заменяемого файла.
Для этого запускаем Root Explorer и переходим в каталог " /system/app " и в списке находим нужный файл.
Теперь используем одну из удобных функций Root Explorer. Сделаем долгий тап по нужному файлу, чтобы вызвать контекстное меню
Нажимаем кнопкй "Stay", чтобы остаться в папке и сделать еще кое-что.
Теперь всё готово для замены файла.
Я уже говорил про права доступа у каждого файла. Чтобы их воссоздать на новом файле, надо сначала посмотреть их у старого. Они представлены рядом символов " rwxrwxrwx ". 1-я триада - права владельца, 2-я - группы владельца, 3-я - всех остальных пользователей. У нашего файла права "rw-r--r--".
Теперь переходим на SD-карту, находим там модифицированный файл и из его контекстного меню выбираем пункт "Copy", но не торопимся выбирать сразу папку " /system/app ", потому что мы тут же повредим систему. Вместо этого копируем файл в специальную папку для временных файлов " /data/local/tmp ", чтобы привести файл в вид, который примет система.
Для начала вызовем контекстное меню файла и выберем пункт "Rename" и введем имя файла " SystemUI.apk ". Именно так, потому что в Linux регистр букв в имени имеет значение, т.е. " systemui.apk " и " SystemUI.apk " - это разные файлы.
Далее надо изменить права на файл, потому что сейчас они почти наверняка выставлены неправильно. Для этого опять вызываем контекстное меню файла долгим тапом и выбираем пункт "Permissions". Для нашего значени "rw-r--r--" флажки надо расставить так:
Нажимаем "OK" и снова вызываем контекстное меню. Теперь надо изменить владельца и группу для этого приложения. Для этого выбираем пункт "Изменить владельца". Появится окно с информацией о текущем владельце файла.
Тут надо сделать маленькое отступление.
В папке " /system/app " всеми файлами владеет пользователь "root" (uid=0) и группа "root" (gid=0), а в папке " /system/framework " властвует пользователь "system" (gid=1000) и группа "system" (gid=1000).
Исходя из вышесказанного, выставляем нужные значения и нажимаем "OK".
И в третий раз вызываем контекстное меню для файла и в нем выбираем пункт "Copy" и в диалоге копирования переходим в папку " /system/app ". Теперь смело нажимаем "Paste" и читаем дальше внимательно.
Практически сразу система сообщит, что процесс строки состояния внезапно завершился, и предложит его запустить. Всё попытки будут неудачными. Между появлениями окон надо успеть сделать ряд действий. Перед нажатием кнопки надо вызвать меню выключения аппарата, оно окажется под предупреждением. Теперь надо расположить палец примерно в левой стороне кнопки. Теперь надо очень быстро щелкнуть три раза пальцем, что успеть закрыть предупреждение, выбрать пункт выключения и подтвердить свои намерения.
Теперь ждем выключения телефона, заново его запускаем и наслаждаемся результатом или не наслаждаемся и ищем ошибки.
Для чего нужен файловый менеджер в Андроид
Файловые менеджеры – это класс приложений, с помощью которых можно производить операции с файлами: перемещать, копировать, удалять, переименовывать, запускать, вырезать, вставлять. Однозначно, такое приложение должно быть установлено на вашем смартфоне или планшете. В магазине приложений Google Play представлено большое количество файловых менеджеров, среди которых можно выбрать на любой вкус. Давайте рассмотрим, как перемещать файлы в Андроид на карту памяти, с использованием одного из самых популярных менеджеров – File Manager.
Перемещение файлов в Андроид с помощью File Manager
Установите File Manager и запустите его. После открытия приложения вы попадаете в окно, где представлено 2 раздела: «Устройство» и «SD-карта».
В разделе «Устройство» показывается содержимое внутренней памяти вашего Андроид смартфона или планшета, а в разделе «SD-карта» – содержимое карты памяти.
Тапом по значку «Устройство» откройте содержимое внутренней памяти и найдите файл(ы), необходимые для перемещения на карту microSD. Отметьте нужный файл(ы) или папки с файлами и тапните по иконке «Переместить» в нижней левой части приложения.
В результате этого действия внизу появятся две кнопки: кнопка «Отменить», тап по которой отменяет действие и кнопка «Вставить», тап по которой перемещает отмеченные файлы в открытую на данный момент папку.
Нам нужно перенести файлы на карту памяти, поэтому переходим в главное окно File Manager тапом по иконке «Домой» в верхнем левом углу экрана.
Тапом по разделу «SD-карта» открываем содержимое карты памяти.
Выбираем на карте памяти директорию, в которую хотим переместить ранее отмеченные файлы и папки. После чего тапом по кнопке «Вставить» перемещаем отмеченные файлы из внутренней памяти вашего смартфона или планшета на SD-карту.
Перемещение файлов в Андроид с помощью компьютера
При подключении смартфона или планшета к USB порту компьютера, устройство определяется как внешний накопитель с двумя разделами (внутренняя память и карта памяти) с файлами которого, с помощью проводника Windows, можно производить стандартные операции перемещения, копирования, удаления файлов, переименования файлов. Точно также можно переместить файлы не только на карту памяти, но и на компьютер. Более подробно данная операция рассмотрена в этой статье.
Многие смартфоны на базе Andro > В этой статье мы расскажем, что для этого необходимо сделать.
Вам понадобится файловый менеджер. На большинстве смартфонов ФМ уже встроен в прошивку, так что с этим проблем быть не должно. Если вы не нашли файловый менеджер, просто скачайте понравившийся вам в Play Market. Мы используем «Файловый менеджер +» (File Manager +) в нашем примере.
Выбираете «Основная память» — именно из основной памяти вы будете переносить файлы на карту памяти (SD-карту).
Здесь вы увидите список папок и файлов, которые находятся в памяти смартфона. Допустим, вы хотите перенести музыку на карту памяти. Выбираете папку — в нашем примере она называется Music.
Перед вами — список файлов. Выбираете нужный из них, тапнув и удерживая палец на объекте. Объект выделен. Если файлов несколько, вы можете выделить и их, уже просто тапнув по нужным из них. Затем нажмите на кнопку «Копировать» или «Переместить» — во втором случае файлы не копируются, а перемещаются (аналог функции «Вырезать»).
Теперь вы видите кнопки «Отмена» и «Вставить». Это значит, что нужные файлы скопированы или подготовлены для перемещения.
Возвращаетесь на главную страницу файлового менеджера и выбираете «SD-карта».
Вы открыли карту памяти. Если нажать на кнопку «Вставить», произойдет копирование или перемещения выбранных вами файлов.
Однако в данном случае данные будут перенесены в корень карты памяти — это удобно далеко не во всех случаях. Поэтому мы рекомендуем вам создать папку для этих файлов. Нажмите на три точки.
Задайте папке имя, например, «Музыка», нажмите ОК.
Открываете и переносите файлы уже в нее.
Таким же образом вы можете перенести не файл, а целую папку, причем как с основной памяти на флешку, так и обратно.
По умолчанию фото и видео на Android снимаются и хранятся во внутренней памяти, что, при наличии карты памяти Micro SD не всегда рационально, так как внутренней памяти почти всегда не хватает. При необходимости вы можете сделать так, чтобы фото снимались сразу на карту памяти и перенести уже имеющиеся файлы на неё.
Как перенести фото с телефона на карту памяти
В этой инструкции подробно о настройке съемки на SD-карту и о переносе фото/видео на карту памяти на Android телефонах. Первая часть руководства — о том, как это осуществить на смартфонах Samsung Galaxy, вторая — общая для любых Android-устройств. Примечание: если вы «очень начинающий» пользователь Android, настоятельно рекомендую сохранить ваши фото и видео в облаке или на компьютере, прежде чем приступать.
Как перенести фото и видео на MicroSD карту на Samsung Galaxy
По своей сути, методы переноса фото для Samsung Galaxy и других Android устройств не отличаются, но я решил отдельно описать этот способ с использованием только тех инструментов, которые уже предустановлены на устройствах этой, одной из самых распространенных марок.
Съемка фото и видео на SD-карту
Первый шаг (не обязательный, если вам это не требуется) — настроить камеру так, чтобы фото и видео снимались на карту памяти MicroSD, сделать это очень просто:
1. Откройте приложение «Камера».
2. Откройте настройки камеры (значок шестеренки).
3. В настройках камеры найдите пункт «Место хранения» и вместо «Память устройства» выберите «SD-карта».
После этих действий все (почти) новые фото и видео будут сохраняться в папку DCIM на карте памяти, папка будет создана в тот момент, когда вы сделаете первый снимок. Почему «почти»: некоторые видео и фото, которые требуют высокой скорости записи (фото в режиме непрерывной съемки и видео 4k 60 кадров в секунду) продолжат сохраняться во внутреннюю память смартфона, но их всегда можно перенести на SD карту уже после съемки.
Примечание: при первом запуске камеры после подключения карты памяти вам автоматически будет предложено сохранять фото и видео на неё.
Перенос снятых фото и видео на карту памяти
Для переноса уже имеющихся фото и видео на карту памяти вы можете использовать встроенное приложение «Мои файлы», имеющееся на вашем Samsung или любой другой файловый менеджер. Покажу метод для встроенного стандартного приложения:
1. Откройте приложение «Мои файлы», в нем откройте «Память устройства».
2. Нажмите и удерживайте палец на папке DCIM, пока папка не станет отмеченной.
3. Нажмите по трем точкам справа вверху и выберите пункт «Переместить».
4. Выберите «Карта памяти».
Папка будет перемещена, а данные будут объединены с уже имеющимися фото на карте памяти (ничего не сотрется, не переживайте).
Съемка и перенос фото/видео на других Android телефонах
Настройка съемки на карту памяти почти на всех Android телефонах и планшетах реализована одинаково, но, одновременно, в зависимости от интерфейса камеры (а производители, даже на «чистом» Android обычно ставят свое приложение «Камера») слегка отличается.
Общая суть — найти способ открыть настройки камеры (меню, значок шестеренки, свайп с одного из краев), а уже там пункт для параметров места сохранения фото и видео. Скриншот для Samsung был представлен выше, а, например, на Moto X Play это выглядит как на скриншоте ниже. Обычно ничего сложного.
После настройки фото и видео начинают сохраняться на SD-карту в такую же папку DCIM, которая ранее использовалась во внутренней памяти.
Для переноса уже имеющихся материалов на карту памяти вы можете использовать любой файловый менеджер (см. файловые менеджеры для Android ). Например, в бесплатном и X-Plore это будет выглядеть так:
1. В одной из панелей открываем внутреннюю память, в другой — корень SD-карты.
2. Во внутренней памяти нажимаем и удерживаем папку DCIM, пока не появится меню.
3. Выбираем пункт меню «Переместить».
4. Перемещаем (по умолчанию она будет перемещаться в корень карты памяти, что нам и требуется).
Возможно, в некоторых других файловых менеджерах процесс перемещения будет более понятным для начинающих пользователей, но, в любом случае, везде это сравнительно простая процедура.
Читайте также: