На вашем устройстве имеется множество скрытых команд быстрой загрузки. Для того чтобы их найти нам нужно будет сбросить загрузчик и изучить его содержимое!
В своем стремлении узнать как можно больше о настройке Android я сделал много малоизвестных, но интересных открытий. Я показал вам, как получить доступ скрытые меню на вашем устройстве просеивая все скрытые действия приложений на вашем телефоне. Совсем недавно я показал вам, как получить доступ к скрытый инструмент диагностики оборудования на некоторых смартфонах. Я понимаю, что некоторые из вас были разочарованы тем фактом, что ваш смартфон не был описан в предыдущей статье, и я приношу за это свои извинения.
Чтобы компенсировать это, я собираюсь рассказать вам о чем-то гораздо более продвинутом и захватывающем: сброс загрузчика вашего устройства, чтобы обнаружить скрытые команды быстрой загрузки. Это руководство, хотя и сделано на моем Нексус 6П, определенно воспроизводится на большинстве смартфонов. Однако команды, к которым у вас будет доступ, будут существенно различаться на разных устройствах. Большинство команд не помогут вам ни в одной реальной ситуации, но, тем не менее, довольно интересно углубиться в настройки вашего телефона. Давайте начнем.
Отказ от ответственности: если вы знаете, что делаете, и можете следовать инструкциям, с вашим устройством не должно случиться ничего плохого. Но мы все еще возимся с разделами нашего устройства и загрузчиком, поэтому неизвестно, что может произойти, если вы введете неправильную команду. Убедитесь, что у вас есть резервная копия вне устройства!
Подготовка
Прежде чем мы начнем, следует отметить одну очень важную вещь. Чтобы извлечь загрузчик вашего устройства, вам понадобится root-доступ на вашем телефоне. Если у вас нет root-доступа, вы можете продолжить чтение этого руководства в образовательных целях, но вы не сможете выполнить ни одну из необходимых команд. Понял? Хороший. Еще одно обязательное условие, которое вам необходимо выполнить, — это убедиться, что на вашем компьютере есть все правильные драйверы ADB/fastboot. Если у вас нет двоичных файлов ADB/fastboot, я рекомендую установить Минимальный ADB и Fastboot с наших форумов. Что касается драйверов, вы можете скачать необходимые драйверы для устройств Google Nexus. здесь и для всех остальных устройств от здесь. Как узнать, готовы ли вы идти? Подключите устройство, включите отладку по USB в настройках разработчика, откройте командную строку и введите:
adb devices
Если вы видите всплывающее окно с серийным номером вашего устройства, значит, у вас правильные драйверы.
Сброс загрузчика
Наш первый шаг — открыть оболочку на нашем устройстве, чтобы мы могли запускать команды через ADB. Лучше всего запускать команды через ADB, потому что мы гораздо более склонны к ошибкам при наборе текста на виртуальной клавиатуре, а ошибки - это не то, что вы хотите здесь делать. Первая команда, которую вы должны запустить в командной строке:
adb shell
Если вы видите, что командная строка изменилась с отображения двоичного каталога ADB на отображение кодового имени вашего устройства Android, значит, вы успешно вошли в локальную оболочку командной строки вашего устройства. Теперь, чтобы получить доступ к разделам, которые нам нужно сбросить, вам понадобятся права суперпользователя. Для этого введите следующее:
su
Символ перед кодовым именем вашего устройства должен измениться с $ к # указывая, что теперь вы можете запускать команды с повышенными привилегиями. Будьте осторожны сейчас!
Далее мы выясним точное расположение образа загрузчика вашего устройства. Чтобы найти точный каталог, мы распечатаем список всех разделов и их каталогов по именам и найдем один, который называется 'Ботинок.' Вам нужно будет ввести две команды следующим образом:
cd /dev/block/bootdevice/by-name
ls -all
Как вы можете видеть выше, распечатывается гигантский список каталогов разделов. Эти разделы отсортированы по имени, поэтому мы можем легко определить расположение нашего раздела загрузчика. В моем случае загрузчик, который 'Ботинок' на изображении выше его можно найти по адресу /dev/block/mmcblk0p10. Этот будет меняться в зависимости от вашего устройства, поэтому важно следовать этим инструкциям, чтобы определить настоящий каталог, в котором находится ваш загрузчик. Однако обратите внимание на этот каталог, поскольку мы будем ссылаться на него в следующей команде для дампа загрузчика:
dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img
В случае успеха вы должны найти файл с именем 'около.img' находится в корне вашего внутреннего хранилища. Теперь, когда мы сбросили загрузчик, нам нужно проверить его, чтобы определить, какие скрытые команды мы можем найти.
Скрытые команды быстрой загрузки и их использование
Возможно, вы знакомы с некоторыми наиболее распространенными командами быстрой загрузки, такими как быстрая загрузка флэш-памяти или быстрая загрузка. Существует множество других команд быстрой загрузки, определенных в протокол быстрой загрузки с открытым исходным кодом. Вот список команд быстрой загрузки, доступных на каждом устройстве с загрузчиком, основанным на последней версии кода AOSP:
Чего не хватает в этом списке, так это fastboot OEM команды. Эти команды специфический производителям устройств Android, и нигде нет подробного списка или документации о том, какие команды fastboot OEM доступны. Теперь, если производитель вашего устройства любезно предоставил команду fastboot, в которой перечислены все OEM-команды (попробуйте фастбут OEM? и посмотрите, сработает ли это), тогда вам больше ничего делать не нужно. Если нет команды, которая печатает список доступных OEM-команд fastboot, вам нужно будет распечатать список струны из aboot.img и найдите команды oem вручную.
«строки» — это команда Linux, документация по которой находится доступна здесь. Как вы можете заметить, лично я использую компьютер с Windows, поэтому вместо этого я использую программа, имитирующая «строки» из Linux. Необработанный вывод команды «strings» в файле aboot.img будет довольно грязный, но если вы просто нажмете CTRL+F для «oem», вы найдете то, что вам нужно. Если вы хотите уточнить свой поиск, вы можете попробовать эту команду (для версии Windows, на которую я дал ссылку):
strings * | findstr /i oem
Для Nexus 6P я составил следующий список OEM-команд fastboot:
fastboot oem unlock-go
fastboot oem frp-unlock
fastboot oem frp-erase
fastboot oem enable reduced-version
fastboot oem device-info
fastboot oem enable-charger-screen
fastboot oem disable-charger-screen
fastboot oem enable-bp-tools
fastboot oem disable-bp-tools
fastboot oem enable-hw-factory
fastboot oem disable-hw-factory
fastboot oem select-display-panel
fastboot oem off-mode-charge enable
fastboot oem off-mode-charge disable
fastboot oem ramdump enable
fastboot oem ramdump disable
fastboot oem uart enable
fastboot oem uart disable
fastboot oem hwdog certify begin
fastboot oem hwdog certify close
fastboot oem get-imei1
fastboot oem get-meid
fastboot oem get-sn
fastboot oem get-bsn
fastboot oem get_verify_boot_status
Имейте в виду, что вам не следует выполнять любую из вышеперечисленных команд или любую из команд, которые вы обнаружите на своем устройстве, если вы не готовы принять на себя риски. Есть причина, по которой эти команды скрыты от пользователя.
При этом я подумал о некоторых изящных способах использования некоторых из этих команд быстрой загрузки, которые я нашел (которые могут быть, а могут и не быть). присутствует на вашем устройстве, поэтому следуйте инструкциям выше, чтобы проверить!), который понравится самому хардкорному Android энтузиаст. Здесь есть две команды, которые могут иметь практическое применение.
Прежде всего, это fastboot oem (включить | отключить)-экран зарядного устройства команда. Это отключает экран зарядки, который появляется, когда ваше устройство выключено. Если вам не нравится ослепляющая яркость экрана зарядки, когда ваш телефон выключен, вы можете отключить его с помощью этой скрытой команды быстрой загрузки!
Далее, есть fastboot oem off-mode-charge (включить | отключить) команда. Эта команда определяет, будет ли ваше устройство автоматически включаться при обнаружении источника питания. По умолчанию установлено значение «отключить». Я признаю, что эта команда не имеет особого смысла для телефонов, но если вы планируете установить планшет на приборную панель автомобиля, эта команда вам покажется невероятной полезный. Вы сможете настроить устройство на немедленное включение при подаче питания на планшет, например, при зарядке автомобильного аккумулятора. И наоборот, при отключении питания планшета довольно легко выключить с помощью приложения автоматизации, такого как Tasker. Эта команда, кстати, работает именно так, как написано на Нексус 7 (2013).
Вот и все, что касается возможностей настройки Android. Поделитесь командами, которые вы обнаружите (в идеале с помощью ссылки на вставку), в комментариях ниже!
Спасибо старшему признанному разработчику XDA. Дис_Трой за помощь в написании этой статьи!