Vendor image что это
What is Vendor.img?
Breadcrumb
Kangaji
Senior Member
I’ve seen this question asked a few times, but no one ever answers it. I tried looking around on other sites, but can’t seem to find an answer.
I just came over from a Galaxy S5, and I don’t think we ever used those. Is there anybody who’d be willing to point me in the direction of knowing?
fury683
Senior Member
Jay-Taicho
Senior Member
indiecognition
Member
I’ve been curious about this, too.
Also wondering how the Vendor partition differs from System. What do the data/functions in the Vendor partition do?
EFS partition seems to be specific to the individual device (unique IMEI). Is Vendor specific to each phone too, or do all Nexus 6Ps have the same thing in the Vendor partition (assuming they’re on the same build of Android)?
Gorgtech
Senior Member
Jay-Taicho
Senior Member
SlimSnoopOS
Senior Member
Jay-Taicho
Senior Member
Edit: FYI, just found this in PureNexus FAQ’s:
Q: What is the vendor.img/vendor.zip? (5X and 6P only)
A: The vendor partition is new to Nexus phones with the 5X and 6P. Previous devices had the vendor files (proprietary binaries and drivers) within the system partition (/system/vendor); on these devices, they now have it in their own partition (/vendor). If this is not up to date, you will get an error message and need to flash the latest one so your phone continues to work properly. Beans has made this a TWRP flashable file available in the OP of the 5X and 6P threads (also linked below) so you do not have to fastboot it.
Llaver
Member
Shaglok
Senior Member
redduc900
Senior Member
jameeldroid
Senior Member
I have seen it in many phones other than mentioned in the thread, it is even in infinix phones. what i think is it contains apps from google like maps, drive, gmail, photos, and also some apps from the manufacturer of the phone. why i think this is the case? here is the my guess.
yesterday when i tried to remove google bloatware and manufacturer bloatware with root permissions etc. it didn’t work.
i have magisk root, i had set selinux permissive as someone told me it would help BUT i was still unable to remove bloatware. they were removed for now but whenever i rebooted my phone, they were reinstalled and i think this vendor file does that.
as per google’s android documents here is the difinitoin.
vendor: The vendor partition contains any binary that is not distributable to the Android open source project.
means, google apps are never distributed with AOSP but manufacturers does that via vendor.img to make it non-removable? i guess.
Lawlrus
Senior Member
I have seen it in many phones other than mentioned in the thread, it is even in infinix phones. what i think is it contains apps from google like maps, drive, gmail, photos, and also some apps from the manufacturer of the phone. why i think this is the case? here is the my guess.
yesterday when i tried to remove google bloatware and manufacturer bloatware with root permissions etc. it didn’t work.
i have magisk root, i had set selinux permissive as someone told me it would help BUT i was still unable to remove bloatware. they were removed for now but whenever i rebooted my phone, they were reinstalled and i think this vendor file does that.
as per google’s android documents here is the difinitoin.
vendor: The vendor partition contains any binary that is not distributable to the Android open source project.
means, google apps are never distributed with AOSP but manufacturers does that via vendor.img to make it non-removable? i guess.
Not sure why you can’t remove system apps, sounds like user error. I have never had an issue removing something with root and titanium backup.
The vendor contains what it says it does the binarys, blobs and other interworking’s of the device that are needed for it to operate.
990x.top
Простой компьютерный блог для души)
Папка vendor — что это?
Приветствую. Данный материал расскажет об одном каталоге, который можно встретить на персональном компьютере/мобильном устройстве.
Вообще vendor — слово, пришло с английского языка, имеет несколько значений: продавец, в компьютерном мире — поставщик железа. Важно понимать, что вендор в некотором смысле это компания/производитель устройств под собственным брендом. Например Samsung — вендор.
Папка vendor на Android
Содержит файлы, который были созданы еще при изготовлении устройства на заводе. Данные файлы — микропрограммы некоторых компонентов, например модуля Wi-Fi, Bluetooth.
Удалять содержимое или саму папку — нежелательно. При желании удалить — сперва создайте резервную копию OS Android.
Каталог операционной системы Андроид (создатель Google).
Папка vendor в Lavarel
Хранит внешние библиотеки, функции которых могут использоваться при написании сайтов, веб-приложений. Некоторые пользователи сообщают, что библиотеки не стоит подключать к проекту.
Lavarel — это некий движок, на основе которого создают современные веб-сайты. Чтобы использовать движок нужно знать язык программирования PHP, быть не совсем начинающем программистом.
Директория проекта. При разработке веб-сайтов или программного обеспечения используют среду разработки (IDE), где собственно и можно заметить данный каталог.
Заключение
Кастомный Android: делаем свою прошивку из стоковой, не копаясь в исходниках
Содержание статьи
Начнем с того, что тебе нужен Linux. В Windows ты сможешь только разобрать прошивку, но собрать обратно уже не получится по чисто техническим причинам. Теперь о прошивке. Обычно они распространяются в виде ZIP-архивов, прошиваемых через кастомные рекавери. Именно один из них нам и понадобится для опытов. Начинать путь ромодела я рекомендую с какой-нибудь максимально приближенной к AOSP кастомной прошивки, потому что в ней зачастую проще разобраться, чем в стоке.
Нужный ZIP можно найти на XDA Developers или 4PDA. Но имей в виду, что нужна прошивка конкретно для твоей модели аппарата, — у того же Galaxy S7 есть несколько модификаций для разных рынков, не всегда совместимых между собой.
Структура ZIP-файла с прошивкой
После загрузки распакуем архив с помощью любого архиватора. Внутри будет следующий набор файлов и папок:
Linux для хакера
Распаковываем system.new.dat
Файлы system.new.dat и system.transfer.list представляют для нас наибольший интерес. Точнее, не они, а содержащаяся в них система. Но добраться до нее не так просто.
Скрипт
Самые ленивые могут разобрать прошивку с помощью скрипта System_Extractor-Linux.
Ручной способ
Распаковываем архив с прошивкой в любую папку (например, в rom ):
Скачиваем нужные нам инструменты в эту папку:
Содержимое образа system
Структура каталогов Android
После распаковки system появится следующая каталоговая структура:
Ознакомившись с базовой структурой Android, начнем вносить изменения.
Удаляем и добавляем приложения
Все предустановленные программы можно найти в двух папках:
Друг от друга они отличаются привилегиями доступа. Если программы из app имеют такие же полномочия, как сторонние программы (например, установленные из Play Store), то приложения из priv-app могут использовать привилегированные API (права privileged). Подробнее об этом можно узнать из нашей статьи.
Главное, помни: стоковые программы могут быть связаны между собой. Поэтому удаление одной проги вполне может привести к полной неработоспособности другой (к примеру, CalendarProvider и Calendar: удалив первый, ты сделаешь неработоспособным не только стоковый, но и любой другой календарь). К счастью, в чистых AOSP-прошивках взаимосвязей не так много.
Меняем анимацию загрузки
Анимация хранится в виде PNG-картинок, упакованных в архив /system/media/bootanimation.zip без сжатия. Внутри архива находятся:
Файл desc.txt может содержать нечто вроде
Назначение этих строк интуитивно понятно: 1920 × 1080 — разрешение картинки, 60 — число кадров в секунду. Part0 и part1 указывают на папки, из которых будет воспроизводиться анимация, и последовательность воспроизведения. Вообще, может быть как одна часть, так и несколько (три и больше).
Четыре части в bootanimation.zip для LineageOS
Изменяем звуковое оформление
В alarms, notifications, ringtones можно накидать сколько угодно любых мелодий. Взять их можно, например, здесь:
И маленький лайфхак: удаление файлов из папки ui приведет не к сбоям и ошибкам, а к исчезновению системных звуков. Поэтому ты можешь легко отключить звук создания снимка с камеры, снятия скриншота, просто потерев содержащие эти звуки файлы (их имена интуитивно понятны).
Добавляем шрифты
Меняем системные настройки (build.prop)
Дополнительный файл для Gigaset ME и ME Pro
Build.prop содержит (или может содержать) огромное количество настроек. Некоторые из них ничего не меняют, некоторые улучшают одно за счет ухудшения другого, но есть те, которые действительно полезны:
Внедряем в прошивку Google Apps
Почти всегда кастомные прошивки поставляются без сервисов Google и магазина приложений. Разработчики предлагают нам установить их отдельно с помощью пакета GApps. Однако его можно интегрировать прямо в прошивку.
Для начала необходимо скачать пакет GApps. Я рекомендую брать архивы Open GApps. Выбираешь версию Android, архитектуру процессора и вариант комплектации (Pico, Nano, Stock. ), который определяет, сколько различных приложений Google содержит архив. Я рекомендую скачать версию Pico. Она содержит только Play Store и набор необходимых для его работы библиотек.
Интеграция GApps в прошивку выполняется так:
Свободное место
Необходимо понимать, что место для установки прошивок ограниченно. Нельзя установить прошивку, размер которой перевешивает размер раздела system устройства. Посмотреть его значение можно, используя ADB:
Инфа о разделе system
Второй вариант: поставить на устройство терминал и набрать команду
Размер раздела в байтах можно узнать, установив на смартфон BusyBox и выполнив в терминале команду
Или то же самое с помощью ADB:
Место, занимаемое прошивкой, будет приблизительно равно размеру system в распакованном виде. Вообще, при создании прошивки необходимо учитывать, что юзер также может прошить поверх нее различные модификации (SuperSU, Xposed) или перенести приложения в раздел system. Например, минимальный пакет приложений Google (Pico) требует минимум 150 Мбайт дополнительного пространства для установки.
Сборка
Преобразовываем нашу папку обратно в RAW-образ. Назовем его system_new.img :
1073741824 меняем на размер раздела system в байтах. Желательно даже сделать его чуть меньше. Делаем из RAW-образа sparse-образ:
Отделим файлы прошивки от лишней шелухи (файлов, которые мы загружали для работы. Для этого удобно пользоваться архивом с прошивкой). Удалили? Теперь нужно запаковать прошивку в ZIP-архив (любым архиватором).
Осталось подписать архив. Сделать это можно как на самом Android с помощью ZipSigner, так и на ПК (потребуется установленная Java):
Подводные камни
Во время сборки system.new.dat ты можешь столкнуться с несколькими проблемами, вызванными постоянными изменениями в механизмах формирования прошивок Android. Описанный выше способ должен хорошо сработать в случае основанной на Android 5.1 прошивки, в более новых могут возникнуть сложности, так что потребуется использовать другие версии инструментов сборки. К сожалению, мы не можем описать все нюансы сборки, поэтому, возможно, придется погуглить.
Установка
Для установки кастомной прошивки необходим кастомный рекавери TWRP, позволяющий устанавливать неподписанные или подписанные тестовым ключом прошивки (именно такую мы создали). В журнале мы неоднократно описывали процесс его установки, да и в ветках форума, посвященных твоему устройству, обычно есть достаточно информации для того, чтобы это сделать.
Выводы
Эта статья описывает лишь верхушку огромного айсберга под названием «модификация прошивок». «Серьезные» прошивки не только дополняют ядро и саму прошивку со стоковыми приложениями множеством функций (которые зачастую вырваны из других ядер и прошивок), организовывая или даже меняя принципы их взаимодействия, но и вполне могут кардинально менять принципы работы ОС. Правда, такая поделка — это уже не Android, а отдельная ОС, даже если Play-сервисы получится туда поставить (кстати, такие действия, мягко говоря, не поощряются Google). Ну и не забываем: все оболочки от производителей — TouchWiz, ZenUI, HTC Sense и так далее — всего лишь обычные кастомы, максимально привязанные к железу устройства и друг к другу.
Vendor image что это
TWRP, как отдельная операционная система. Структура, принципы работы, основные составляющие.
Устройство или ОС, прошивка: Все платформы.
Сразу хочу напомнить, что тема создавалась для людей думающих и способных подвергнуть сомнению информацию, которая тут изложена. Учесть особенности тысяч аппаратов и, уж тем более, расписать это для каждого из них я не в состоянии.
Обращаясь за помощью обязательно приложите recovery.log. Как его получить можно узнать здесь
А вот то, что будет происходить далее уже имеет отличия:
init раздела boot, следуя собственным и приложенным в подгружаемых *.rc файлах инструкциям, монтирует остальные разделы, необходимые для запуска Android OS (/system, /vendor, /data, /modem и т.д.) и запускает сервисы и службы, находящиеся, в основном, в этих разделах. Далее надевает на Linux «шкурку» java и отдает в таком виде под управление пользователю.
init раздела recovery, следуя собственным и приложенным в подгружаемых *.rc файлах инструкциям, проверяет состояние «интересующих» его разделов, а сервисы и служби запускает лишь те, которые сам и содержит. Далее надевает на Linux «шкурку», подобную веб интерфейсу***.
Что имеем в итоге? Высокую степень взаимозаменяемости консольных утилит, таблиц файловых систем, конструкций скриптов и т.д. Функции, созданные для обработки из-под OS Android после небольших правок можно выполнять, находясь в кастомном рекавери и наоборот. Примерно то, что проделывают в теме Инструкции по редактированию системных ресурсов для Android OS мы будем проворачивать здесь с TWRP (только там правится framework, SystemUI.apk, Settings.apk и т.д., мы же будем вносить изменения в «twres», «sbin» и «etc»), добиваться максимально полного контроля над кастомным рекавери, устанавливать/заменять/обновлять/удалять ПО, входящее в его состав.
*будет запускаться ядро из раздела boot или из раздела recovery зависит от сигнала загрузчику, который пользователь может подать из запущенной операционной системы или нажатием соответствующих клавиш при старте загрузчика.
*способы описываю в общих чертах, вскользь и исключительно для общего понимания. Детально и со всеми подробностями процессы описаны в профильных темах, ссылки на которые есть в шапке этой темы. Мы же будем использовать лишь некоторые этапы упомянутых выше действий в совершенно других целях.
*Набор файлов, приведённый выше, крайне примерный! Следует понимать и учитывать особенности архитектур, марок и моделей аппаратов, к которым будете пытаться применять данные наблюдения.
**В сборках TWRP 3.3.1-1 для некоторых устройств уже используется именно mksh. OrangeFOX 10+ использует bash.
Recovery Project %tw_version%
Recovery Project %tw_version%
Recovery Project %tw_version%
показываем текст Recovery Project %tw_version% (значение переменной %tw_version% нам предоставляет бинарник recovery), окрашенный в %header_color% (#555555), используя шрифт и его размер font_l (filename=»RobotoCondensed-Regular.ttf» size=»52″) по координатам в пикселах x=»540″ y=»1590″ поверх всех-привсех объектов placement=»5″.
Начинаем изучение содержимого TWRP. Возьмём интересующий нас образ и распакуем его. Увидим, что появилось две новые папки: «ramdisk» и «split_img».
Для упрощения и согласования информации, изложенной далее, предположим, что образ имеет название «twrp.img». Коротко о содержимом «split_img»:
Здесь расположены примерно* следующие файлы:
twrp.img-base
twrp.img-board
twrp.img-cmdline
twrp.img-hash
twrp.img-headerversion
twrp.img-imgtype
twrp.img-kerneloff
twrp.img-oslevel
twrp.img-osversion
twrp.img-pagesize
twrp.img-ramdisk.cpio.gz **
twrp.img-ramdiskcomp
twrp.img-ramdiskoff
twrp.img-secondoff
twrp.img-tagsoff
twrp.img-zImage
/.android/adbkey.pub в /adb_keys чтобы не отключать ro.secure.
Это ключик для adb. Помогает при unauthorized состоянии. индивидуален для каждого юзера каждого компа на котором запускается adb. Наверняка все видели запрос подтверждения доступа по adb после вайпа или при подключении нового компа к девайсу. Вот в этот момент на девайсе сохраняется публичный ключ adb. Сохраняется он в файл /data/misc/adb/adb_keys (напоминает
Пример добавления в интерфейс TWRP кнопки и программирования её на выполнение shell скрипта уже изложен в теме. Теперь посмотрим, как ещё можно это использовать.
aapt_arm64.zip ( 771.08 КБ )
adbd_arm_mini.zip ( 218.09 КБ )
charger_arm64_mini.zip ( 387.4 КБ )
ntfs_arm64.zip ( 202 КБ )
ntfs_arm.zip ( 220.96 КБ )
charger_arm_mini.zip ( 230.42 КБ )
s_zip_arm.zip ( 369.5 КБ )
s_xmlstarlet_arm.zip ( 665.54 КБ )
s_toybox_arm64.zip ( 594.94 КБ )
s_sqlite3_v4.1_arm.zip ( 316.17 КБ )
s_sqlite3_arm_arm64_x86_x64.zip ( 1.36 МБ )
s_someutils2_arm.zip ( 3.44 МБ )
s_sed_4.4_arm64.zip ( 335.25 КБ )
s_sed_4.4_arm.zip ( 317.8 КБ )
s_parted_arm.zip ( 173.54 КБ )
s_mkfs.f2fs_arm.zip ( 193.63 КБ )
s_mke2fs_arm.zip ( 408.16 КБ )
s_gdisk_arm.zip ( 638.32 КБ )
s_fastboot_arm.zip ( 365.8 КБ )
s_e2fsdroid_arm.zip ( 419.65 КБ )
s_busybox_1.30.1_arm64.zip ( 876.46 КБ )
s_busybox_1.30.1_arm.zip ( 821.16 КБ )
s_bash_5.0_arm.zip ( 605.75 КБ )
s_aapt_x86.zip ( 868.91 КБ )
s_aapt_mini_arm.zip ( 517.22 КБ )
s_7za_arm.zip ( 728.17 КБ )
s_aapt_aapt2_arm.zip ( 1.58 МБ )
s_adb_arm.zip ( 547.35 КБ )
s_ffmpeg_arm_x86.zip ( 27.26 МБ )
s_someutils_arm_arm64_x86_x64.zip ( 57.69 МБ )
s_toybox_arm.zip ( 222.94 КБ )
s_readelf_arm.zip ( 331.15 КБ )
System
System Image
Vendor
Vendor Image
Boot
Recovery
Cache
Data
Data (искл. Storage)
SDcard
Память устройства
Micro SDCard
USB OTG
Android Secure
Dalvik/ART Cache
SD-EXT
Adopted Data
Adopted Storage
Team Win Recovery Project
TWRP %tw_version%
ЦП: %tw_cpu_temp% °C
Батарея: %tw_battery%
Сорт.по имени
Сорт.по дате
Сорт.по размеру
Имя
Дата
Размер
ОСНОВНЫЕ
ОПЦИИ
КОПИИ
ЧАСОВОЙ ПОЯС
ЭКРАН
ВИБРАЦИЯ
ЯЗЫК
Установка
Очистка
Резервирование
Восстановление
Монтирование
Настройки
Дополнительно
Перезагрузка
Файлы
Копировать лог
Выбор типа
Установка Zip
Установка Zip
Установка Img-образа
Установка Img
Выбор файла
Папки
Текущий накопитель: %tw_storage_display_name% (%tw_storage_free_size% МБ)
ADB Sideload
Установка
Выберите накопитель
Выбор накопителя
Очередь
Файлов в очереди: %tw_zip_queue_count% из 10 возможных
Файл %tw_zip_queue_count% из 10:
Эта операция может установить несовместимое ПО на
ваше устройство и сделать загрузку системы невозможной.
Нажмите назад для отмены установки этого zip.
Нажмите назад для очистки очереди.
Папка:
Файл:
Проверка подписи Zip
Интегрировать TWRP после установки
Автоматическая перезагрузка после установки
Опции
Подтвердите установку
Очередь:
Опции:
Подтвердить
Добавить еще Zip
Очистить очередь Zip
Установка Zip %tw_zip_index% из %tw_zip_queue_count%
Установка Zip: %tw_file%
Неудача
Успешно
Установка не удалась
Установка выполнена успешно
Очистка cache/dalvik
Перезагрузка в ОС
Выбор раздела
Выберите раздел для прошивки образа:
Целевой раздел:
Прошивка образа.
Прошивка образа завершена
Очистить Cache & Dalvik?
Очистка Cache & Dalvik.
Очистка Cache & Dalvik завершена
Свайп для очистки
Очистка
Система не установлена! Вы уверены,
что хотите перезагрузить?
что хотите выключить?
Перезагрузка.
Свайп для перезагрузки
Перезагрузка
Установить TWRP App?
Вы хотите установить официальное приложение TWRP?
Оно позволит вам проверять наличие новой версии TWRP.
Предлагать установку TWRP App при его отсутствии
Установить как системное приложение
Установка TWRP приложения.
Свайп для установки TWRP App
Свайп для прошивки
Подтвердить действие
Нажмите назад для отмены.
Отмена
Очистка
Сброс до заводского состояния
Сброс на фабричные
Очистка Data, Cache, и Dalvik
(исключая внутреннее хранилище)
В большинстве случаев очистка
этих разделов достаточна.
Сброс до заводского состояния.
Выборочная очистка
Выборочная очистка
Очистить шифрованные данные?
Форматирование Data.
Свайп для форматирования
Форматировать Data
Сброс до заводского состояния завершен
Выбор разделов
Очистить выбранные разделы?
Очистка разделов.
Очистка завершена
Выберите разделы для очистки:
Выбран неверный раздел
Форматировать Data
Форматировать Data
Форматирование Data удалит все приложения,
резервные копии, картинки, видео, медиафайлы
и зашифрованные файлы во внутренней памяти,
включая расширенное хранилище.
Форматирование данных удалит все приложения, резервные копии, картинки, видео, медиафайлы
и зашифрованные файлы во внутренней памяти.
Форматирование данных удалит все приложения,
резервные копии и медиа. Это не может быть отменено.
Это не может быть отменено.
Форматирование данных завершено
Чтение SELinux-контекста не поддерживается ядром.
Присутствует полная поддержка SELinux.
Отсутствует поддержка SELinux (нет libselinux).
MTP Включено
Сбой MTP: MTP не запущен при загрузке.
Расшифровка выполнена успешно с паролем по умолчанию.
Невозможно расшифровать с паролем по умолчанию. Возможно потребуется выполнить форматирование Data.
Вычисление MD5
* Вычисление md5.
* MD5 создана.
* Ошибка MD5!
* Ошибка вычисления MD5.
(Текущая дата)
(Создать автоматически)
Не удается найти ‘<1>‘ раздел для расчета копирования.
Не выбраны разделы для резервного копирования.
* Общее количество разделов для резервного копирования: <1>
* Общий объем данных: <1>МБ
* Доступный объем: <1>МБ
Не удается найти накопитель для хранения.
В накопителе для хранения недостаточно свободного места.
[РЕЗЕРВНОЕ КОПИРОВАНИЕ НАЧАТО]
* Папка для резервной копии: <1>
Не удается создать папку для резервной копии.
Средняя скорость копирования для файлов: <1>МБ/сек
Средняя скорость копирования для образов: <1>МБ/сек
[ВСЕГО СКОПИРОВАНО <1>МБ]
[КОПИРОВАНИЕ ЗАВЕРШЕНО ЗА <1>СЕКУНД(Ы)]
[ВОССТАНОВЛЕНИЕ НАЧАТО]
Папка для восстановления: ‘<1>‘
[ <1>выполнено за <2>секунд(ы)]
Проверка MD5
Пропуск проверки MD5 согласно настройкам.
Вычисление информации о восстановлении.
Невозможно восстановить <1>— смонтировано только для чтения.
Не удается найти ‘<1>‘ раздел для восстановления.
Не выбраны разделы для восстановления.
Восстановление <1>разделов.
Общий размер для восстановления: <1>МБ
Обновление информации о системе
[ВОССТАНОВЛЕНИЕ ЗАВЕРШЕНО ЗА <1>СЕКУНД(Ы)]
Невозможно создать папку ‘<1>‘ (<2>).
Не удается смонтировать ‘<1>‘ (<2>)