Пролог
Казалось бы, на первый взгляд весьма простая задача. Некоторые читатели могли еще в те бородатые времена лазить по всяким 4пда, рутить свой сенсорный самсунг, менять содержимое файла build.prop и показывать наивным ламерам свой iPhone 15+ Max Pro. Однако, как оказалось, и как оно часто бывает, не все так просто и здесь есть свои подводные камни. Статья призвана помочь простым работягам избежать все кочки да ямы на пути к своей цели!
Дисклеймер
Сразу предупрежу, что люблю писать подобные статьи довольно подробно, не ради объема и многобукав, а ради максимального погружения в проблему и способ ее решения. Обратите внимание, что я работаю на macOS, поэтому все команды в терминале будут ориентированы под данную ОС. Также, следует отметить, что проворачиваю все это для API 30, то есть для самого последнего на момент написания статьи. Как говорят интернеты, сложности по этой теме начались с API 29.
Зачем это нужно?
Предполагаю, что у вас, дорогой читатель, есть на это своя веская причина, иначе не стали бы вы этим заниматься. Наиболее вероятно, что у вас, как и у меня есть программная проверка на модель устройства с которого запущено приложение, примерно как здесь. К слову, таким образом можно будет проверять результат наших трудов. Второй же, и более простой способ проверки модели эмулятора будет через настройки девайса в разделе сведений об устройстве:
Ради контекста вкратце расскажу зачем это понадобилось мне. Я получил .apk с багом где-то внутри приложения. Однако пройти дальше первого экрана в этом приложении я не смог. Дело в том, что при запуске, с сервера приходит список разрешенных для запуска устройств и ни мой народный Ксяоми, ни мой эмулятор в этот список не входит. Вот и додумался поменять имя модели устройства на одно из разрешенных. Рутить свой личный телефон не хотелось, поэтому решил шаманить с эмулятором.
Как уже говорилось в начале статьи, за имя производителя и модель устройства отвечает системный файл 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, добавить дополнительные пути. Вот как это выглядит у меня:
export ANDROIDHOME=~/Library/Android/sdk
есть такая переменная ANDROIDHOME и с ее участием редактируем переменную PATH:
export PATH=$ANDROIDHOME/emulator:$ANDROIDHOME/tools:$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) или исправить ошибку?
P.S. Телефон Alcatel One Touch idol 6030D без гарантии
Последнее изменение: 13 октября 2019, 12:48
Souch, 20 апреля 2014, 18:32 # (…)
Люди, пожалуйста дайте ссылку на Flash Tool
Буду ну ОЧЕНЬ вам благодарен!
Ответить
id116553074, 20 апреля 2014, 18:37 # (…)
Ответить
Souch, 20 апреля 2014, 18:37 # (…)
Спасибо, Тая! Я буду у тебя в долгу!
Ответить
Souch, 21 апреля 2014, 13:05 # (…)
А можно инструкцию для таких чайников как я?
Ответить
id116553074, 21 апреля 2014, 14:41 # (…)
Распаковываем прошивку и SP flash tool
— Открываем SP flash tool от имени администратора. И выбираем в нем scatter-loading на MT6589_Android_scatter_emmc.txt(находится в папке с прошивкой
— Все должно быть как на картинке
-Вытаскиваем аккумулятор и USB шнур.
— Нажимаем firmware->upgrate.
— Теперь вставляем USB шнур, после чего вставляем и аккумулятор!
— Пойдут разноцветные полоски. В конце будет зеленый кружок.
Ответить
cany748, 21 апреля 2014, 14:59 # (…)
И зачем все перепрошивать если можно просто востановить build. prop???
Ответить
id116553074, 21 апреля 2014, 15:36 # (…)
У него нет бекапа и тел не включается и рекавери тач не поддерживает.
Ответить
cany748, 21 апреля 2014, 15:47 # (…)
Прошить рекавери на любое которое поддерживает монтирование и поставить и выташить из прошивки. Еще можно на 4pda попросить скинуть бэкап, там точно помогут
Ответить
id116553074, 21 апреля 2014, 15:49 # (…)
Он не сможет управлять Aroma File Manager, т.к его рекавери тач не поддерживает.
Ответить
cany748, 21 апреля 2014, 15:51 # (…)
А зачем тач???
Ответить
cany748, 21 апреля 2014, 15:52 # (…)
TWRP тач поддерживает
Ответить
id116553074, 21 апреля 2014, 15:57 # (…)
Этот файловый менеджер нормально управляется только с рекавери, которое поддерживает тач.
Ответить
cany748, 21 апреля 2014, 16:01 # (…)
Зачем файл менеджер?? Самый простой способ попросить на 4pda бекап. А еще можно вырвать из прошивки build.prop, через TWRP положить куда надо
Ответить
cany748, 21 апреля 2014, 16:01 # (…)
Но наверно он все это не поймет
Ответить
id116553074, 21 апреля 2014, 16:05 # (…)
У него CWM…
Ответить
cany748, 21 апреля 2014, 16:07 # (…)
Что мешает прошить TWRP???
Ответить
id116553074, 21 апреля 2014, 16:10 # (…)
То, что тогда уж легче прошить все через Flash Tool.
Ответить
cany748, 21 апреля 2014, 16:14 # (…)
Легче, но все снесется
Ответить
basangubushiev, 9 июня 2015, 06:46 # (…)
Всмысле данные?
Ответить
Sankassc4, 27 сентября 2018, 16:32 # (…)
так данные сносятся когда ты бутлодер разблокируешь (на huawei точно)
Ответить
ShomaVlad2005, 19 июня 2019, 11:33 # (…)
А как можно с пк перекинуть прошивку на телефон который после build.prop не включается?
Ответить
slim123, 11 октября 2015, 12:25 # (…)
а у меня такой вопрос, я исправил в bulid sdk на другую цыфру и девайс не грузится бекап вроде был самого булида, но прошивкина девайс не где вообще нету таккак китайский качественный клон довольно мощный, получился почти кирпичь разве что значок андройда весит на 4пда не помогли
можно ли както подругому через комп залесть в это булид и исправить его обратно ??
Ответить
Souch, 21 апреля 2014, 16:00 # (…)
Не получилось. Выбрал файл, все галочки жмякнул, нажал на firmware upgrate, потом выскочила какая-то фигня, но разноцветные полоски не идут
Ответить
cany748, 21 апреля 2014, 16:01 # (…)
Драйвера установи
Ответить
Souch, 21 апреля 2014, 16:04 # (…)
Окей, сейчас на 4пда поищу
Ответить
Souch, 21 апреля 2014, 16:05 # (…)
Вот нашел дрова. Как их установить?
Ответить
cany748, 21 апреля 2014, 16:06 # (…)
Везде по разному, у меня был установщик
Ответить
id116553074, 21 апреля 2014, 16:06 # (…)
Распакуй их, если в архиве, и выбери файл install.
Ответить
cany748, 21 апреля 2014, 16:05 # (…)
Лучше попроси в теме про твой девайс бэкап build.prop они тебе точно помогут.
Ответить
id116553074, 21 апреля 2014, 16:04 # (…)
brown772omar, 28 декабря 2017, 20:15 # (…)
А что делать с зелёным кружочком?
Ответить
ShomaVlad2005, 19 июня 2019, 11:30 # (…)
Можешь помочь пожалуйста
Редачил в build.prop, поменял всю информацию на samsung s9, перезагружаю телефон и он не включается, как мне вернуть мой кирпич к жизни ?
Если что телефон Samsung A3 2016 ( SM — A310F ), заранее благодарен!
Ответить
DEN_GAMER, 19 июня 2019, 13:10 # (…)
Перепрошив о4ька
Ответить
hacker502, 19 июня 2019, 17:46 # (…)
Не надо было все менять, вероятно, ты изменил строки, отвечающие за идентификацию прошивки.
Ответить
A-l-i-k_Pro, 20 апреля 2014, 18:32 # (…)
Ээээ я тоже самое сделал файл создал и приложение скачал что мне теперь не перезагружать смартфон.
Ответить
hjklz, 18 июня 2014, 21:23 # (…)
Либо перепрошиться, либо хард ресет
Ответить
Souch, 19 июня 2014, 07:19 # (…)
Хард ресет не помог.
Ответить
_-A-Za-zA-_, 19 июня 2014, 05:46 # (…)
Wipe data, или прошивка как описано выше через Flashtool
Ответить
id30640678, 5 мая 2015, 01:35 # (…)
доигрался с build.prop теперь телефон дальше заставки MIUI 6 не загружаеться, бэкап файла есть рековери не заходит.Можно восстоновить с помощью ПК что-бы не прошиваться?
Ответить
Haifisch14, 9 июня 2015, 08:43 # (…)
Нет
Ответить
ARM_v6, 9 июня 2015, 08:54 # (…)
Топика больше года.
Ответить
Haifisch14, 9 июня 2015, 10:17 # (…)
Лол, не увидел
Че он тогда сверху висит на форуме
Ответить
ARM_v6, 9 июня 2015, 11:27 # (…)
Значит ид *много цифер написал* написал
Ответить
TARANS_, 11 октября 2015, 12:57 # (…)
Rolex, 12 июля 2017, 17:36 # (…)
Я доигрался с build.prop я изменил только это на
ro.product.model=Nexus S
ro.product.brand=Samsung
ro.product.name=Samsung
ro.product.device=SamsungИ забыл за скринить свое
Телефон Samsung galaxy S2 plus GT-I9105 что мне делать??? Подскажите пожалуйста.… у меня камера перестала работать и недавно плей маркет стал не поддерживатся Подскажите(
Ответить
DEN_GAMER, 13 июля 2017, 22:18 # (…)
Может потому что твой телефон уже старый
Ответить
flopberry, 14 июля 2017, 23:04 # (…)
прошей просто свою прошивку… данные не слетят, только рут
Ответить
semyon1, 19 сентября 2017, 23:57 # (…)
Тоесть если я перепрошью мобилу файл билд.проп восстановится? Если так то спасибо огромное. 3 дня не мог найти решение, а сейчас просто в гугле забил че делать если билд.проп капут и всё. Не думал что все так просто.
Ответить
Android_gamer, 28 января 2018, 12:04 # (…)
А можно ли вот это всё поручить холопу из сервиса? Лень возиться.
Ответить
Dimka704, 25 декабря 2018, 18:05 # (…)
Телефон samsung s7562 накосячил в build.prop изменил версию андроид из 4.0.3 na 6.0.0? и sdk=16>на24 и теперь 97% программ не запускаются и root проводники тоже не запускаются что делать??
Ответить
QPoint, 13 октября 2019, 12:48 # (…)
Полное форматирование и прошивка, и в build.prop не лезь, если не знаешь, что делаешь.
Ответить
Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием
Summing up the solution from above comments:
Fixing up the possibly broken build.prop
file
You don’t need to mount your SDCard to revert your changes. If you can boot into recovery, and access the device via adb shell, you can do so and replace your edited build.prop
file with the backup copy you’ve created (using the cp
command), thus restoring the state of before your edit. Example, assuming you’ve named your backup build.prop.bak
and placed it in the same place as the original:
# re-mount /system read/write
adb remount
# copy back the original file
cp /system/build.prop.bak /system/build.prop
# as bassmadrigal pointed out: let's make sure the file permissions are fine
chmod 644 /system/build.prop
# reboot the device
adb reboot
Keep in mind the file ends with «prop», which is short-hand for «properties» — not «prob» as short-hand for «probabilities
If it still not boots: uninstall the last app installed
As the first part didn’t solve the problem here, it might be the app installed (facebook home in our case) is causing trouble on the device it was not intended for. So let’s kick it out. Boot into recovery again, get your ADB ready, and
# uninstall the app
# adb shell pm uninstall <package_name>
adb shell pm uninstall com.facebook.home
# reboot the device
adb reboot
This finally solved it.
As a factory-reset was done, how was the app able to survive that?
This was an after-thought to the entire issue. A possible explanation lies in the fact that the factory-reset complained about the SDCard not being able to mount. So if parts of the app got installed to the card, they might have survived there. Unlikely as this is (after all, apps on SDCard should not be able to cause boot issues, as the card is mounted only after boot_completed
), I see no other explanation (comments welcome, I can include them here if wished for).
This lead to another question:
Should I remove the external SD card to protect it from factory reset?
Normally, a factory reset should not touch the external SDCard. But «better safe than sorry»: if it should not be touched normally, it shouldn’t matter whether it’s in the device or not, so it shouldn’t hurt to remove it before the factory reset. However: if you use(d) app2sd, there’s a special directory called .android_secure
on the SDCard holding the (encrypted) parts of the «moved apps». After a factory reset. the system does not know of them — so when re-installing such an app, it might lead to problems. Thus when removing the card before doing a factory reset, make sure to remove the .android_secure
directory from the card (using a card reader and your computer) before re-inserting it again.
Summing up the solution from above comments:
Fixing up the possibly broken build.prop
file
You don’t need to mount your SDCard to revert your changes. If you can boot into recovery, and access the device via adb shell, you can do so and replace your edited build.prop
file with the backup copy you’ve created (using the cp
command), thus restoring the state of before your edit. Example, assuming you’ve named your backup build.prop.bak
and placed it in the same place as the original:
# re-mount /system read/write
adb remount
# copy back the original file
cp /system/build.prop.bak /system/build.prop
# as bassmadrigal pointed out: let's make sure the file permissions are fine
chmod 644 /system/build.prop
# reboot the device
adb reboot
Keep in mind the file ends with «prop», which is short-hand for «properties» — not «prob» as short-hand for «probabilities
If it still not boots: uninstall the last app installed
As the first part didn’t solve the problem here, it might be the app installed (facebook home in our case) is causing trouble on the device it was not intended for. So let’s kick it out. Boot into recovery again, get your ADB ready, and
# uninstall the app
# adb shell pm uninstall <package_name>
adb shell pm uninstall com.facebook.home
# reboot the device
adb reboot
This finally solved it.
As a factory-reset was done, how was the app able to survive that?
This was an after-thought to the entire issue. A possible explanation lies in the fact that the factory-reset complained about the SDCard not being able to mount. So if parts of the app got installed to the card, they might have survived there. Unlikely as this is (after all, apps on SDCard should not be able to cause boot issues, as the card is mounted only after boot_completed
), I see no other explanation (comments welcome, I can include them here if wished for).
This lead to another question:
Should I remove the external SD card to protect it from factory reset?
Normally, a factory reset should not touch the external SDCard. But «better safe than sorry»: if it should not be touched normally, it shouldn’t matter whether it’s in the device or not, so it shouldn’t hurt to remove it before the factory reset. However: if you use(d) app2sd, there’s a special directory called .android_secure
on the SDCard holding the (encrypted) parts of the «moved apps». After a factory reset. the system does not know of them — so when re-installing such an app, it might lead to problems. Thus when removing the card before doing a factory reset, make sure to remove the .android_secure
directory from the card (using a card reader and your computer) before re-inserting it again.
Если вы когда-либо рутировали свое устройство Android или пробовали работать с системными файлами, вы могли встретить файл build.prop. Он находится в системном каталоге на устройствах Android, поэтому для редактирования файла build.prop вам потребуется root-доступ.
Что такое файл build.prop?
Вы можете задаться вопросом, что делает файл build.prop и почему он так важен для ОС, установленной на вашем устройстве. Что ж, файл build.prop содержит информацию о свойствах системы и другую важную информацию о сборке, которая используется в масштабе всей системы на устройстве Android.
Строки и значения, определенные в файле build.prop, критически важны для ОС, поскольку они определяют, какие функции должны быть включены на устройстве. Редактируя файл build.prop, вы можете создавать или изменять системные свойства, которые затем загружаются при перезагрузке вашего устройства.
Примечание: Для редактирования файла build.prop требуется root-доступ, поэтому вы хотите убедиться, что ваше устройство Android имеет root-права, прежде чем приступать к выполнению приведенных ниже инструкций.
Кроме того, если вы новичок, не рекомендуется изменять значения файла build.prop, исходя из собственных знаний. Убедитесь, что системные значения, которые вы хотите изменить в файле build.prop, исходят от опытного / знающего пользователя Android. В противном случае вы можете получить устройство Android с мягким кирпичом.
Как отредактировать файл build.prop на Android
- Скачать / установить Приложение BuildProp Editor из Play Store на ваше устройство Android.
- Откройте приложение BuildProp Editor и внесите одно из следующих изменений:
- Отредактируйте существующие строковые значения build.prop:
- Коснитесь значка поиска на верхней панели.
- Введите имя строки, значение которой вы хотите изменить, и выберите ее, когда она появится в результатах поиска в реальном времени.
- Измените значение строки в соответствии с вашими потребностями. Значение определяется после знак равно знак.
└ Например, persist.camera.HAL3.enabled =1 включит camera2api и persist.camera.HAL3.enabled =0 отключит camera2api. - После изменения строкового значения коснитесь значка сохранения на верхней панели.
└ Когда он запрашивает разрешение root, ДАЙТЕ это.
- Добавьте новую строку в build.prop:
- Коснитесь значка редактирования на верхней панели.
- Ваш файл build.prop откроется, прокрутите его до нижней строки »добавьте отдельную строку и введите / вставьте новую строку.
└ Fили например persist.camera.HAL3.enabled = 1 (для включения camera2api). - После добавления новой строковой строки в файл build.prop коснитесь значка сохранения на верхней панели.
└ Когда он запрашивает разрешение root, ДАЙТЕ это.
- Отредактируйте существующие строковые значения build.prop:
- Перезагрузите ваше устройство.
Это все. Измененные или вновь добавленные строковые значения в файле build.prop будут применены к системе после перезагрузки устройства.
Альтернативные способы редактирования файла build.prop?
Не хотите использовать специальное приложение для редактирования файла build.prop? Что ж, вы всегда можете использовать приложение файлового менеджера с корневым доступом (например, корневой браузер или же ES File Explorer), чтобы открыть / отредактировать файл build.prop на вашем устройстве Android.
Счастливого Androiding!
0 / 0 / 0 Регистрация: 17.07.2015 Сообщений: 9 |
|
1 |
|
27.12.2015, 02:34. Показов 2257. Ответов 5
Всем привет , вы можете мне помочь ?! Я хочу узнать как можно редактировать файл build.prop с ПК , или как решить данную проблему ! Надеюсь на вас!( P.S На всякий случий контакты: skype(filip.rotaru) , vk (danrotaru)
__________________ 0 |
21296 / 12106 / 653 Регистрация: 11.04.2010 Сообщений: 53,466 |
|
27.12.2015, 11:31 |
2 |
прежде чем играться с build.prop, нужно было позаботиться о бакапе… как правило, авторы подобных статей предупреждают о граблях, на которые можно наступить при подобных манипуляциях 0 |
0 / 0 / 0 Регистрация: 17.07.2015 Сообщений: 9 |
|
27.12.2015, 22:10 [ТС] |
3 |
Ну и что мне теперь делать?! 0 |
21296 / 12106 / 653 Регистрация: 11.04.2010 Сообщений: 53,466 |
|
27.12.2015, 23:08 |
4 |
блин, я же написал —
отладка по usb включена? если да то adb в помощь если нет то сброс к заводу, через рекавери стоковый и не факт что поможет 0 |
0 / 0 / 0 Регистрация: 17.07.2015 Сообщений: 9 |
|
30.12.2015, 18:45 [ТС] |
5 |
Где мне найти прошивку для Archos 55 Platinum ? Помогите пожалуйста 0 |
21296 / 12106 / 653 Регистрация: 11.04.2010 Сообщений: 53,466 |
|
30.12.2015, 20:51 |
6 |
на 4pda.ru 0 |
Слово автора:
Это статья написана мной, т.е.
Papa Roach
, с использованием
этих материалов
, которая не претендует на универсальность и открытие «Америки».Скорее она предназначена для ознакомления и в качестве деления личным опытом и размышлениями, ну и чутку для науки))))
Введение:
В файловой системе любого смартфона на Android есть файл
build.prop
, который лежит по пути
/system/build.prop
.Само собой для доступа к этому файлу нам нужны
root-права
!
В данном файле хранятся данные о прошивке и настройки смартфона, которые применяются после включения аппарата.
Ниже я приведу твики, которые позволяют немного улучшить производительность нашего гуглофона, ну или по крайней мере сделать его работу более «комфортной».
Предупреждаю!Все вы делаете на свой страх и риск!За работоспособность твиков не ручаюсь ибо каждый аппарат индивидуален. Я проверял на своем Acer E400(Android 2.1)
Модернизация:
Для начала делаем бекап и другие действия для сохранения нервов в случае неудачного редактирования файла!!!
Далее открываем файл и начинаем его редактирование.Если описанных ниже строчек нет в вашем файле, то просто пишите их в конец файла.
Поехали(вместо звездочки * пишем нужное нам значение):
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.jpeg.quality=100-повышаем качество jpg.А если быть более точным, то изменяем степень сжатия фоток.При параметре 100 размер фоток вырастет примерно в 2 раза.
ro.media.dec.jpeg.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 — запрет на выгрузку лаунчера из памяти.
14)ro.kernel.android.checkjni=0 — исправляет некоторые ошибки приложений.
15)persist.adb.notify=0 — отключение иконки режима отладки в статусбаре.
16)ro.config.hw_menu_unlockscreen=false — для включения возможности разблокирования экрана при помощи кнопки «Меню» (двойного нажатия), измените значение с «false» на «true»
17)Точное предназначение следующих строчек я не знаю, поэтому просто приведу список.Те, кто знает что они делают лучше прошу отписаться мне:
persist.sys.use_dithering=0
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=y
ro.mot.eri.losalert.delay=1000
18) Твики, определенные только для телефонов LG!
persist.service.pcsync.enable=0
persist.service.lgospd.enable=0
user.feature.flex=true
user.feature.lgdrm=false
user.feature.lgresource=false
user.feature.lgpoweroff=false
user.feature.ls_event=false
user.feature.ls_normal=false
user.feature.sui=false
p.s.Надеюсь кому-то будет полезным, но замечу, что если у вас стоит кастомная прошивка, то скорее всего многие твики уже включены в прошивке!
p.p.s.В прикрепленных файлах скрины файла builp.prop-на всякий случай
p.p.p.s. Спасибо за инфу
Asat-777
,
n81bla
и
dvortep
Дополнительный скрин #1
(39, 83 Kb)
Дополнительный скрин #2
(28, 39 Kb)
На чтение 4 мин. Просмотров 446 Опубликовано 16.04.2021
Устройства Android используют универсальный build.prop, который управляет флагами времени выполнения при загрузке системы Android. Многие свойства уникальны для каждого устройства, но есть несколько настроек build.prop, которые можно универсально применить практически ко всем телефонам Android. Это руководство покажет вам эти настройки и способы редактирования файла build.prop.
Предупреждение: Настройка вашего build.prop может блокировать ваше устройство Android. Настройки, которыми я делюсь, должны работать без проблем на любом устройстве Android, но вы должны всегда иметь резервную копию своих данных и стандартного ПЗУ на случай, если что-то случится.
Содержание
- Как отредактировать свой Build.Prop
- Основные настройки Build.Prop для всех устройств Android
- Более эффективное управление ОЗУ
- Улучшено качество записи аудио/видео
- Меньше буферизации видео в потоковых сервисах
- Более высокая скорость Интернета
- Пониженное потребление заряда батареи
- Настройки сети 3G
- Более быстрая перезагрузка телефона
- Изменить плотность ЖК-дисплея
- Включить VoLTE (качество звонка через LTE/HD )
- Поворот экрана запуска и блокировки
- Вращение Экран запуска и блокировки
- Улучшения звука (Музыка качество передискретизации звука и т. д.)
Как отредактировать свой Build.Prop
Самый быстрый способ – использовать приложение root explorer (для которого требуется рутированный телефон) – ES File Explorer, FX, и Root Explorer – отличные приложения. Вам нужно будет смонтировать/систему как доступную для чтения/записи в параметрах корневого проводника.
Перейдите в папку/system и найдите файл build.prop, затем откройте его в текстовом редакторе.
Кроме того, вы можете загрузить твикер build.prop через магазин Google Play. BuildProp Editor и ROM Toolbox – рекомендуемые приложения.
Второй метод, который не требует рутированного телефона, – это режим восстановления. Не все стандартные режимы восстановления производителей позволяют монтировать раздел/system, поэтому, если это относится к вам, поищите, как установить пользовательское восстановление, такое как TWRP, на ваше устройство.
Если у вас стандартное восстановление позволяет/system монтировать, вам просто нужно подключить устройство к компьютеру через USB и открыть терминал ADB, а затем загрузить build.prop на свой компьютер с помощью этой команды:
adb pull/system/build.prop
Теперь вы можете редактировать файл на своем компьютере с помощью текстового редактора, а затем отправить его обратно на свой телефон через ADB с помощью:
adb push /system/build.prop
После того, как вы отправите build.prop обратно на свое устройство, вам необходимо установить его разрешения. Продолжайте вводить в терминал ADB следующее:
adb shell
chmod 644/system/build.prop
adb reboot
Основные настройки Build.Prop для всех устройств Android
Более эффективное управление ОЗУ
ro.HOME_APP_ADJ = 1
Улучшено качество записи аудио/видео
ro.media.enc.jpeg.quality = 100
ro.media.dec.jpeg.memcap = 8000000
ro.media.enc.hprof.vid.bps = 8000000
ro.media.capture.maxres = 8 м
ro.media.panorama.defres = 3264 × 1840
ro.media.panorama.frameres = 1280 × 720
ro.camcorder.videoModes = true
ro.media.enc.hprof.vid.fps = 65
Меньше буферизации видео в потоковых сервисах
media.stagefright.enable-player = true
media.stagefright.enable-meta = true
медиа. stagefright.enable-scan = true
media.stagefright.enable-http = true
media.stagefright.enable-rtsp = true
media.stagefright.enable-record = false
Более высокая скорость Интернета
net.tcp.buffersize.default = 4096 , 87380,256960, 4096, 16384,256960
net.tcp.buffersize.wifi = 4096,87380,256960,409 6,163 84,256960
net.tcp .buffersize.umts = 4096,8 7380,256960,4096,163 84,256960
net.tcp.buffersize.gprs = 4096,8 7380,256960,4096,163 84,256960
net.tcp.buffersize.edge = 4096,8 7380,256960,4096,163 84,256960
Пониженное потребление заряда батареи
ro.mot.eri.losalert.delay=1000 (может тормозить модем.)
ro.ril.power_collapse = 1
pm.sleep_mode = 1
wifi.supplicant_scan_interval = 180
ro.mot.eri.losalert.delay = 1000
Настройки сети 3G
ro.ril.hep = 0
ro.ril.hsxpa = 2
ro.ril.gprsclass = 12
ro.ril.enable.dtm = 1
ro.ril.hsdpa.category = 8
ro.ril.enable.a53 = 1
ro.ril.enable.3g.prefix = 1
ro .ril.htcmaskw1.bitmask = 4294967295
ro.ril.htcmaskw1 = 14449
ro.ril.hsupa.category = 6
Более быстрая перезагрузка телефона
ro.config.hw_quickpoweron = true
Изменить плотность ЖК-дисплея
ro.sf.lcd.de density = xxx
Включить VoLTE (качество звонка через LTE/HD )
#ifdef VENDOR_EDIT
persist.dbg.ims_volte_enable = 1
persist.dbg.volte_avail_ovr = 1
persist.dbg. vt_avail_ovr = 0
persist.data.iwlan.enable = true
persist.dbg.wfc_avail_ovr = 0
#endif
Поворот экрана запуска и блокировки
log.tag.launcher_force_rotate = VERBOSE
lockscreen.rot_override = true
Вращение Экран запуска и блокировки
log.tag.launcher_force_rotate = VERBOSE
lockscreen.rot_override = true
Улучшения звука (Музыка качество передискретизации звука и т. д.)
persist.audio.fluence.mode = endfire
persist.audio.vr.enable = true
сохранить. audio.handset.mic = digital
af.resampler.quality = 255
mpq.audio.decode = true
Trying to edit build.prop on a rooted nexus 4, getting «file could not be saved»
I am on a rooted Nexus 4. I am trying to edit my build.prop file.
However, each time I try to save it I am getting «file could not be saved».
I tried making system writeable using «Mount /system (rw / ro)», but still get the same error.
Is there anything I need to do to change settings so that it would work?
Thank you!
You should upgrade or use an alternative browser.
-
#1
-
#2
For this, you have to go in ES Explorer > root explorer > R/W mount
-
#3
Posted via Android Central App
Similar threads
- Advertising
- Cookies Policies
- Privacy
- Term & Conditions
Пролог
Казалось бы, на первый взгляд весьма простая задача. Некоторые читатели могли еще в те бородатые времена лазить по всяким 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, добавить дополнительные пути. Вот как это выглядит у меня:
export ANDROIDHOME=~/Library/Android/sdk
есть такая переменная ANDROIDHOME и с ее участием редактируем переменную PATH:
export PATH=$ANDROIDHOME/emulator:$ANDROIDHOME/tools:$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. Спасибо за ваше внимание и очень надеюсь, что статья оказалась полезной!
I am trying to edit the lcd density in build.prop in /system but every time after reboot my changes are lost..
I tried to adb pull + edit + adb push in normal and recovery mode..
also i tried fileexpert and super manager but nothing worked.
I heard many people saying about root explorer but its not free.. I want to be sure if my problem will be solved with root explorer then i will buy it..
Please help me out guys..
I am using android 2.3.3 on HTC HD2. My Rom is custom one (HyperDroidGBX-v12)
Izzy♦
90.3k71 gold badges338 silver badges931 bronze badges
asked Apr 28, 2011 at 14:05
Answering my own question as found the solution.
We can edit build.prop from mobile. I downloaded ES file explorer which is free. then from optin set «root explorer» and set «mount system as read/write»
Now edit build.prop and save it using ES file explorer’s editor then uncheck «root explorer» and «mount system as read/write» for safety..
hope it wil help someone
answered Apr 29, 2011 at 15:18
swdswd
1291 gold badge2 silver badges8 bronze badges
1
Root Explorer won’t solve your problem any more than adb, although it’s a great app.
First, I’d try making sure you remount /system
as read-only after you push the modified file. If that doesn’t work I would assume your bootloader is checking the file and replacing it when it doesn’t match what it should be. To help you further, I think we need to know what phone you have; please add that to the question. Your version of Android, name of your ROM if it’s custom, etc. will also be useful.
answered Apr 28, 2011 at 14:38
Matthew ReadMatthew Read
50.5k29 gold badges143 silver badges272 bronze badges
0
You could also use TWRP
Reboot to recovery (TWRP)
Click Mount
Deselect mount system partition as read-only
Done
answered Feb 18, 2020 at 8:45
You must log in to answer this question.
Not the answer you’re looking for? Browse other questions tagged
.
Not the answer you’re looking for? Browse other questions tagged
.