Различать apk и jar файлы

Есть ли способ отличить эти два файла? Они оба определены как zip-файлы с помощью команды file, так есть ли способ отличить их? (Вне зависимости от продления конечно).

ПРИМЕЧАНИЕ. Пытаясь выполнить анализ файлов, оба этих файла проходят разный анализ, поэтому я должен различать их.

2
задан 23 July 2012 в 18:26

5 ответов

apk-файлы используются только Android (установщиками программ), а jar-файлы используются на Java-пластинах в целом. Вы можете видеть это по значению:

  • apk: Android PacKage
  • jar: Java ARchive
0
ответ дан 23 July 2012 в 18:26

Не с официальными инструментами, вероятно, совсем нет.

DEX-файлы - это файлы, преобразованные на языке, который машина Dalvik может понимать и выполнять, не обязательно java, DEX - это просто промежуточные файлы, предназначенные для виртуальной машины Dalvik, поэтому с технической точки зрения, нет никакой гарантии, что эти DEX-файлы из банки или из языка Java.

Во время сборки, когда создается apk, весь код, который не является нативной библиотекой, помещается в файлы DEX. «Идея фляги» просто не существует и не живет в файле apk.

0
ответ дан 23 July 2012 в 18:26

APK-файл - это просто JAR-файл, в который включены дополнительные файлы для платформы Android, например AndroidManifest.xml и classes.dex.

JAR-файл - это просто сжатый ZIP-файл с дополнительными метаданными (MANIFEST.MF и т. Д.) В папке (META-INF).

ZIP-файл представляет собой сжатое однофайловое представление папки.

Итак, в скорлупе орехов все 3 формата - это, по сути, просто ZIP-папка с дополнительными форматно-зависимыми файлами метаданных.

Используйте утилиту dx Android SDK, чтобы сгенерировать все 3 формата из одного и того же файла helloWorld.java, затем скомпоновать 3 файла, а затем отразить их по 2, чтобы убедиться, что они почти идентичны, причем 4 специфичных для формата байта различны. Все остальные байты идентичны в 3 сгенерированных файлах.

0
ответ дан 23 July 2012 в 18:26

Лучше всего проверить содержимое почтового файла. Все файлы .apk должны содержать файл AndroidManifest.xml, поэтому наличие этого файла в индексе ZIP должно быть довольно хорошим показателем того, что у вас есть файл такого типа.

Для файлов .jar проверка на META-INF/MANIFEST.MF в индексе ZIP, вероятно, является наилучшим вариантом. Обратите внимание, что пакеты Android также включают этот манифест, поэтому сначала проверьте, является ли файл файлом .apk.

Вы можете использовать аналогичные приемы для других форматов на основе ZIP. Например, файлы открытого формата документа включают файл mimetype, содержимое которого должно указывать вам конкретный тип файла.

0
ответ дан 23 July 2012 в 18:26

APK (пакет приложений Android) - это формат файла, используемый для распространения и установки прикладного программного обеспечения для операционной системы Android. Он может использоваться только с ОС Android.

JAR (Java Archive) - это формат файла архива, обычно используемый для распространения набора классов Java. Эти файлы создаются в формате ZIP и имеют расширение .jar. Они могут использоваться на нескольких устройствах , включая те, которые имеют ОС Android.

Вы можете конвертировать apk в jar, и наоборот.

APK файлы сохраняются в сжатом формате .ZIP и могут быть открыты любым инструментом распаковки Zip. Вы можете переименовать расширение файла в «.zip» и открыть файл.

Файл Jar сжимается и содержит другие файлы. Файлы Jar очень легко открываются. Есть много программ, которые будут открывать файлы JAR. Фактически, любая программа, которая может открывать zip-файлы, может открывать jar-файлы. Формат фляги идентичен формату файла почтового индекса. Среда выполнения Java необходима для открытия файлов Jar.

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

0
ответ дан 23 July 2012 в 18:26

Другие вопросы по тегам:

Похожие вопросы: