Как узнать имя пакета приложения на андроид
Перейти к содержимому

Как узнать имя пакета приложения на андроид

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

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

Итак, как я могу увидеть полное имя пакета какого-либо приложения? Мол, имя приложения «Тест», и мне нужно увидеть его пакет com.test.mytest .

Если вам удобно использовать командную строку, мне нравится решение Android pm pm. Его можно легко вызвать с помощью adb, например:

Замените test на любой пакет, который вы ищете.

У pm есть множество опций, которые могут быть полезны в зависимости от того, что вы хотите сделать:

Просто поделитесь приложением из Google Play Store где-нибудь (нажав кнопку «Поделиться» на странице приложения) и просмотрите общее значение.

(Если вы не можете найти его в Google Play: вы можете долго нажимать на значок приложения и нажимать «Информация о приложении». Перейдите в конец страницы Android, а затем нажмите «Сведения о приложении в магазине»)

Лучше всего использовать APK-экстрактор . Вам на самом деле не нужно извлекать APK, это приложение будет отображать полное имя для каждого установленного приложения. Это должно охватывать все приложения.

[Android] Как узнать название пакета и activity из apk-приложения

Задача: узнать название пакета Android-приложения в формате apk и запускаемого активити.

Решение:

Можно взять и открыть AndroidManifest.xml, чтобы посмотреть нужные данные, к примеру, через команду cat:

Большая часть содержимого файла AndroidManifest.xml является нечитабельной, т.к. сам файл является двоичным, а то, что поддается чтению, имеет не самый удобный формат для восприятия. Мы видим, что имя пакета имеет название com.mobileshop, но мы не видим название запускаемого активити.

Можно воспользоваться услугами утилиты AAPT (Android Asset Packaging Tool), которая представляет из себя упаковщик для сборки приложения, библиотек и ресурсов в единый apk-файл. Утилита входит в состав Android SDK и располагается в моем случае в директории /Applications/AndroidSDK/build-tools/17.0.0/.

Чтобы узнать название пакета apk-приложения:

./aapt dump badging <path_to_apk> | grep «package»

Чтобы узнать название запускаемого активити apk-приложения:

./aapt dump badging /User/Desktop/HTC_Market_v2.0.apk | grep «launchable-activity»

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

Мне нужно получить имя пакета из Android APK. Я попытался распаковать APK и прочитать содержимое AndroidManifest.xml , но, похоже, это не текстовый файл.

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

19 ответов

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

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

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

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

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

Если вы смотрите на google play и хотите узнать его имя пакета, вы можете посмотреть url или адресную строку. Вы получите имя пакета. Вот!—1—> — имя пакета

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

apk_package.sh

запустите его так:

на основе ответа @hackbod . но связано с windows.

aapt команда находится на Android\SDK\build-tools\version . Если вам нужна дополнительная информация о том, что appt command (Android Asset Packaging Tool) прочитайте это https://stackoverflow.com/a/28234956/812915

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

aapt dump badging <path-to-apk>

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

aapt dump badging <path-to-apk> | findstr -n «package: name» | findstr «1:»

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

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

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

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

требования

aapt — Android инструмент упаковки активов, часть SDK Tools загрузить

Решение 1

используя awk указать ‘ в качестве разделителя полей найдите строку с package: name= , и напечатать только 2-е «поле» в строку:

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

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

решение 2

используя awk указать » в качестве разделителя полей найдите строку с package= , и напечатать только 2-е «поле» в строку:

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

решение 3

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

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

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

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

aapt list -a $PATH_TO_YOUR_APK | sed -n «/^Package Group[^s]/s/.*name=//p»

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

  1. aapt извлекает информацию APK
  2. Grep «пакет», чтобы сохранить только строку о пакете информации
  3. Make sed замените всю строку именем пакета, используя только следующее регулярное выражение: package: name='([a-z0-9.]*)’.* и замена первой (и только) соответствующей группой.

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

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

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

простым решением было бы открыть Android Studio — > Build — > Analyze Apk. просмотрите и выберите APK теперь вы можете найти имя пакета и в значительной степени вы можете прочитать.

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

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

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

открыть Appium — > настройка Android, выберите целевой файл apk. И тогда вы получаете все, что хотите, информацию о пакете, информацию о деятельности.

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

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

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

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

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

Примечание

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

работает:

  • здесь я добавил apk в папку на рабочем столе » \Desktop\APK\Instant_Instal\».
  • команда %adb% install %apk% устанавливает приложение, если устройство подключено.
  • этот %aapt% dump badging %APKFullPath% | FIND «package: name tokens=2 delims= ‘» %%s IN (temp.txt) установите pkgName=%%s extracts the package name and assigns to переменная pkgName
  • наконец-то %adb% shell monkey -p %pkgName% -c android.intent.category.LAUNCHER 1 запускает приложение.

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

Как я не смог найти имя пакета в .файл apk с редактором (как предложено выше), я проверил функции в приложении «ES Datei Explorer» / «ES File Explorer» (бесплатная версия), который я уже установил. В этом инструменте имя пакета отображается правильно.
Поскольку я думаю, что хороший проводник не должен отсутствовать на телефоне, я предлагаю использовать этот инструмент (если вы уже установили apk на мобильном телефоне и должны знать имя пакета).

Я рекомендую вам сохранить его .txt, потому что он может быть очень длинным. Итак:

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

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