Как переименовать приложение на Android: основные способы
Как переименовать приложение на Андроид – это вопрос, узнав ответ на который, пользователь сможет без проблем переименовывать ярлыки ранее установленных ПО. Благодаря данной опции можно навести порядок на столе. В статье вниманию представлены методы переименования и то, какие преимущества можно получить.
Основные способы переименовать приложение на Андроиде
Существует множество способов проведения данной операции. Самый легкий заключается в нажатии на иконку и в удерживании пальца в течении пары секунд. Далее в меню следует выбрать опцию с редактированием. Вниманию будет представлено поле, где пишется новое название.
Второй вариант действия осуществляется по схеме, связанной с использованием xRenamer. Найти его можно в разделе с загрузками. Если не находится, нужно произвести такие действия:
- Модуль скачивается и устанавливается.
- Проводится активация нужного объекта.
- Смартфон перезагружается.
- Среди установленных появится модуль.
Третий вариант заключается в задействовании программы QuickShortcutMaker. Это универсальный метод для смены названий и имен контактов, который стоит изучить внимательно.
Как переименовать файл?
Легко и быстро решить вопрос, как переименовать приложение android, можно через QuickShortCutMaker:
- Утилита скачивается и устанавливается на смартфон;
- Осуществляется запуск;
- Откроется перечень ПО, установленных на гаджете;
- Следует нажать на программу, название которой нужно заменить;
- Появится окошко, где вводится желаемое имя;
- Нажимается ОК.
После этого следует нажать на Create, название автоматически меняется.
Как переименовать фото?
Можно задействовать иные утилиты для проведения замены – Nova Launcher или Apex Launcher. Обе программы бесплатны. Действия здесь нужно проводить аналогичные. Чтобы сменить имя, осуществляются такие манипуляции:
- Нужно нажать на ярлык и удерживать палец, пока не появится контекстное меню.
- Выбирается опция редактирования.
- В окне, которое появится после этого, нужно нажать на старое название и ввести новое.
- В завершении операции нажимается Готово.
Если пользователь правильно выполнит операции, на дисплее рядом с иконкой появится новое имя.
Как переименовать ярлык?
Произвести замену имени можно с помощью Nova launcher. В утилите есть функция, предназначенная для изменения значка. Замена осуществляется следующим образом:
Если у Вас остались вопросы – сообщите нам Задать вопрос
- Утилита скачивается на устройство.
- Далее осуществляется переход на главный экран.
- Здесь выбирается значок, у которого планируется изменить имя. Необходимо нажать на него и какое-то время подержать на нем палец.
- На выбор будет представлено три варианта. Редактирование, удаление и информация о ПО. Нужно выбрать первый.
- Вводится новое название для утилиты.
- Активируется Done.
Данный метод самый легкий.
Как переименовать контакт?
Можно использовать Xposed Framework. Это функциональное многомодульное приложение, посредством которого можно изменить не только название программы, но провести конфигурацию большого количества параметров. Операция по смене названия, заключается в виде следующих действий:
- Скачивается и запускается утилита;
- Во вкладке с Загрузкой нужно найти xRenamer и скачать его;
- На странице Модули следует найти скачанный и установленный элемент;
- Его требуется активировать и провести перезагрузку телефона.
Запускается отразившийся xRenamer, который легко изменит ярлык.
Как переименовать sd карту?
Необходимость в форматировании возникает при следующих обстоятельствах:
- Критические ошибки в файловой системе;
- Сбой в приложении на карте и неграмотно записанные файлы;
- Сокращение объема по причине ошибок на страницах;
- Накопление файлов, которые уже не нужны;
- Перенос карты на иной гаджет.
Перед выполнением главной операции по форматированию нужно сделать резервную копию. Далее через настройки выполняются такие манипуляции:
- Переход в настройки.
- Выбирается пункт Хранилища и USB.
- Нажимается ярлык карты, расположенный в нижнем левом углу.
- Открывается выпадающее меню.
- Выбирается раздел с настройками.
- Активируется команда по форматированию.
Через минуту система очистит sd карту памяти, и ее можно будет использовать далее.
Подводя итоги
Если пользователю нужно изменить название приложения, через стандартные телефоны ОС android решить вопрос не получится. Придется использовать специальные сторонние инструменты. Благодаря ПО можно установить имя файла, которое подчеркнет функциональное значение приложения. Это сделает рабочий стол более понятным и удобным для восприятия.
Можно ли изменить имя пакета приложения для Android в Google Play?
Я хотел бы знать, возможно ли технически, а не легко ли изменить фактическое имя пакета приложения для android, которое находится в google play. Я имею в виду имя пакета, имя, которое будет отображаться в URL. Пожалуйста, может кто-нибудь сказать мне, почему это не возможно? Спасибо!
7 ответов:
От Диана Hackborn:
Вещи, Которые Не Могут Измениться:
наиболее очевидным и видимым из них является “имя пакета манифеста”, уникальное имя, которое вы даете своему приложению в своем AndroidManifest.XML. Имя использует соглашение об именовании в стиле Java-языка, а владение доменом Интернета помогает избежать конфликтов имен. Например, поскольку Google владеет доменом “google.com”, имена пакетов манифеста всех наших приложений следует начать с “COM.гуглить.”Для разработчиков важно следовать этой конвенции, чтобы избежать конфликтов с другими разработчиками.
после публикации приложения под его именем пакета манифеста, это уникальный идентификатор приложения навсегда больше. Переключение на другое имя приводит к созданию совершенно нового приложения, которое не может быть установлено в качестве обновления существующего приложения.
больше о вещах, которые вы не можете изменить здесь
Что касается вашего вопроса по URL-адресу из Google Play, определенный там пакет связан с полным пакетом приложения, который у вас есть в вашем AndroidManifest.xml
нет, вы не можете просто изменить его, вам придется загрузить новый пакет в качестве нового приложения. Взгляните на приложение Google Talk , его имя было изменено на Hangouts , но имя пакета еще com.google.android.talk . Потому что это не выполнимо 🙂 Ура.
насколько я могу судить, что вы могли бы сделать, это “удалить” свое предыдущее приложение и перенаправить всех пользователей в новое приложение. Эта процедура не поддерживается Google (tsk. ООО “ТСК”. ), но он может быть реализован в четыре этапа:
изменить программу, чтобы показать сообщения пользователям об обновлении и перенаправить их на новые приложения. Вероятно, полноэкранное сообщение будет делать с некоторым дружественным текстом. Это сообщение может быть вызвано удаленно в идеале, но также можно использовать дату отсечки. (Но тогда это будет жесткий срок для вас, так что будьте осторожны. ;))
отпустите измененное старое приложение в качестве обновления, возможно, с некоторыми обновлениями функций / исправлениями ошибок, чтобы “подсластить сделку” для пользователей. До сих пор нет никакой гарантии, что все пользователи будут обновляться, но, вероятно, большинство будет делать.
подготовьте новое приложение с обновленным именем пакета и загрузите его в магазин, а затем запустите сообщение в старом приложение (или просто ждать, пока он не истечет, если это был ваш выбор).
отменить публикацию старого приложения в Play Store, чтобы избежать каких-либо новых установок. Отмена публикации приложения не означает, что пользователи, которые уже установили его, больше не будут иметь к нему доступа, но, по крайней мере, потенциальные новые пользователи не найдут его на рынке.
не идеально и может раздражать пользователей, иногда даже невозможно реализовать из-за статуса/возможностей приложения. Но так Google не оставил нам выбора это единственный способ перенести пользователей старых приложений на “Новый” (даже если он не совсем новый). Не говоря уже о том, что если у вас нет доступа к источникам и деталям подписи кода для старого приложения, все, что вы можете сделать, это надеяться, что пользователи заметят новое приложение.
Если кто-нибудь выяснил лучший способ во что бы то ни стало: пожалуйста, скажите.
нет, вы не можете изменить имя пакета, если вы не согласны с публикацией его в качестве нового приложения в Play Store:
после публикации приложения под его именем пакета манифеста, это уникальный идентификатор приложения навсегда больше. Переключение на другое имя приводит к созданию совершенно нового приложения, которое не может быть установлено в качестве обновления существующего приложения. Руководство Android подтверждает это также здесь:
внимание: как только вы опубликуете свое приложение, вы не можете изменить имя пакета. Имя пакета определяет идентификатор вашего приложения, поэтому при его изменении оно считается другим приложением, и пользователи предыдущей версии не могут обновить его до новой версии. Если вы согласны с публикацией новой версии вашего приложения как совершенно нового объекта, вы можете сделать это, конечно, – просто удалите старое приложение из Play Store (если хотите) и опубликуйте новое, с другим именем пакета.
Если вы имеете в виду com.образец.приложение, нет я понимаю, что вы не можете это будет считаться новым приложением
никогда, вы не можете сделать это, так как имя пакета является уникальным идентификатором имени для вашего приложения.
можно сказать, что:
Если имя пакета манифеста изменилось, новое приложение будет устанавливается вместе со старым приложением, поэтому они оба сосуществуют на пользователя устройство одновременно.
если сертификат подписи изменяется, попытка установить новый приложение на устройстве не будет работать, пока не будет установлена старая версия удаленный.
обновление приложений
подготовить APK
когда вы будете готовы внести изменения в свой APK, обязательно обновите код версии вашего приложения, чтобы существующие пользователи получили ваше обновление.
используйте следующий контрольный список, чтобы убедиться, что ваш новый APK готов обновить существующих пользователей:
- название пакета приложения обновленного APK и текущей версии совпадают.
- код версии должен быть больше, чем текущая версия. Узнайте больше о компании управление версиями приложений.
- обновленный APK должен быть подписан той же подписью, что и текущая версия.
чтобы убедиться, что ваш APK использует ту же сертификацию, что и предыдущая версия, вы можете запустить следующую команду на обоих APKs и сравнить результаты:
Если результаты идентичны, вы используете тот же ключ и готовы продолжить. Если результаты отличаются, вам нужно будет повторно подписать APK с помощью правильный ключ.
Узнайте больше о подписании ваших приложений
загрузите APK После того, как ваш APK готов, вы можете создать новый релиз.
Как изменить имя пакета приложения для Android
Мое хранилище ключей повреждено, поэтому Android Market требует от меня переименовать приложение и повторно отправить его. Тем не менее, всякий раз, когда я перехожу к редактированию имен пакетов в манифесте и по всем файлам, это дает мне массу ошибок.
Каков правильный способ изменения имени приложения?
18 ответов
101 Решение eldarerathis [2010-10-26 18:50:00]
Если вы используете Eclipse, вы можете попробовать эти инструкции с сайта разработчика Android. Они специально предназначены для примера GestureBuilder, но должны быть применимы к любому приложению, насколько я могу судить:
[H] как вы могли бы сделать это в Eclipse:
- Щелкните правой кнопкой мыши имя пакета ( src/com.android.gesture.builder ).
- Выберите “Рефакторинг” > “Переименовать” и изменить имя, например, com.android.gestureNEW.builder .
- Откройте файл манифеста. Внутри , измените имя пакета на com.android.gestureNEW.builder .
- Откройте каждый из двух файлов Activity и сделайте Ctrl-Shift-O, чтобы добавить отсутствующие пакеты импорта, а затем сохраните каждый файл. Запустите приложение GestureBuilder на эмуляторе.
Кроме того, убедитесь, что вы запомнили переименование самого пакета вместе со ссылками на него в файлах. В Eclipse вы можете увидеть имя пакета в окне окна/дерева файла в левой части окна. По моему опыту, Eclipse иногда может быть немного фиктивным и ненадежным с этим (например, оставляя бездомные ссылки на старое имя пакета).
В Eclipse можно легко изменить имя пакета. Щелкните правой кнопкой мыши на своем проекте, прокрутите вниз до Android-инструментов и нажмите “Переименовать пакет приложений”.
52 AZ_ [2012-02-07 09:11:00]
Здесь вы можете сделать это в Eclipse:
- Щелкните правой кнопкой мыши имя пакета ( src/com.android.gesture.builder ).
- Выберите Refactor > Rename и измените имя, например, на com.android.gestureNEW.builder .
- Откройте файл манифеста. Внутри тега измените имя пакета на com.android.gestureNEW.builder .
- Откройте каждый из двух файлов Activity и сделайте Ctrl + Shift + O , чтобы добавить отсутствующие пакеты импорта, а затем сохраните каждый файл.
- Запустите приложение GestureBuilder на эмуляторе.
Обновление супер легкий способ щелкните правой кнопкой мыши по вашему проекту.
9 craned [2013-10-11 17:39:00]
В Android Studio, который, честно говоря, вы должны использовать, измените имя пакета на right-clicking на имя пакета в project structure -> Refactor -> Rename.
Затем он дает возможность переименования каталога или пакета. Выберите пакет. Справочник должен следовать примеру. Введите новое имя пакета и нажмите “Refactor”. Он изменит весь импорт и удалит избыточный импорт для вас. Вы даже можете исправить это для вас в комментариях и строках и т.д.
Наконец,, измените имя пакета в AndroidManifest.xml по направлению вверх. В противном случае вы получите ошибки повсюду, жалуясь на R.whatever.
Другое очень полезное решение
Сначала создайте новый пакет с нужным именем by right clicking on the java folder → new → package.`
Затем выберите и перетащите все ваши классы в новый пакет. AndroidStudio будет переопределять имя пакета везде.
После этого: в приложении build.gradle добавьте/отредактируйте applicationId с новым. т.е. ( com.a.bc в моем случае):
Оригинальная публикация и комментарии здесь
Измените имя пакета и названия активности в AndroidManifext.xml и в любом другом месте в XML файлах (пользовательские имена и т.д.)
Обновить оператор импорта пакета во всех исходных файлах
Переименуйте все папки в соответствии с именем пакета. Расположение папок:
а. bin/классы
б. ген
с. ЦСИ
Обновите имя проекта в файле build.xml(или ваше имя apk не изменится)
Удалите все файлы .class в bin/classes/com/example/myapp/(если вы пропустите этот шаг, файлы не будут перезаписаны во время сборки, а dex даст кучу проблем с обработкой “имя класса” не соответствуют пути “
Удалить gen/com/example/myapp/BuildConfig.java(я не знаю, почему удаление BuildConfig.class на шаге 3a не вызывало dex для обновления пути к этому, но до тех пор, пока я не удалю BuildConfig. java он продолжал воссоздавать gen/com/oldapp_example/oldapp и помещать там BuildConfig.class. Я не знаю, почему у R.java из того же места нет этой проблемы. Я подозреваю, что BuildConfig.java автоматически сгенерирован в pre -compile, но R.java нет)
Вышеуказанные 6 шагов – это то, что я сделал, чтобы изменить имя моего пакета и получить успешную * сборку. Может быть лучший способ обработать шаги 5 и 6 через команды dex для обновления путей или, возможно, путем редактирования classes.dex.d в корневой директории проекта. Я не знаком с dex или если это нормально для удаления/редактирования classes.dex.d, поэтому я пошел с методом удаления файлов .class, которые, как я знаю, будут восстановлены в сборке. Затем я проверил classes.dex.d, чтобы узнать, что еще нужно обновить.
* В моей сборке нет ошибок или предупреждений. EXCEPT dex и apkbuilder устанавливают состояние “Найденный удаленный целевой файл” без каких-либо особенностей того, что этот файл. Не уверен, что это отображается в каждой сборке, если она была там до того, как я испортился с моим именем пакета, или если это результат моих удалений, и мне не хватает шага.
Выполните следующие действия: –
- Щелкните правой кнопкой мыши проект.
- Перейдите в Android-инструменты.
- Нажмите “Переименовать пакет приложений”.
- Измените имя пакета приложения.
DONE
Самый быстрый способ сделать это в Android Studio 1.3:
- Измените имя пакета в manifest
- Перейдите в Module Settings[F4]-> Flavors , в Application Id введите одно и то же имя.
- Создайте новый пакет с таким именем: [right-click-> new-> package]
- Выберите все java файлы вашего проекта, а затем продолжите [Right-click-> Refactor-> Move->
P.S. Если вы не будете следовать этому заказу, вы можете в конечном итоге изменить все java файлы один за другим с новыми импортерами и кучей ошибок времени компиляции, поэтому порядок очень важен.
Изменение названия пакета – боль в заднице. Похоже, что разные методы работают для разных людей. Мое решение быстро и безошибочно. Похоже, что не требуется очистка или сброс затмения.
- Щелкните правой кнопкой мыши имя пакета, затем Refractor > Rename.
- Щелкните правой кнопкой мыши название проекта Android. > Переименуйте пакет приложений.
- Вручную установите имена пакетов в манифесте, которые не были изменены предыдущими шагами.
Как на андроиде переименовать приложение
Как переименовать приложение на рабочем столе Android
Во многих лаунчерах можно переименовать приложение на рабочем столе. Также для этого можно воспользоваться модулем xRenamer для Xposed Framework. Но если вам не хочется устанавливать сторонний лаунчер и возится с установкой Xposed Framework, то проще воспользоваться приложением QuickShortcutMaker.
Эта бесплатная программа имеет несколько полезных функций, но нас интересует именно смена названия игры или приложения на рабочем столе. Поэтому давайте этим займемся.
Открываем QuickShortcutMaker, переходим на вкладку «Приложения» и выбираем нужное.
Вверху тапаем по пункту «Нажмите, чтобы изменить этикетку».
Переименовываем ярлык приложения (так он будет отображаться на главном экране).
Затем просто нажимаем «Создать».
Ниже вы можете видеть пример.
На самом деле это бывает даже очень полезно. Например, у вас установлено несколько модифицированных клиентов приложения Вконтакте и вы путаетесь в них. А здесь можно и переименовывать их, и даже установить для каждого свою иконку.
Скачать QuickShortcutMaker с Google Play
(5,00 из 5, оценили: 1)
Как переименовывать ярлыки приложений на Android? — android.mobile-review.com
По материалам phonearena.com
Вам когда-нибудь хотелось переименовать приложение из числа тех, что установлены на вашем Android смартфоне или планшете? Возможно, вы не знаете, что это можно с легкостью сделать, если мы говорим об иконках приложений на домашнем экране и в списке. Сами приложения вы переименовать не сможете, и их названия останутся теми же, если вы зайдете в них или будете искать в разделе Настройки – Приложения. Ниже речь пойдет именно об иконках.
Для того, чтобы изменить название ярлыка приложения, прежде всего вам потребуется установить кастомный лаунчер для Android. О лаунчерах у нас недавно была отдельная статья. Например, подойдут Nova Launcher или Apex Launcher, которые можно бесплатно скачать в Google Play. В нашем примере используется Nova Launcher. Предположим, вы установили его и используете как дефолтный. Теперь можно быстро, буквально в несколько шагов переименовать любой ярлык приложения. Долгое нажатие на приложение, тап по появившейся опции Редактировать, затем вбиваем новое название и жмем Готово. Все, теперь ярлык называется так, как вы того хотите.
1. Вот домашний экран телефона на Android 6.0 Marshmallow, на котором в качестве лаунчера по умолчанию установлен Nova Launcher. Предположим, мы хотим переименовать ярлык Play Music. Долгое нажатие на ярлык…
2. Затем Редактировать
3. Затем тапнуть на исходное название
4. Затем вбить новое название и нажать Готово
5. Теперь ярлык называется так, как вам хочется
А те, для кого такая возможность – не новость, могут делиться в комментариях вариантами переименования приложений – разумеется, приличными 🙂
Как переименовать приложение на Android
Эта бесплатная утилита обладает массой полезных функций, но в рамках статьи остановимся исключительно на переименовании. Скачиваем, устанавливаем и запускаем QuickShortcutMaker, после чего выполняем следующие действия:
- во вкладке «Приложения» (Applications) выбираем программу, которую будем переименовывать, и переходим на неё;
- тапаем на пункт «Нажмите, чтобы изменить этикетку» (Tap to change label);
- в появившемся окне вводим новое название и подтверждаем «Ок»;
- завершаем процесс нажатием кнопки «Создать» (Create).
Как переименовать приложения на домашнем экране Android?
Первый способ — в лаунчере
Некоторые лаунчеры (например, Nova) позволяют переименовывать любые установленные приложения. Нажмите на иконку приложения, удерживайте палец, а в открывшемся контекстном меню выберите опцию «Редактировать» Откроется текстовое поле для ввода нового названия. Сохраните изменения кнопкой «Готово». В списке всех установленных приложений и в системных настройках название не поменяется.
Второй способ — модулем Xposed
Xposed — фреймворк с репозиторием модулей, которые позволяют очень гибко настраивать Android. Модуль xRenamer предназначен для переименовывания приложений, причем он влияет на названия, которые отображаются не только на домашнем экране, но и в других местах. Как с ним работать? Установите и запустите Xposed Framework, зайдите в раздел «Загрузка», найдите модуль xRenamer, перейдите на страницу загрузки, скачайте его, установите, а затем активируйте в разделе «Модули» и перезагрузите устройство. В списке приложений появится xRenamer, запустите его и переименуйте приложения, оригинальные названия которых вас не устраивают.
Инструкция по установке Xposed Framework на устройства с Android Lollipop выложена на нашем сайте. C Android 6.0 этот фреймворк несовместим.
Третий способ — приложением QuickShortcutMaker
QuickShortcutMaker меняет названия только на стартовой странице и, в отличие от лаунчера, никак не меняет интерфейс устройства. Как работать с QuickShortcutMaker?
Установите это приложение из Google Play и запустите его — вы увидите список всех установленных у вас приложений. Нажмите на любое и в правой части экрана выберите опцию «Tap to change label» — откроется поле для ввода текста. Задайте новое название и сохраните его, нажав кнопку ОК. Затем нажмите на кнопку Create, после чего иконка приложения с измененным названием появится на стартовой странице вашего устройства.
Приложения по умолчанию на Android
На Android, также как в большинстве других ОС есть возможность задать приложения по умолчанию — те приложения, которые будут автоматически запускаться для определенных действий или открытия типов файлов. Однако, настройка приложений по умолчанию не совсем очевидна, особенно для начинающего пользователя.
В этой инструкции — подробно о том, как установить приложения по умолчанию на Android телефоне или планшете, а также о том, как сбросить и изменить уже заданные для тех или иных типов файлов умолчания.
Как задать основные приложения по умолчанию
В настройках Android есть специальный раздел, который так и называется «Приложения по умолчанию», к сожалению, достаточно ограниченный: с его помощью вы можете установить только ограниченный набор основных приложений по умолчанию — браузер, номеронабиратель, приложение для сообщений, оболочку (launcher). Это меню разнится на разных марках телефонов, но в любом случае достаточно ограничено.
Для того, чтобы зайти в настройки приложений по умолчанию, зайдите в Настройки (шестеренка в области уведомлений) — Приложения. Далее путь будет следующим.
- Нажмите по иконке «Шестеренка», а затем — «Приложения по умолчанию» (на «чистом» Android), по пункту «Приложения по умолчанию» (на устройствах Samsung). На других устройствах могут быть отличающиеся, но похожие расположения нужного пункта (где-то за кнопкой настроек или на экране со списком приложений).
- Задайте приложения по умолчанию для нужных вам действий. Если приложение не задано, то при открытии какого-либо контента Android будет спрашивать, в каком приложении его открыть и сделать это только сейчас или открывать в нем всегда (т.е. установить приложением по умолчанию).
Следует учитывать, что при установке приложения того же типа, что задано по умолчанию (например, еще одного браузера), ранее заданные в пункте 2 настройки обычно сбрасываются.
Установка приложений по умолчанию Android для типов файлов
Предыдущий способ никак не позволяет задать чем будут открываться те или иные типы файлов. Однако, способ задать приложения по умолчанию для типов файлов также имеется.
Для этого достаточно открыть любой файловый менеджер (см. Лучшие файловые менеджеры для Android), в том числе встроенный в последние версии ОС файловый менеджер, который можно найти в «Настройки» — «Хранилище и USB-накопители» — «Открыть» (пункт находится внизу списка).
После этого — открыть нужный файл: если приложение по умолчанию для него не задано, то будет предложен список совместимых приложений для его открытия, а нажатие кнопки «Всегда» (или подобной в сторонних файловых менеджерах) задаст его используемым по умолчанию для этого типа файлов.
Если же приложение для этого типа файлов уже было задано в системе, то сначала потребуется сбросить настройки по умолчанию для него.
Сброс и изменение приложений по умолчанию
Для того, чтобы сбросить приложения по умолчанию на Android, зайдите в «Настройки» — «Приложения». После этого выберите то приложение, которое уже задано и для которого будет выполнятся сброс.
Нажмите по пункту «Открывать по умолчанию», а затем — кнопку «Удалить настройки по умолчанию». Примечание: на телефонах не со стоковым Android (Samsung, LG, Sony и др.) пункты меню могут несколько отличаться, но суть и логика работы остаются теми же самыми.
После выполнения сброса, вы можете использовать ранее описанные способы для того, чтобы задать нужные соответствия действий, типов файлов и приложений.
А вдруг и это будет интересно:
Почему бы не подписаться?
Рассылка новых, иногда интересных и полезных, материалов сайта remontka.pro. Никакой рекламы и бесплатная компьютерная помощь подписчикам от автора. Другие способы подписки (ВК, Одноклассники, Телеграм, Facebook, Twitter, Youtube, Яндекс.Дзен)
15.08.2016 в 12:45
А если приложение не появляется при выборе?
Хочу открыть .html через FBReadef, а его даже не предлагают… Как заставить телефон предлагать все имеющиеся приложения или чтоб как в винде — список расширений и список программ для них.
16.08.2016 в 11:08
Через какие-то сторонние файловые менеджеры можно так сделать. Но вот только не помню, через какие.
06.11.2019 в 13:42
X-plore помогает выбрать для файла. Total_commander может отправить файл на любое приложение.
31.01.2018 в 17:43
Никак не могу настроить чтобы при подключении к общедоступному WiFi где открывается сайт в котором нужно логиниться открывался через хром. Он всегда открывается через просмотр html. Через запущенное приложение я смог добраться до информации о приложении, но там нет настроек по умолчанию и сбросить их нельзя именно поэтому, потому что их нет. Но мне жизненно необходимо открывать эти сайты для подключения через хром.
14.07.2018 в 16:51
ASUS ZenPad 10 андроид 7.0 — нет описанной опции в принципе. При первом запуске видео файла выбрал по ошибке стандартный проигрыватель, который не может воспроизвести видео, и возможность поменять выбор пропала( как исправить?
06.12.2018 в 21:59
Здравствуйте. Dmitry , вопрос не по теме : есть ли приложения для андроид которые добавляют кнопки управления прибором на экранрабочий стол? пример для чего нужна кнопка : часто ломаются кнопки выключения прибора или громкости так вот добавив кнопку управления на экранрабочий стол прибора можно водя пальцем по этому экрану выключить прибор или настроить громкость. спасибо .
07.12.2018 в 14:20
а о каких приборах идет речь? Если о телевизорах или медиа-системах, то приложения — «пульты» есть в Play Маркет.
Вскрываем, модифицируем и запаковываем Android-приложения
Содержание статьи
Иногда некоторые приложения на Android чем-то не устраивают пользователя. В качестве примера можно привести назойливую рекламу. А то бывает и так — всем хороша программа, да только перевод в ней или кривой, или вовсе отсутствует. Или, например, программа триальная, а получить полную версию возможности нет. Как же изменить ситуацию?
Введение
В этой статье мы поговорим о том, как разобрать пакет APK с приложением, рассмотрим его внутреннюю структуру, дизассемблируем и декомпилируем байт-код, а также попробуем внести в приложения несколько изменений, которые могут принести нам ту или иную выгоду.
Чтобы сделать все это самостоятельно, потребуются хотя бы начальные знания языка Java, на котором пишутся приложения для Android, и языка XML, который используется в Android повсеместно — от описания самого приложения и его прав доступа до хранения строк, которые будут выведены на экран. Также понадобится умение обращаться со специализированным консольным софтом.
Итак, что же представляет собой пакет APK, в котором распространяется абсолютно весь софт для Android?
Декомпиляция приложений
В статье мы работали только с дизассемблированным кодом приложения, однако если в большие приложения вносить более серьезные изменения, разобраться в коде smali будет гораздо сложнее. К счастью, мы можем декомпилировать код dex в Java-код, который будет хоть и не оригинальным и не компилируемым обратно, но гораздо более легким для чтения и понимания логики работы приложения. Чтобы сделать это, нам понадобятся два инструмента:
- dex2jar — транслятор байт-кода Dalvik в байт-код JVM, на основе которого мы сможем получить код на языке Java;
- jd-gui — сам декомпилятор, позволяющий получить из байт-кода JVM читаемый код Java. В качестве альтернативы можно использовать Jad (www.varaneckas.com/jad); хоть он и довольно старый, но в некоторых случаях генерирует более читаемый код, нежели Jd-gui.
Использовать их следует так. Сначала запускаем 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), а рутить не всегда целесообразно, имеется как минимум три способа получить файл приложения на компьютер:
Какой из них использовать — дело вкуса; мы предпочитаем использовать отдельные приложения, поэтому опишем использование Real APK Leecher, тем более что написан он на Java и, соответственно, работать будет хоть в винде, хоть в никсах.
После запуска программы необходимо заполнить три поля: Email, Password и Device ID — и выбрать язык. Первые два — e-mail и пароль твоего гуглоаккаунта, который ты используешь на устройстве. Третий же является идентификатором устройства, и его можно получить, набрав на номеронабирателе код ##8255## и затем найдя строку Device ID. При заполнении надо ввести только ID без префикса android-.
Настройка Real APK Leecher
Хакер #170. Малварь для OS X
После заполнения и сохранения нередко выскакивает сообщение «Error while connecting to server». Оно не имеет отношения к Google Play, поэтому смело его игнорируй и ищи интересующие тебя пакеты.
Просмотр и модификация
Допустим, ты нашел интересующий тебя пакет, скачал, распаковал… и при попытке просмотра какого-нибудь XML-файла с удивлением обнаружил, что файл не текстовый. Чем же его декомпилировать и как вообще работать с пакетами? Неужели необходимо ставить SDK? Нет, SDK ставить вовсе не обязательно. На самом деле для всех шагов по распаковке, модификации и упаковке пакетов APK нужны следующие инструменты:
- архиватор ZIP для распаковки и запаковки;
- smali — ассемблер/дизассемблер байт-кода виртуальной машины Dalvik (code.google.com/p/smali);
- aapt — инструмент для запаковки ресурсов (по умолчанию ресурсы хранятся в бинарном виде для оптимизации производительности приложения). Входит в состав Android SDK, но может быть получен и отдельно;
- signer — инструмент для цифровой подписи модифицированного пакета (bit.ly/Rmrv4M).
Использовать все эти инструменты можно и по отдельности, но это неудобно, поэтому лучше воспользоваться более высокоуровневым софтом, построенным на их основе. Если ты работаешь в 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:
Здесь создается поле ad для хранения объекта класса Ad. Комментируем с помощью установки знака ### перед строкой. Продолжаем поиск. Строка 423:
Здесь происходит создание объекта. Комментируем. Продолжаем поиск и находим в строках 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. Однако, имея базовые знания, разобраться во всем этом — лишь вопрос времени.