AndroidManifest.xml: где находится и как его найти

Файл AndroidManifest.xml в проекте Android Studio находится по пути app/src/main/AndroidManifest.xml, а внутри готового APK-файла он лежит в корне архива, но в скомпилированном бинарном виде. Именно путаница между этими двумя расположениями чаще всего приводит к ситуации, когда разработчик открывает APK архиватором, находит нужный файл, но видит вместо текста набор нечитаемых символов.

Манифест — это обязательный конфигурационный файл каждого Android-приложения. В нём объявляются разрешения (permissions), компоненты приложения (активности, сервисы, ресиверы), минимальная версия SDK, имя пакета и другие критичные параметры. Без корректного манифеста система Android просто откажется устанавливать и запускать приложение, поэтому знать, где он лежит, нужно и при разработке, и при анализе чужих приложений.

Где находится AndroidManifest.xml в проекте Android Studio

В стандартной структуре проекта, которую создаёт Android Studio, манифест расположен по адресу app/src/main/AndroidManifest.xml. Здесь app — это имя модуля (по умолчанию основной модуль приложения называется именно так), а main — основной source set, то есть набор исходников для основной сборки.

В самой среде разработки искать файл вручную по папкам не обязательно. Панель Project слева в режиме отображения Android группирует файлы по типу: манифест показывается в отдельном узле app > manifests > AndroidManifest.xml. Если переключить режим отображения на Project Files, вы увидите реальную структуру каталогов на диске.

Быстрый способ открыть файл — использовать поиск по проекту. Нажмите двойной Shift и введите AndroidManifest — среда покажет все манифесты, найденные в проекте, включая манифесты подключённых библиотек.

Манифесты модулей, flavor и build variants

В проекте может быть не один манифест, а несколько. Каждый модуль (например, подключённая библиотека) имеет собственный файл манифеста, а дополнительные source sets создают свои варианты. Типичные расположения выглядят так:

  • 📁 app/src/main/AndroidManifest.xml — основной манифест приложения
  • 📁 app/src/debug/AndroidManifest.xml — дополнения только для отладочной сборки
  • 📁 app/src/release/AndroidManifest.xml — дополнения для релизной сборки
  • 📁 app/src/androidTest/AndroidManifest.xml — манифест для инструментальных тестов
  • 📁 library/src/main/AndroidManifest.xml — манифест подключённого модуля-библиотеки

При сборке все эти файлы объединяются инструментом Manifest Merger в один итоговый манифест. Если после сборки в приложении появилось разрешение, которого вы не прописывали, — вероятная причина в том, что его добавила одна из подключённых библиотек. Проверить результат слияния можно на вкладке Merged Manifest внизу редактора манифеста в Android Studio: там видно, из какого источника пришла каждая строка.

⚠️ Внимание: редактирование только src/main/AndroidManifest.xml не всегда меняет итоговый манифест. Если для сборки задан свой source set или библиотека принудительно добавляет атрибуты, изменения могут перекрываться при слиянии. Всегда сверяйтесь с вкладкой Merged Manifest.

Где лежит объединённый манифест после сборки

После компиляции проекта итоговый манифест можно найти в папке сборки. Типичный путь выглядит как app/build/intermediates/merged_manifest/debug/AndroidManifest.xml — точная структура подпапок зависит от версии Android Gradle Plugin, поэтому если файла нет по указанному адресу, поищите его внутри каталога app/build/intermediates через поиск проводника.

Этот файл полезен для диагностики: он показывает, что реально попало в приложение после слияния всех источников. Сравнение манифеста из src/main с объединённым вариантом — стандартный приём при отладке конфликтов разрешений и компонентов.

📊 С какой целью вы ищете AndroidManifest.xml?
Редактирую свой проект в Android Studio
Хочу посмотреть манифест готового APK
Разбираюсь со структурой Android-приложения
Ищу причину ошибки сборки

Где находится AndroidManifest.xml внутри APK-файла

APK — это обычный ZIP-архив, и манифест в нём лежит прямо в корне: AndroidManifest.xml без вложенных папок. Однако есть важный нюанс: внутри APK манифест хранится в скомпилированном бинарном формате (binary XML), а не в виде обычного текста. Если открыть архив и просмотреть файл блокнотом, вы увидите бессмысленный набор символов.

Чтобы прочитать манифест из готового APK, нужен инструмент, который умеет декодировать бинарный XML. Распространённые варианты:

  • 🔧 Apktool — декомпилирует ресурсы и манифест в читаемый XML
  • 🔧 Jadx — показывает манифест вместе с декомпилированным кодом в удобном GUI
  • 🔧 APK Analyzer — встроен в Android Studio, открывается через Build > Analyze APK
  • 🔧 Команда aapt dump badging app.apk из Android SDK — выводит основные данные манифеста в консоль

Для быстрой проверки разрешений без установки инструментов достаточно команды:

aapt dump permissions app.apk

Учтите, что путь к утилите aapt зависит от расположения Android SDK на вашем компьютере — обычно она лежит в подпапке build-tools внутри каталога SDK.

Почему манифест в APK не читается блокнотом

При сборке AAPT компилирует XML в бинарный формат: строки выносятся в отдельный пул, теги заменяются числовыми идентификаторами. Это уменьшает размер файла и ускоряет его разбор системой. Обратное преобразование выполняют Apktool, Jadx и APK Analyzer.

Как найти манифест на самом устройстве Android

На установленном приложении манифест отдельным файлом не лежит — система хранит его внутри APK, который находится в защищённом каталоге вида /data/app/.... Без root-прав доступ к этой папке закрыт, и это нормальное ограничение безопасности Android.

Если нужно просто посмотреть разрешения и компоненты установленного приложения, разбирать файловую систему не требуется. Есть более безопасные способы: системные настройки приложения показывают список разрешений, а на компьютере через ADB можно выполнить команду, которая выводит сведения о пакете. Команда adb shell dumpsys package имя.пакета показывает подробную информацию, включая задекларированные разрешения и компоненты. Используйте ADB только если понимаете, что делаете, и предварительно включите отладку по USB в настройках разработчика.

⚠️ Внимание: не пытайтесь заменить или отредактировать манифест установленного приложения напрямую — после модификации APK его подпись станет недействительной, и система откажется запускать приложение. Любые правки манифеста выполняются в исходном проекте до сборки.

Типичные ошибки при поиске манифеста

Частая ситуация — файл «пропал» из проекта после переименования модуля или импорта проекта из другого репозитория. В таком случае проверьте, какой путь к манифесту указан в файле build.gradle модуля: параметр sourceSets { main { manifest.srcFile '...' } } может переопределять расположение по умолчанию.

Вторая типичная проблема — ошибка слияния манифестов при сборке с сообщением вида Manifest merger failed. Она означает конфликт атрибутов между манифестами модулей или source sets. Откройте вкладку Merged Manifest: там подсвечиваются конфликтующие строки и указано, из какого файла они пришли.

СитуацияГде искатьИнструмент
Редактирование своего проектаapp/src/main/AndroidManifest.xmlAndroid Studio
Проверка итогового манифеставкладка Merged ManifestAndroid Studio
Анализ готового APKкорень APK (бинарный XML)Jadx, Apktool, APK Analyzer
Разрешения установленного приложениянастройки приложения / ADBсистема Android, aapt

☑️ Как найти AndroidManifest.xml в проекте

Выполнено: 0 / 5

Что содержит манифест и зачем его открывают

Кратко перечислим, что вы увидите внутри файла. Корневой элемент <manifest> задаёт имя пакета, а вложенные теги описывают конфигурацию приложения. На практике чаще всего редактируют блок <uses-permission> (разрешения), <application> (иконка, тема, имя класса Application) и объявления активностей с intent-filter для точки входа.

Знание структуры помогает быстро ориентироваться: если приложение не появляется в списке установленных, проверьте, есть ли у главной активности фильтр с android.intent.action.MAIN и категорией LAUNCHER. Если не работает доступ к интернету — убедитесь, что объявлено разрешение android.permission.INTERNET.

Часто задаваемые вопросы

Можно ли открыть AndroidManifest.xml из APK обычным блокнотом?

Нет. Внутри APK манифест хранится в скомпилированном бинарном формате, поэтому текстовый редактор покажет нечитаемые символы. Используйте Jadx, Apktool или APK Analyzer из Android Studio — они декодируют файл в обычный XML.

Почему в проекте несколько файлов AndroidManifest.xml?

Каждый модуль и каждый дополнительный source set (debug, release, androidTest, product flavors) могут иметь собственный манифест. При сборке все они объединяются инструментом Manifest Merger в один итоговый файл.

Где посмотреть итоговый манифест после слияния?

Откройте манифест в Android Studio и переключитесь на вкладку Merged Manifest внизу редактора. Также объединённый файл сохраняется в каталоге app/build/intermediates после сборки проекта.

Можно ли изменить манифест установленного приложения?

Напрямую — нет. Манифест находится внутри подписанного APK, и любая модификация нарушит подпись. Правки вносятся в исходный проект до сборки; пересборка чужого приложения с изменённым манифестом требует переподписи и может нарушать условия лицензии.

Что делать, если Android Studio не видит манифест в проекте?

Проверьте, существует ли файл по пути app/src/main/AndroidManifest.xml на диске, и нет ли в build.gradle модуля переопределения через manifest.srcFile. Затем выполните синхронизацию проекта с Gradle через File > Sync Project with Gradle Files.