Есть ли способ отличить эти два файла? Они оба определены как zip-файлы с помощью команды file
, так есть ли способ отличить их? (Вне зависимости от продления конечно).
ПРИМЕЧАНИЕ. Пытаясь выполнить анализ файлов, оба этих файла проходят разный анализ, поэтому я должен различать их.
apk-файлы используются только Android (установщиками программ), а jar-файлы используются на Java-пластинах в целом. Вы можете видеть это по значению:
Не с официальными инструментами, вероятно, совсем нет.
DEX-файлы - это файлы, преобразованные на языке, который машина Dalvik может понимать и выполнять, не обязательно java, DEX - это просто промежуточные файлы, предназначенные для виртуальной машины Dalvik, поэтому с технической точки зрения, нет никакой гарантии, что эти DEX-файлы из банки или из языка Java.
Во время сборки, когда создается apk, весь код, который не является нативной библиотекой, помещается в файлы DEX. «Идея фляги» просто не существует и не живет в файле apk.
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 сгенерированных файлах.
Лучше всего проверить содержимое почтового файла. Все файлы .apk
должны содержать файл AndroidManifest.xml
, поэтому наличие этого файла в индексе ZIP должно быть довольно хорошим показателем того, что у вас есть файл такого типа.
Для файлов .jar
проверка на META-INF/MANIFEST.MF
в индексе ZIP, вероятно, является наилучшим вариантом. Обратите внимание, что пакеты Android также включают этот манифест, поэтому сначала проверьте, является ли файл файлом .apk
.
Вы можете использовать аналогичные приемы для других форматов на основе ZIP. Например, файлы открытого формата документа включают файл mimetype
, содержимое которого должно указывать вам конкретный тип файла.
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 на вашем компьютере, требуется дополнительное программное обеспечение.