как узнать название пакета приложения на android

Прочитайте имя пакета Android APK

Как я могу извлечь имя пакета APK?

19 ответов

вы можете установить apk на свой телефон, затем

connect используя adb, вы можете запустить adb shell и выполнить PM list packages-f, который показывает имя пакета для каждого установленного apk.

Если вы открываете AndroidManifest.xml с помощью MS Notepad, поиск фразы package и вы найдете следующее:

где XXX.ХХХХХХХ.xxxxxxx-это имя вашего пакета, просто написанное пробелом после каждого символа.

это полезный способ, когда у вас нет каких-либо конкретных установленных инструментов.

следующий скрипт bash отобразит имя пакета и основное имя действия:

apk_package.sh

на dump суб-команда aapt используется для отображения значений отдельных элементов или частей пакет:

если вы хотите увидеть только строку с package: name информация, использовать findstr

надеюсь, что это поможет другому пользователю windows!

Программный Ответа

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

пример: com.example.appname (и ничего еще)

требования

Решение 1

недостатком этого метода является то, что он полагается на aapt для вывода информационных полей пакета в том же порядок:

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

решение 2

слабость этого метода заключается в том, что он полагается на aapt для вывода package= только в Android Manifest: раздел вывода. У нас нет обязательств от разработчиков поддерживать это формат.

решение 3

разверните файл apk с помощью apktool d и прочитайте AndroidManifest.XML.

это был бы лучший метод, но AndroidManifest.xml-это двоичный файл, и все ответы SO, которые я вижу для преобразования его в текст, не работают. (Используя apktool d вместо простого unzip должен делать это для вас, но это не так.) прокомментируйте, пожалуйста, если у вас есть решение этой проблемы

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

другое решение-использовать список aapt и использовать sed для анализа этого:

Я думаю, что лучший и самый простой способ извлечь только имя пакета в Linux

вы можете извлечь AndroidManifest.xml из APK, удалите все нулевые байты, пропустите все до тех пор, пока после строки «манифест», а затем вы находитесь в байте длины, за которым следует имя пакета (и что происходит после него). Для трудной задачи я использую великое гема tool, поэтому команда выглядит так:

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

есть очень простой способ, если у вас есть APK allready на вашем смартфоне. Просто используйте одно из этих приложений:

вы можете установить Package_Name_Viewer.apk на эмуляторе, а затем вы можете увидеть имя пакета всех установленных приложений на эмуляторе.

Я также пробовал де-компиляцию, она работает, но недавно я нашел самый простой способ:

Загрузите и установите Appium из веб-сайт Appium

чтобы использовать это в пакетных сценариях, удобно, чтобы скрипт возвращал только имя пакета (например, для удаления приложения, когда у вас есть APK).

вот скрипт, который я использую:

чтобы вы могли написать:

ADB uninstall`. /getPackageName.sh файл.apk’

для Windows следующее работало для меня:

Примечание

пожалуйста, отредактируйте пути АБР, aapt, APKPath по пути АБР, aapt, и место АПК в вашей системе.

работает:

по сути, приведенный выше код устанавливает apk из заданного местоположения на рабочем столе «Desktop\APK\Instant_Instal\» на устройство и запускает приложение.

Источник

Получение списка приложений в Android

как узнать название пакета приложения на android

Android SDK предоставляет много средств для работы с системой. В том числе он позволяет получать список приложений, которые установлены на устройстве. Это может быть полезно, когда нужно получить сведения о сторонних приложениях (размер APK, путь до приложения, имя пакета и т.д.). Например, в наших приложениях получение списка, содержащего сторонние приложения, играет большую роль: в GreenBro с помощью этого списка выводятся сведения о приложениях, а также выполняются различные действия.

как узнать название пакета приложения на android

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

В этой статье мы рассмотрим, как можно получать список приложений, установленных на устройстве, а также как происходит установка приложений на устройство.

Класс PackageManager

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

Получить экземпляр класса PackageManager можно с помощью метода getPackageManager(). PackageManager предоставляет методы для запросов к установленным пакетам и соответствующим разрешениям.

Где хранятся файлы APK на Android?

В зависимости от типа данных, на Androiid файлы могут храниться в следующих местах:

Как PackageManager хранит информацию о приложении?

Менеджер пакетов хранит информацию о приложении в трёх файлах, расположенных в /data/system.

packages.xml

Этот XML-файл содержит список разрешений и пакеты\приложения. Он хранит две вещи: разрешения и пакет. Например:

Разрешения хранятся в теге

. Каждое разрешение имеет три атрибута: name, package и protection. Атрибут name это имя разрешения, которое мы используем в AndroidManifest.xml. Атрибут package указывает на пакет, которому принадлежит разрешение, в большинстве случаев это «android». Атрибут protection указывает на уровень безопасности.

содержит 10 атрибутов и несколько подтегов.

АтрибутОписание
nameИмя пакета
codePathПуть установки APK
nativeLibraryPathНативная библиотека, расположенная по умолчанию в /data/data/ /lib
flagХранит флаги ApplicationInfo
ftВремя в шестнадцатtричном формате
ltВремя установки в шестнадцатеричном формате
utВремя последнего обновления в шестнадцатеричном формате
versionКод версии из AndroidManifest.xml
sharedUserIdИдентификатор пользователя Linux, который будет использоваться совместно с другими приложениями.
userIdИдентификатор пользователя Linux

Подтеги же здесь следующие:

содержат разрешения, которые разработчик установил в AndroidManifest.xml

packages.list

Это простой текстовый файл, содержащий имя пакета, идентификатор пользователя, флаги и каталог data.

package-stopped.xml

Этот файл содержит список пакетов, которые были остановлены. Остановленные приложения не могут принимать широковещательные сообщения.

Получаем список приложений

Рассмотрим получение списка установленных приложений на примере GreenBro.

При запуске приложения запускается AsyncTask, внутри которого получаем экземпляр PackageManager и затем копируем в список List все данные об установленных приложениях.

Метод getInstalledApplications() принимает в качестве параметра флаг GET_META_DATA, который определяет, что нам нужные метаданные каждого пакета.

Результатом является список объектов ApplicationInfo для каждого установленного приложения. Класс ApplicationInfo предоставляет подробную информацию о пакете, собранную из тега в AndroidManifest.xml, нам оттуда нужны лишь самые важные данные.

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

Здесь с помощью метода getPackageInfo() класса PackageManager мы получаем общую информацию о приложении по заданному имени пакета. После эта информация объединяется с информацией, полученной от getInstalledApplications() и сохраняется в объекте AppInfo со следующими полями:

Чтобы узнать название приложения, можно также воспользоваться PackageManager, как показано ниже.

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

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

Получение списка приложений в Android : 4 комментария

Подскажите пожалуйста, в конструкции:
final PackageManager pm = context.getPackageManager();
List apps = new ArrayList();
List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
Чем является «context»?

Это локальная переменная, Вы можете передавать контекст из активити или фрагмента

» List packages = pm.getInstalledApplications( »

а есть ли функция наподобие getRunnedApplications(), которая выдает список запущенных последних приложений?

как отличить приложение от сервиса? Проверка на системное приложение не помогает

Источник

Как удалить установленные с завода приложения на Android смартфоне или планшете без Root

как узнать название пакета приложения на android

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

Сегодня я хочу рассказать вам как избавиться от «мусорного» (bloatware) программного обеспечения, которое порой занимает достаточно серьезный объем встроенной памяти или которое работая в фоновом режиме замедляет ваше устройство и впустую расходует заряд его батареи.

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

Как удалить установленные с завода Android приложения

1. Прежде всего вам потребуется установить на смартфон или планшет приложение Инспектор приложения, которое вы можете скачать с этой страницы Google Play Маркет.

как узнать название пакета приложения на android

2. Теперь вам потребуется наличие на своем компьютере программы ADB. Раньше она шла в составе Google SDK, но с недавних пор вы можете скачать её на свой компьютер отдельно.

Скачать ADB (вместе с Fastboot) от Google вы можете по следующим ссылкам:

3. Чтобы ваш смартфон или планшет мог работать с программой ADB (и Fastboot) вам нужно в меню настроек его системы, в скрытом разделе «Для разработчиков» включить режим отладки через USB. Как его найти и включить читайте в этом материале.

4. Подключите ваш смартфон к компьютеру с помощью USB кабеля, перейдите на компьютере в папку с программой ADB и запустите окно командной строки Windows. Для этого в проводнике введите в адресной строке cmd и нажмите «Enter».

как узнать название пакета приложения на android

5. В окне командной строки, Power Shell или терминала выполните команду:

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

как узнать название пакета приложения на androidкак узнать название пакета приложения на android

6. Теперь вам нужно узнать имя пакета приложения, которое вы хотели бы удалить со своего смартфона или планшета. В этом нам поможет установленное ранее приложение Инспектор приложений (Application Inspector)

Запустите его и в списке установленных приложений («App List») выберите то, которое вам нужно. Например, если я хочу удалить приложение Xperia Transfer Mobile, я нахожу его в списке App List и выбираю.

как узнать название пакета приложения на android

При этом откроется окно со сведениями о приложении где под наименованием приложения вы увидите имя его пакета. В нашем случае это com.sonymobile.xperiatransfermobile

как узнать название пакета приложения на android

7. На компьютере в окне командной строки введите по очереди две команды:

как узнать название пакета приложения на android

после ввода второй команды дождитесь появления на экране строки «Success» сообщающей об успешном её выполнении:

как узнать название пакета приложения на android

Всё, приложение Xperia Transfer Mobile со смартфона удалено. Если вы теперь зайдете в раздел «Приложения» меню настроек системы, вы увидите, что напротив его имени стоит пометка «Не установлено».

Источник

Найти имя пакета для приложений Android, чтобы использовать Intent для запуска приложения Market из Интернета

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

Есть ли способ получить имя пакета, кроме как просто связаться с разработчиками и спросить?

Кроме того, оказывается, что эти инструкции действительно не работают для создания веб-гиперссылок. Они дают вам URI для ссылки в строке кода Java в другом приложении для Android. Наш сайт находится в Drupal, поэтому Java не собирается работать.

Для iPhone я нашел легкие инструкции для получения стиля URL / ссылки, который мне нужен, из магазина iTunes, поэтому я ищу такую ​​информацию.

Это зависит от того, откуда именно вы хотите получить информацию. У вас есть множество вариантов:

После того как вы получили имя пакета, вы просто market://search?q=pname:

. Оба будут открывать рынок на устройстве Android; Последний, очевидно, имеет потенциал для работы и с другим оборудованием (это не в последнюю очередь).

Используйте aapt из SDK как

Это напечатает имя пакета вместе с другой информацией.

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

apk_start.sh

Затем, чтобы запустить приложение в эмуляторе, просто укажите имя файла APK так:

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

Вы можете остановить приложение таким же образом, используя этот скрипт:

apk_stop.sh

Важное примечание : aapt можно найти здесь:

Следующий код отобразит их:

Не уверен, что вам все еще нужно это, но в http://www.appbrain.com/ вы просматриваете приложение, а имя пакета находится в URL-адресе. Например: http://www.appbrain.com/app/fruit-ninja/ com.halfbrick.fruitninja – это ссылка на фруктовый ниндзя. Обратите внимание на жирный

Добавление к приведенным выше ответам. Чтобы найти имя пакета установленных приложений на любом устройстве Android, перейдите в раздел Хранение / Android / data /

Вот простой способ получить полный пакет приложения. Мы можем использовать приложение astro file manager. Вы можете получить его на рынке Android. Astro app manager покажет нам полный пакет приложений.

Вы можете выполнить поиск в Интернете в Google Play Store. При обнаружении проверьте URL-адрес, например https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en.

Параметр id соответствует имени пакета приложения. В случае URL-адреса в примере имя пакета – lutey.FTPServer.

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

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

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

Теперь вы можете найти имена пакетов всех приложений, установленных на вашем телефоне.

как узнать название пакета приложения на android

Если вам нужна эта информация в телефоне, лучше всего использовать приложение типа «APKit», которое отображает полное имя пакета для каждого приложения в вашем телефоне. Затем эту информацию можно использовать в телефоне.

Источник

Как исследовать приложение для Android

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Общеизвестно, что приложения для Android распространяются в виде файлов пакетов Android Application, или файлов APK для краткости. Тем не менее, большинство людей смотрит на APK как черный ящик и понятия не имеет, как оно создано или что внутри него. Даже у большинства разработчиков приложений есть только поверхностное понимание анатомии APK. В интегрированных средах разработки, таких как Android Studio, требуется всего один щелчок, чтобы преобразовать проект Android в APK.

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

Предпосылки

Чтобы следовать, вам нужно:

1. Зачем заглядывать внутрь в APK?

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

Обучение

Если вы только начали изучать разработку приложений для Android, вы можете многому научиться, просматривая APK-файлы популярных приложений или приложений, созданных профессионалами. Например, просмотрев файлы макета XML приложения, которые хорошо смотрятся на нескольких размерах экрана, вы можете улучшить свои собственные навыки создания макета.

Безопасность

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

2. Как создается APK?

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

Проекты Android состоят в основном из исходного кода Java, XML-макетов, метаданных XML и активов, таких как изображения, видео и звуки. Прежде чем операционная система Android сможет использовать все эти файлы, их необходимо преобразовать в форму, которую она понимает. Это преобразование включает в себя множество промежуточных задач, которые обычно называются процессом сборки Android. Конечным результатом процесса сборки является APK или пакет приложений для Android.

В проектах Android Studio Android-плагин для Gradle обрабатывает все промежуточные задачи процесса сборки.

Одной из первых важных задач является создание файла с именем R.java. Это файл, который позволяет разработчикам легко получать доступ к макету проекта и ресурсам в своем Java-коде с помощью числовых констант. Для создания файла используется инструмент под названием aapt, который является коротким для Android Asset Packaging Tool. Инструмент также преобразует все ресурсы XML вместе с файлом манифеста проекта в двоичный формат.

Все файлы Java, включая R.java, затем преобразуются в файлы классов с использованием компилятора Java. Как вы уже знаете, файлы классов состоят из байт-кода, который может быть интерпретирован механизмом выполнения Java. Однако Android использует специальный тип Android runtime (ART), который оптимизирован для мобильных устройств. Поэтому, как только все файлы классов были сгенерированы, инструмент, который называется dx, используется для перевода байт-кода в байт-код Dalvik, формат, который понимает ART.

После обработки ресурсов и файлов Java они помещаются в файл архива, который очень похож на файл JAR. Затем архивный файл подписывается с использованием закрытого ключа, который принадлежит разработчику приложения. Эти две операции выполняются плагином Gradle без использования каких-либо внешних инструментов. Ключ разработчика, однако, получен из хранилища ключей, управляемого keytool.

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

3. Анализ содержания APK

Теперь, когда вы понимаете, как файлы APK создаются и используются, давайте откроем их и посмотрим на его содержимое. В этом уроке мы используем APK приложения под названием Sample Soft Keyboard, которое предварительно устанавливается на эмулятор Android. Однако, если вы предпочитаете использовать физическое устройство, вы можете так же легко использовать APK любого приложения, которое вы установили на нем.

Шаг 1: Перенос APK на компьютер

Вывод команды выше выглядит следующим образом:

Шаг 2: Извлечение содержимого APK

как узнать название пакета приложения на androidкак узнать название пакета приложения на android как узнать название пакета приложения на android

Если вы разработчик приложений, многие файлы в APK должны выглядеть знакомыми. Однако, помимо изображений в папке res, файлы находятся в формате, с которым вы не можете работать без помощи нескольких инструментов.

Шаг 3: Расшифровка двоичных файлов XML

Android SDK включает в себя все инструменты, необходимые для анализа содержимого APK. Вы узнали ранее, что aapt используется для упаковки ресурсов XML во время процесса сборки. Он также может использоваться для чтения большого количества информации из APK.

Например, вы можете использовать опцию dump xmltre e для чтения содержимого любого двоичного XML-файла в APK. Вот как вы можете прочитать файл макета с именем res/layout/input.xml:

Результат должен выглядеть примерно так:

Это не XML, но благодаря отступу и ярлыкам, например N для пространства имен, E для элемента и атрибуту A, вы должны быть в состоянии прочитать его.

Шаг 4: Расшифровка строк

На предыдущем шаге вы видели, что дешифрованный XML имеет шестнадцатеричные числа вместо строк. Эти числа являются ссылками на строки в файле с именем resources.arsc, который представляет собой таблицу ресурсов приложения.

Вы можете использовать параметр dump resources для aapt для просмотра таблицы ресурсов. Вот как:

Из вывода команды вы можете определить точные значения строк, используемых в приложении. Вот запись для одного из шестнадцатеричных чисел в XML:

Шаг 5: Разборка Dalvik Bytecode

Наиболее важным файлом в APK является class.dex. Это файл, который используется во время работы приложения Android во время запуска приложения. Он содержит байт-код Dalvik, сгенерированный во время процесса сборки.

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

Если вы откроете classes.dasm, вы увидите, что у него есть сотни строк низкоуровневого кода, который выглядит так:

как узнать название пакета приложения на androidкак узнать название пакета приложения на android как узнать название пакета приложения на android

Объем информации, доступной в формате XML, меньше, но дает вам представление о классах Java, методах и полях, присутствующих в приложении.

как узнать название пакета приложения на androidкак узнать название пакета приложения на android как узнать название пакета приложения на android

Заключение

В этом уроке вы узнали, как создается APK и что он содержит. Вы также узнали, как использовать инструменты, доступные в Android SDK, для расшифровки содержимого файлов APK. Документации об этих инструментах не так много, но поскольку все они с открытым исходным кодом, вы можете попробовать прочитать их подробный код с комментариями, чтобы узнать о них больше.

Если вы ищете что-то более простое в использовании, вы можете попробовать использовать популярные сторонние инструменты, такие как dex2jar, который генерирует более читаемый дизассемблированный код или JADX, декомпилятор, который может генерировать Java-код.

Источник

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

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