Как открыть build prop на андроид



Всего лишь меняем модель эмулятора Android устройства

Пролог

Казалось бы, на первый взгляд весьма простая задача. Некоторые читатели могли еще в те бородатые времена лазить по всяким 4пда, рутить свой сенсорный самсунг, менять содержимое файла build.prop и показывать наивным ламерам свой iPhone 15+ Max Pro. Однако, как оказалось, и как оно часто бывает, не все так просто и здесь есть свои подводные камни. Статья призвана помочь простым работягам избежать все кочки да ямы на пути к своей цели!

Дисклеймер

Сразу предупрежу, что люблю писать подобные статьи довольно подробно, не ради объема и многобукав, а ради максимального погружения в проблему и способ ее решения. Обратите внимание, что я работаю на macOS, поэтому все команды в терминале будут ориентированы под данную ОС. Также, следует отметить, что проворачиваю все это для API 30, то есть для самого последнего на момент написания статьи. Как говорят интернеты, сложности по этой теме начались с API 29.

Зачем это нужно?

Предполагаю, что у вас, дорогой читатель, есть на это своя веская причина, иначе не стали бы вы этим заниматься. Наиболее вероятно, что у вас, как и у меня есть программная проверка на модель устройства с которого запущено приложение, примерно как здесь. К слову, таким образом можно будет проверять результат наших трудов. Второй же, и более простой способ проверки модели эмулятора будет через настройки девайса в разделе сведений об устройстве:

Ради контекста вкратце расскажу зачем это понадобилось мне. Я получил .apk с багом где-то внутри приложения. Однако пройти дальше первого экрана в этом приложении я не смог. Дело в том, что при запуске, с сервера приходит список разрешенных для запуска устройств и ни мой народный Ксяоми, ни мой эмулятор в этот список не входит. Вот и додумался поменять имя модели устройства на одно из разрешенных. Рутить свой личный телефон не хотелось, поэтому решил шаманить с эмулятором.

Экран не пустивший меня дальше

Достаем build.prop

Как уже говорилось в начале статьи, за имя производителя и модель устройства отвечает системный файл build.prop, который находится в корне устройства в папке system/. Однако при попытке просмотреть его, не говоря уже о редактировании, мы получим отказ в доступе:

Для решения этой проблемы необходимо в терминале обратиться к adb и запросить root права следующей командой: adb root . И вот и первый подводный камень, а именно вывод следующего сообщения: adbd cannot run as root in production builds . Это из-за того что при создании эмулятора мы выбрали вариант с установленными Google сервисами:

Простое решение — создать эмулятор без установленных Google сервисов, после чего повторить команду adb root . После чего в консоли должно появиться сообщение: restarting adbd as root что говорит об успешном проведении операции. Естественно если с самого начала у вас был эмулятор без Google сервисов, то скорее всего с adb root и выше описанной проблемой вы не столкнулись.

Отлично, теперь мы видим содержимое файла build.prop:

Редактируем build.prop

Сохраним файл build.prop в любое удобное место для дальнейшего редактирования выделенной красным области на скриншоте выше. Я сохранил прямо на рабочий стол:

Вносим необходимые изменения. Просмотрев логи запросов и ответов предоставленного мне .apk я нашел приходящий с сервера список разрешенных устройств. То есть, для моих целей нужно поменять два значения на PIXEL 3A XL (как вы поняли, здесь вы можете указывать необходимую именно вам модель):

Сохраняем изменения и заливаем файл обратно на эмулятор. Делается это при помощи команды adb push (кстати, скачать файл с эмулятора можно при помощи adb pull если у вас вдруг аллергия на GUI).

Вводим команду в терминал: adb push build.prop system/

И получаем ошибку:

adb: error: failed to copy ‘build.prop’ to ‘system/build.prop’: remote couldn’t create file: Read-only file system

Вот здесь и начинается самое интересное! По умолчанию эмулятор запускается в режиме чтения системных файлов, без возможности делать записи. Следовательно, что либо поменять без прав на запись у нас не выйдет. Для этого нам необходимо запустить эмулятор в ручном режиме с доступом на запись системных файлов.

Запускаем эмулятор с доступом на перезапись системных файлов

Для этого нужно выполнить следующую команду в терминале (чтобы скорее всего получить еще одну ошибку):

emulator -avd Pixel3XLAPI30 -writable-system -no-snapshot -nocache

итак здесь Pixel3XLAPI30 — это название нашего эмулятора который мы будем запускать в режиме записи, получить это имя можно выполнив команду emulator -list-avds

-writable-system — собственно тот самый флаг и виновник торжества.

-no-snapshot -nocache — просто советую ввести чтобы избавиться от любого возможного мусора, который может помешать нашему плану-капкану.

После у нас либо запустится эмулятор (несколько секунд запускается, так что если тупит то так и должно быть) либо получаем ошибку следующего типа:

PANIC: Missing emulator engine program for ‘x86’ CPU.

Что бы и нам решить с этим нужно в файле .bash-profile (или если у вас zsh то в файле .zshenv) находящийся в корне вашего профиля macOS, добавить дополнительные пути. Вот как это выглядит у меня:

есть такая переменная ANDROIDHOME и с ее участием редактируем переменную PATH:

Чтобы изменения вступили в силу перезапускаем терминал (или вводим source

/.bash_profile ) (или source

/.zshenv ). Результат можно проверить выполнив команду echo $PATH и убедиться что в переменной PATH появился добавленный нами путь.

Пробуем запустить эмулятор еще раз.

emulator -avd Pixel3XLAPI30 -writable-system -no-snapshot -nocache

Теперь он должен был успешно запустится.

Активируем доступ на перезапись системных файлов

Из описания флага -writable-system:

-writable-system make system & vendor image writable after ‘adb remount’

делаем вывод что теперь нам нужно выполнить adb remount . Для этого открываем новое окно терминала и выполняем сначала команду adb root , что бы adb remount сработало.

После adb remount , будет сообщение что эмулятор нужно перезапустить. Сделать это можно командой adb reboot. Но и здесь не все так просто. Очередной подводный камень об который мы разбили еще один ноготь на пальцах ног. Если сделать adb reboot то все просто напросто зависает НАВСЕГДА. Настолько навсегда, что придется удалять эмулятор и создавать его заново. Интернет и с этим столкнулся и даже баг создали на гуглов. И благо нашлось решение. Чтобы эмулятор не зависал нужно добавить пару команд до adb remount .

Итак по порядку:

Делаем adb root

Теперь делаем adb shell avbctl disable-verification

Если вы вдруг остались в shell то введите exit

Перезагружаем эмулятор adb reboot и ждем

Снова делаем adb root

И вот теперь можно делать adb remount

Ура! Теперь мы можем записывать файлы в системную папку нашего эмулятора. Можем пушнуть наш отредактированный build.prop файл: adb push build.prop system/ . Сделаем adb reboot и убеждаемся что ничего не поменялось… Имя модели не изменилось.

Редактируем правильный build.prop

Вернемся к началу и заметим, что значения ro.product.product.name и ro.product.product.model не соответствует тому, что отображается в настройках устройства. Изучив структуру системных папок я заметил, что существует несколько файлов build.prop, которые располагаются в папках: system, system_ext, vendor и product. Эмпирическим методом я скачивал, редактировал и пушил обратно каждый из этих файлов. В конце концов ключевым оказался файл в папке product. Отредактировав его я наконец-то смог изменить название модели эмулятора устройства!

Подводим итоги

Наконец-то я смогу запустить приложение и воспроизвести баг. Подумал я…

Теперь я уперся в то, что запускаю приложение якобы с рутованого девайса (ну да есть такой грешок). И дело даже не в команде adb root , ведь команда adb unroot не помогла. Что ж, опускать руки уже поздно, придется что-то придумать.

О том, как я обходил проверку на рутованность устройства я расскажу в следующей своей статье. Немного реверс инжиниринга и даже такая популярная библиотека как RootBeer не проблема.

Данной статьей я стремился собрать как можно больше проблем по этому вопросу и изложить все в форме step-by-step. Спасибо за ваше внимание и очень надеюсь, что статья оказалась полезной!

Источник

Build.prop — улучшение качества звука

Почти каждый, кто хоть раз ставил ROOT-права на Android, слышал про такой файл как build.prop и твики для него. В этой статье мы рассмотрим все строки данного файла с помощью которых можно улучшить качество звучания смартфона и включить полезные функции, которые были отключены по умолчанию.

Многие аудиомодификации в виде Magisk-модуля имеют немалое количество твиков звука в своих system.prop, но далеко не каждый разработчик того или иного модуля знает их значения и область применения. Ниже вы можете увидеть целый ряд всевозможных пропов (строка из build.prop), которые можно применять как по отдельности, так и все вместе, потому что каждый из них отвечает за конкретный параметр, не взаимосвязанный с другими. Все пропы взяты с разных устройств, поэтому есть возможность, что какие-то из них применятся не правильно, либо не применятся вообще. Пропы могут иметь числовые, строчные и булевые значения. Все строки из списка протестированы командой NLSound и мной лично.

Файл build.prop находится в папке /vendor. Проще всего редактировать build.prop путём добавления строк в конец файла. Для подобных действий обязательно нужен ROOT-доступ и файловый менеджер с поддержкой корневого доступа.

Отключение Глубокого буфера.

При отключении этого выхода будет использоваться PRIMARY выход, который является более качественным и не имеет лишнюю обработку в сравнении с выходом deep_buffer. Не является полным отключением выхода, так как приложения, которые выводят звук именно через этот выход не перестанут его использовать. Лишь в том случае, если приложение умеет работать через иные выходы, эти пропы уберут deep_buffer из статуса основного.

Изменение количества шагов громкости.

Ставите значение, которое вам будет по душе и пользуетесь.

Включение обработки Dirac

Если у вас установлен движок Dirac, то эти пропы сделают Dirac основным «поставщиком» эффектов и главным эквалайзером при условии, что данная фишка поддерживается вашей прошивкой.

Всевозможные улучшения кодеков обработки аудио.

Отключение LowPower

Что-то от «low power», да и звук более насыщенным становится.

Убирает ограничения AF ресемплера.

На слух эффект аналогичен со строками выше.

Скидывание частоты сэмплирования.

Features

Фьючеры примерно из середины build.prop файла. Гляньте в своих прошивках и убедитесь, что подобные строки прописаны у вас, иначе смысла в их использовании точно не будет. Расширение возможностей DSP-модуля, выхода на динамике и усилителя TFA при его наличии. Также отключение компрессии, приведение звука к исходному виду, отключение контроля питания.

HI-FI в реализации Android-вендоров.

Не имеет никакого отношение к стандартам HI-FI. Задействуется механизм по удалению искажений и повышению точности при воспроизведении звука. После применения данных строк звук становится более приятным для ушей.

Настройки эквализации.

Включено всё, что делает звук более насыщенным, и отключено всё, что связано с встроенным в систему эквалайзером.

Улучшение чёткости записи аудио, коррекция сцены и удаление шумов.

Строчки с устройств, которые имеют хорошие аудиокодеки.

Если у вас стоит неплохой аудиокодек, эти пропы лишними не будут. Отключение лимитеров, отключение контроля питания, увеличение громкости, включение поддержки 24-бит, подключение DSP на усилителях TFA где это возможно.

Настройки для Bluetooth.

Включение кодеков APTX и AAC, другие улучшения для бт.

Также, есть небольшой список проблемных строк, которые могут нарушить работу устройства:

Источник

Как редактировать Build.prop без рута с помощью ADB в TWRP recovery

Если вы когда-либо погружались в настройку своего Android-устройства помимо приложений из Play Store, вы могли столкнуться с редактированием файла build.prop. Он расположен в /система каталог вашего устройства.

Что такое файл build.prop?

Вы можете задаться вопросом, что делает файл build.prop и почему он так важен для ОС, установленной на вашем устройстве. Что ж, файл build.prop содержит информацию о свойствах системы и другую важную информацию о сборке, которая используется в масштабе всей системы на устройстве Android.

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

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Недавно мы опубликовали сообщение о том, как редактировать файл Build.prop на Android с помощью приложения-редактора build.prop из Play Store, для которого требуется root-доступ. Но если вы не хотите или не можете получить root права на свое устройство Android, но можете загрузить на него пользовательское восстановление, такое как TWRP, то вы также можете редактировать build.prop без рута.

Пользовательское восстановление поставляется с полным корневым доступом и возможностью настроить соединение ADB для изменения / изменения файлов в системном разделе вашего устройства Android. Следовательно, вы можете использовать собственное восстановление для редактирования файла build.prop без рутирования устройства.

Чтобы получить помощь по установке восстановления TWRP на ваше устройство, следуйте страницам справки по установке TWRP для прошиваемых образов TWRP Fastboot и Odin.

Как: установить TWRP через Fastboot | Установите TWRP с помощью Odin

Примечание: Если вы новичок, не рекомендуется изменять значения файла build.prop на основе собственных знаний. Убедитесь, что системные значения, которые вы хотите изменить в файле build.prop, исходят от опытного / знающего пользователя Android. В противном случае вы можете получить программное обеспечение Android-устройства.

Как отредактировать Build.prop без рутирования устройства

  1. Настройте ADB и Fastboot на вашем ПК.
  2. Загрузите Android-устройство в режим восстановления TWRP.
  3. Выбирать устанавливать »И затем выберите Система из списка разделов, чтобы смонтировать системный раздел, а затем вернуться.
  4. Подключите устройство к ПК с помощью аутентичного USB-кабеля.
  5. Откройте командное окно на ПК и выполните следующую команду, чтобы извлечь файл build.prop с устройства:
  6. Приведенная выше команда загрузит build.prop файл на свой компьютер в тот же каталог, из которого запущена ваша командная строка.
    Кончик: Сделайте копию файла build.prop перед его редактированием, чтобы у вас была резервная копия исходного файла.
  7. Загрузите и установите программное обеспечение Notepad ++ на свой компьютер.
  8. Откройте файл build.prop на своем ПК с помощью программы Notepad ++.
  9. Отредактируйте файл build.prop в соответствии с вашими требованиями и сохраните его на ПК после внесения изменений.
  10. После того, как вы сохранили изменения в файле build.prop, верните его на устройство, используя следующую команду:
  11. Теперь установите правильные разрешения для файла build.prop с помощью следующих команд (выполняйте их одну за другой):
  12. После того, как вы установили правильное разрешение для файла build.prop, перезагрузите устройство в систему из TWRP. Перезагрузить систему вариант.

Вот и все. Теперь вы успешно отредактировали build.prop без рута на своем устройстве Android.

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Источник

You may also like...

Adblock
detector