Где находится файл 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 перед установкой пропов, чтобы избежать возможных проблем.
Если применение строк вызвало проблемы, то выберите из списка проблемные и попробуйте без них. В случае если проблемы останутся, то методом исключения находите ту строчку, что вызывает у вас проблему. В дальнейшем возможна статья подобного рода про mixer_paths.xml файл. Приятного использования.
В файловой системе любого смартфона на Android есть файл build.prop, который лежит по пути /system/build.prop. (Для доступа к этому файлу вам понадобятся root-права!)
В данном файле хранятся данные о текущей
прошивке и настройки смартфона, которые
применяются после включения аппарата.
Описанные твики позволяют немного улучшить производительность гуглофона, сделать его
работу более «комфортной».
Но каждый аппарат индивидуален, не факт что у
вас заработают все пункты. Сам проверял на Acer S300(Android 2.3) (вместо звездочки * пишем нужное нам значение)
1.) debug.sf.hw=* Эта строчка отвечает за аппаратное ускорение. Оно нужно для ускорения
графического интерфейса. Значение 1 его активирует. Значение 0 его выключает. Пробуйте,
проверяйте и вам воздастся. Лично у меня возникает рябь в графике (возможно сильная!), поэтому оффнул его.
2.) wifi.supplicant_scan_interval=*** Эта строчка отвечает за интервал поиска Wi-Fi сетей. По-умолчанию стоит 20. Значение измеряется в
секундах. Это означает, что у нас стоит 20 сек.
Советуется для экономии батареи поставить значение 180-200.
3.) pm.sleep_mode=1
ro.ril.disable.power.collapse=0 иностранные коллеги также советуют прописать эти 2 строчки
для экономии заряда батареи.
4.) dalvik.vm.heapsize=*m Эта строчка устанавливает значение heapsize. Смысл в том, что в большинстве прошивок установлено малое значение памяти для использования приложением, программа расширяет это значение, тем самым увеличивая производительность и делая устройство более стабильным. Большое значение лучше не ставить, хотя можно поэкспериментировать.
Лучший вариант это 32m. Его кстати и рекомендуют.
5.) dalvik.vm.execution-mode=int:*** Эта строчка отвечает за JIT. Значение jit включает его, а значение fast выключает. Технология JIT также
служит для увеличения производительности
аппарата. Еще раз напомню - может работать не у всех.
6.) windowsmgr.max_events_per_sec=60 Делает интерфейс более гибким и плавным. Этой строчки изначально нет, нужно дописывать самому. Можете поиграться со значениями и выбрать подходящее.
7.) ro.media.enc.jpg.quality=100 -повышаем качество jpg. А если быть более точным, то изменяем степень сжатия фоток. При параметре 100 размер фоток вырастет примерно в 2 раза.
8.) ro.media.dec.jpg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000 повышаем качество аудио- и видеозаписи камеры. Опять же- выше заложенных аппаратных возможностей не прыгнешь, но зато достигнешь потолка)
9.) debug.sf.nobootanimation=1 отключаем анимацию при включении. Немного ускоряет
включение аппарата.
10.) ro.lge.proximity.delay=25
mot.proximity.delay=25 отключает появляющееся черное окошко после окончания звонка.
11.) net.tcp.buffersize.default=4096, 87380, 256960, 4096, 16384, 256960
net.tcp.buffersize.wifi=4096, 87380, 256960, 4096,
16384, 256960
net.tcp.buffersize.umts=4096, 87380, 256960, 4096, 16384, 256960
net.tcp.buffersize.gprs=4096, 87380, 256960, 4096, 16384, 256960
net.tcp.buffersize.edge=4096, 87380, 256960, 4096, 16384, 256960 меняем размер буфера TCP-говоря проще, немного улучшаем интернет-соединение.Будет полезным для тех, у кого медленный инет.
12.) ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1 ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5 твики для улучшения
приема 3G-сигнала.
13.) ro.HOME_APP_ADJ=1 - запрет на выгрузку лаунчера из памяти.
15.) persist.adb.notify=0 отключение иконки режима отладки в статусбаре.
16.) ro.config.hw_menu_unlockscreen=false для включения возможности разблокирования экрана при помощи кнопки «Меню (двойного нажатия), измените значение с «false» на «true»
Build Prop Editor
версия: 1.1.9
Последнее обновление программы в шапке: 10.04.2015
Для функционирования программы необходимы права root пользователя.
Краткое описание:
Просмотр/бекап/редактирование файла /system/build.prop
Описание:
Это приложение очень упрощает и ускоряет внесение изменений в файл build.prop - поэтому будьте предельно осторожны.
** ДЛЯ ПРОСМОТРА ИЛИ БЕКАПА ROOT-ДОСТУП НЕ ТРЕБУЕТСЯ **
** ДЛЯ СОХРАНЕНИЯ ИЗМЕНЕНИЙ ТРЕБУЕТСЯ ROOT-ДОСТУП **
** ОТЗЫВЫ/ВОПРОСЫ ПИШИТЕ АВТОРУ **
ОС Андроид использует файл /system/build.prop для хранения важной информации об устройстве. Тут хранится информации самого различного характера: начиная с самоидентификации устройства на Google Play (EVO, DROID, Galaxy Nexus. ) и заканчивая плотностью пикселов экрана (screen pixel density, PPI).
Изменяя значения, хранящиеся в файле build.prop , можно получить доступ ко многим опциям ОС Андроид. Изменение системных параметров, хранящихся в файле build.prop , позволяет выполнить большое количество настроек для улучшения производительности устройства и изменения оформления его интерфейса.
Для начала пользователь может просто просмотреть свой стандартный файл /system/build.prop . Там он сможет увидеть, как его устройство идентифицирует себя для Google Play и для всех установленных приложений. Также можно увидеть пользовательские установки, касающиеся Wi-Fi, тем оформления, Bluetooth, виртуальной машины Dalvik, стандартных рингтонов и т.п.
Вот некоторые из наиболее распространённых выполняемых настроек: изменение самоидентификации устройства для Google Play с целью получения доступа к недоступным для данного устройства приложениям, увеличение плотности пикселов экрана (подобие настройки разрешения экрана), добавление информации неофициальной прошивки, регулирование скорости анимации окон.
А вот несколько ключей, обычно изменяемых пользователями: ro.build.fingerprint, ro.build.description, dalvik.vm.heapsize и ro.sf.lcd_density. Внесение изменений в эти ключи создаст нестандартную конфигурацию файла /system/build.prop и изменит оформление/производительность Вашего устройства.
Busybox НЕ требуется . Для внесения изменений достаточно средств самого приложения и не возникает необходимости использовать внешние приложения. Приложение является полностью самодостаточным. В соответствии со стандартной моделью безопасности ОС Андроид изменения могут быть сохранены только при наличии root-доступа.
В приложении есть функция резервного копирования (backup), позволяющая создавать резервные копии файла /system/build.prop . Наряду с ней в приложении есть и функция восстановления, позволяющая восстановить и активизировать файл /system/build.prop , используя любую ранее сохранённую копию build.prop . И, наконец, в приложении есть функция обслуживания, позволяющая Вам удалять ненужные резервные копии.
The device information section of the application displays the common key and values used by applications, including the Android Market. This information allows the user to better understand the values applications use to view their device.
Львиная доля системных параметров Android, скрытых от глаз пользователя, хранится в единственном файле под названием build.prop. Грамотное изменение настроек поможет вдохнуть вторую жизнь в гаджет: улучшить автономность и производительность, оптимизировать интерфейс. В статье мы покажем, как удобно редактировать build.prop, и приведём примеры полезных твиков, а также тех, которые кочуют из статьи в статью на разных ресурсах, но на самом деле не работают.
Зачем это нужно?
Предполагаю, что у вас, дорогой читатель, есть на это своя веская причина, иначе не стали бы вы этим заниматься. Наиболее вероятно, что у вас, как и у меня есть программная проверка на модель устройства с которого запущено приложение, примерно как здесь. К слову, таким образом можно будет проверять результат наших трудов. Второй же, и более простой способ проверки модели эмулятора будет через настройки девайса в разделе сведений об устройстве:
Ради контекста вкратце расскажу зачем это понадобилось мне. Я получил .apk с багом где-то внутри приложения. Однако пройти дальше первого экрана в этом приложении я не смог. Дело в том, что при запуске, с сервера приходит список разрешенных для запуска устройств и ни мой народный Ксяоми, ни мой эмулятор в этот список не входит. Вот и додумался поменять имя модели устройства на одно из разрешенных. Рутить свой личный телефон не хотелось, поэтому решил шаманить с эмулятором.
Экран не пустивший меня дальше
Запускаем эмулятор с доступом на перезапись системных файлов
Для этого нужно выполнить следующую команду в терминале (чтобы скорее всего получить еще одну ошибку):
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 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, можно с лёгкостью увеличить скорость загрузки гаджета в полтора-два раза! В этом помогут следующие настройки:
После внесения этих настроек будет изменён режим выключения гаджета, а также отключена загрузочная анимация разработчика прошивки. В результате при загрузке смартфона вы какое-то время не будете ничего наблюдать на экране. Пугаться этого не стоит: именно благодаря отключению ненужных анимаций тестовый смартфон стал загружаться всего за 30 секунд вместо прежних 50 секунд.
Ускорение работы с памятью. По умолчанию Android логирует множество действий в специальный файл, однако он необходим только разработчикам для дебага приложений. Обычным пользователям этот лог не пригодится, а потому его стоит отключить, добавив в build.prop строку
Отключение лога уменьшит количество дисковых операций, что положительно скажется на быстродействии внутренней памяти смартфона. Правда, разница будет заметна разве что на гаджетах с медленными типами памяти: в нашем случае скорость последовательной записи возросла на 2 МБ/с.
Ускорение сети. Этот твик увеличивает размеры TCP-буферов, что поможет увеличить скорость медленного интернет-соединения, особенно при использовании мобильных сетей. Ну а прописывание DNS-серверов Google в некоторых случаях позволяет снизить время пинга.
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960
net.rmnet0.dns1=8.8.8.8
net.rmnet0.dns2=8.8.4.4
net.dns1=8.8.8.8
net.dns2=8.8.4.4
У нас разница оказалась ощутимой, но не стоит забывать, что наибольшее влияние на скорость оказывает постоянно изменяющаяся загрузка базовых станций.
Скорость передачи данных со стандартными настройками Скорость передачи данных после редактирования build.prop
Улучшение интерфейса
Для удобства мы разбили твики на несколько категорий. Первая — улучшение интерфейса. Такие твики наиболее наглядны, поскольку они нередко влияют не только на параметры системы, но и на её внешний вид.
После перезагрузки аппарата все звонки будут поступать мгновенно.
Автоповорот экрана блокировки. За исключением планшетов, практически ни одно Android-устройство не даёт возможность свободно поворачивать экран блокировки при повороте смартфона. Да, эта функция бывает нужна редко, но если гаджет установлен горизонтально в автомобильном держателе, то попытка ввода пароля или графического ключа превращается в настоящую эквилибристику. Всё, что нужно, чтобы избежать акробатических трюков — дописать в build.prop строки
Что из этого получится — можете увидеть на скриншоте.
Редактируем build.prop
Сохраним файл build.prop в любое удобное место для дальнейшего редактирования выделенной красным области на скриншоте выше. Я сохранил прямо на рабочий стол:
Сохраняем изменения и заливаем файл обратно на эмулятор. Делается это при помощи команды 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
Вот здесь и начинается самое интересное! По умолчанию эмулятор запускается в режиме чтения системных файлов, без возможности делать записи. Следовательно, что либо поменять без прав на запись у нас не выйдет. Для этого нам необходимо запустить эмулятор в ручном режиме с доступом на запись системных файлов.
Подводим итоги
Наконец-то я смогу запустить приложение и воспроизвести баг. Подумал я…
Теперь я уперся в то, что запускаю приложение якобы с рутованого девайса (ну да есть такой грешок). И дело даже не в команде adb root , ведь команда adb unroot не помогла. Что ж, опускать руки уже поздно, придется что-то придумать.
О том, как я обходил проверку на рутованность устройства я расскажу в следующей своей статье. Немного реверс инжиниринга и даже такая популярная библиотека как RootBeer не проблема.
Данной статьей я стремился собрать как можно больше проблем по этому вопросу и изложить все в форме step-by-step. Спасибо за ваше внимание и очень надеюсь, что статья оказалась полезной!
Как редактировать build.prop?
Всё, что вам потребуется для внесения изменений — редактор текстовых файлов и права суперпользователя. Узнать, как получить root-доступ, можно на нашем форуме в разделе прошивок для Android в теме, посвящённой вашему смартфону или планшету. Для непосредственных изменений в файле можно пользоваться обычным текстовым редактором — для этого придётся самостоятельно найти файл по пути /system/build.prop. Но намного удобнее вносить изменения с помощью специализированной программы, например, BuildProp Editor.
Перед тем как приступить к экспериментам, необходимо обязательно сделать резервную копию файла. BuildProp Editor сохраняет бэкап оригинала автоматически при первом запуске. Если же вы решите пользоваться обычным текстовым редактором, то не забудьте сделать копию вручную. Если что-то вдруг пойдёт не так, то вам будет достаточно заменить «испорченный» build.prop резервной копией, чтобы вернуть всё на свои места.
Заключение
Даже несмотря на то, что многие из рекомендуемых на форумах и различных сайтах твики вообще не функционируют, файл build.prop остаётся неплохой возможностью улучшить интерфейс и работу вашего смартфона. Так что получайте права суперпользователя, делайте резервную копию настроек и смело экспериментируйте!
Увеличение автономности
К сожалению, чудес не бывает — двукратного увеличения автономности достичь не удастся никакими твиками. Но добавить лишние 30-60 минут к времени работы гаджета вполне возможно.
Увеличение интервалов сканирования Wi-Fi. По умолчанию Android сканирует окружающие сети Wi-Fi каждые 20-90 секунд. Причём делает это даже тогда, когда Wi-Fi выключен, но разрешён фоновый поиск сетей для увеличения точности определения местоположения. Чтобы расширить данный интервал, необходимо добавить в файл build.prop строку:
Здесь число 200 и является интервалом сканирования сетей в секундах.
Экономия заряда на LineageOS. Небольшой твик, обеспечивающий более эффективное управление спящим режимом при использовании CyanogenMod или LineageOS на смартфонах с чипсетами Qualcomm:
Ещё больше полезных твиков вы можете найти на форуме 4PDA:
Что даёт редактирование файла build.prop?
Файл build.prop функционирует следующим образом: при запуске смартфона из него считывается содержимое, тем или иным образом влияющее на логику работы кода операционной системы. Среди таких спрятанных от пользователя настроек есть как глубоко системные, которые лучше не трогать, так и те, которые могут быть безболезненно изменены. Например, добавив несколько строк в build.prop, вы можете ускорить загрузку гаджета, убрать задержку при входящем вызове или включить автоповорот дисплея на экране блокировки. Как это сделать, мы сейчас расскажем.
Дисклеймер
Сразу предупрежу, что люблю писать подобные статьи довольно подробно, не ради объема и многобукав, а ради максимального погружения в проблему и способ ее решения. Обратите внимание, что я работаю на macOS, поэтому все команды в терминале будут ориентированы под данную ОС. Также, следует отметить, что проворачиваю все это для API 30, то есть для самого последнего на момент написания статьи. Как говорят интернеты, сложности по этой теме начались с API 29.
Достаем build.prop
Как уже говорилось в начале статьи, за имя производителя и модель устройства отвечает системный файл build.prop, который находится в корне устройства в папке system/. Однако при попытке просмотреть его, не говоря уже о редактировании, мы получим отказ в доступе:
Отлично, теперь мы видим содержимое файла build.prop:
Редактируем правильный build.prop
Вернемся к началу и заметим, что значения ro.product.product.name и ro.product.product.model не соответствует тому, что отображается в настройках устройства. Изучив структуру системных папок я заметил, что существует несколько файлов build.prop, которые располагаются в папках: system, system_ext, vendor и product. Эмпирическим методом я скачивал, редактировал и пушил обратно каждый из этих файлов. В конце концов ключевым оказался файл в папке product. Отредактировав его я наконец-то смог изменить название модели эмулятора устройства!
Бесполезные твики, которые ничего не улучшают
Помимо действительно работающих твиков, приведённых в этой статье и в теме на форуме, существует немало таких, которые широко разошлись по Сети, но на самом деле не оказывают никакого влияния на работу системы. Соответствующее исследование провёл один из пользователей ресурса xda. Он проанализировал исходный код AOSP и CyanogenMod и выяснил, что множество популярных твиков просто не упомянуты в исходном коде Android. Среди них есть самые разные записи.
Твики, не экономящие заряд:
ro.ril.disable.power.collapse
ro.mot.eri.losalert.delay
ro.config.hw_fast_dormancy
ro.config.hw_power_saving
Твики, не ускоряющие работу:
windowsmgr.max_events_per_sec
persist.cust.tel.eons
ro.max.fling_velocity
ro.min.fling_velocity
debug.performance.tuningvideo.accelerate.hw
Другие бесполезные твики. Они предназначены для отключения проверки байт-кода Dalvik и запрета выгрузки лончера из оперативной памяти. Когда-то они действительно работали, но совершенно не актуальны для современных версий Android из-за изменения внутренней архитектуры ОС:
И ещё немного различных попросту не работающих твиков:
Интересно, что хотя некоторые из этих записей и были полезны для старых версий Android, некоторые не работали вообще никогда, являясь своего рода плацебо. А почему подобное массовое заблуждение вообще возникло — сейчас уже и не выяснить. Впрочем, от внесения таких записей в build.prop смартфон не станет хуже работать — все недействительные записи просто будут проигнорированы.
Читайте также: