Charging mode что это

Charging mode что это

Здесь процесс решения и результат, а не только готовый результат.

Прежде всего хочется сказать, что если в интернете нет готового решения для конкрентного телефона, то нужно копаться в коде, а если не понимать что код делает, то ничего не получится. К счастью если на информатике были азы delphi или чего-то подобного и знать основы if else, то разобраться и сделать можно.

Обсуждения других пользователей, поиск решений и готовые решения в результате моих 2-х дневных поисков тут:
forum.xda-developers.com/…read.php?t=1815131&page=7
4pda.ru/forum/index.php?showtopic=675183&

Расписываю не только мой метод, но и пути решения, так как когда я сам искал способ, то очень помогали решения и домыслы других в построении схемы работы этого всего.

Сначала метод №1 c fastboot, который у меня не получился:
fastboot oem off-mode-charge 0

То есть нужно установить ADB. Весь качать не нужно, можно скачать урезанную версию на forum.xda-developers.com/showthread.php?t=2588979
Затем установить root на телефон, включить режим отладки по USB. Подключить телефон. На компьютере в папке программы adb в любом месте проводника при нажатом shift нажать правой кнопкой и в меню выбрать Открыть окно команд. Там пишем adb devices и видим телефон, если не видим решаем впорос, если видим, то вводим adb reboot-bootloader и телефон загрузится в fastboot. далее собственно: fastboot oem off-mode-charge 0
У меня не прокатило потому что далее написало — я искал решение, но не нашёл и забыл на этот лёгкий способ. Есть подозрение на урезанную версию adb или на драйвера, но ладно, есть другой метод — это правка boot.

Далее метод №2 по парвке загрузчика.

Лично я начал с того, что все говорят нужно править init.rc. Но init.rc перезаписывается каждый раз при запуске телефона из бута => НУЖНО ПРАВИТЬ БУТ.

Проще всего получить boot.img и записать его обратно — это использовать бэкапер под свой телеон. Бэкапер не просто приложений андроид, а всей системы телефона. Для этого нужно найти тему про свой телефон и в ней обязательно будет скрипт или программа, которая делает бэкап телефона. У меня это AIO Tookit. В описании программы будет написано, что потребуется установить драйвера для телефона, чтобы программа смогла с ним связаться и сделать полный бэкап. Так же можно использовать другие способы, в этой теме forum.hovatek.com/thread-1405.html написаны основные — adb, adb + dd, ADB + ROMdump.zip, Terminal + ROMdump.zip, AIO Flasher.

boot.img получен, ура, теперь его нужно разобрать.

Сначала сложный способ, затем лёгкий 🙂

СЛОЖНЫЙ для windows юзера:

Есть такой split_bootimg.pl на перл. Для split_bootimg.pl (разбивалка бута) требуется perl, в принципе можно поставить на windows и из винды запустить разбивалку бута, но собиралки, то нет( поэтому есть более правильный способ через cygwin (описание на русском на хабре очень хорошее) — в нём можно работать как в linux (либо если нет возможности скачать и поставить cygwin можно запустить виртуалку virtualbox или сервак) так:
-разбираем boot или с помощью split_bootimg.pl или с помощью unpackbootimg+mkbootimg (найти можно легко по имени файла, например тут), можно воспользоваться инструкциями например такой инструкцией

Читайте также:  Cat телефоны официальный сайт в россии

ЛЁГКИЙ для windows юзера:
На 4pda парень молодец сделал суперлёгкую программу для windows, которая разбивает и собирает бут. Качаем, читаем описание как работать =>boot.img разбит! ramdisk получен!

Правка системных файлов в boot.img (точнее в ramdisk):

Итак начинается самое муторное если нет конкретного решения под конкрентный телефон. А всё потому, что поправив код проверить можно только подключив зарядник, а отладки и логов я не нашёл и если не работает, то не поймёшь почему не работает.

Сначала работал вот с этим кодом в init.star.rc (в разных телефонах называется по разному, но шаблон у всех у них один init.XXX.rc):

(НАЗОВУ ЭТО сервисом charger)

service charger /charger
class charger
user root
group root
oneshot

По коду: сервис charger: класс charger запускает файл /charger

Пробовал (не помогло, забегая вперёд напишу что если бы знал про монтирование /system, то часть вариантов сработало бы):
— с работающего телефона скопировал через root explorer себе файл reboot из /system/bin/reboot (нужен root) и затем подменил файл /charger в корне ramdisk
— вместо "/charger" писал "/sbin/reboot" а в /sbin/ копировал reboot файл, играл с правами на него
— вместо "/charger" писал "/system/bin/reboot"
— вставлял дополнительные строки (от пользователей с 4pda): on property:ro.bootmode=charger…(далее много кода, это только начало) и тд
Всё это не приносило успеха, но по совету по on property:ro.bootmode=charger как я вижу сейчас есть доля истины, так как в полном коде есть монтирование /system — забегая вперёд скажу что монтирование /system — это развязка.

Задался вопросом почему charger исполняется, а reboot нет. Иметь бы исходники их. Права одинаковые. Видимо внутри функции в reboot не исполняются, но почему?

Многие пишут, что на прошивках cyagoen всё работает если просто в файл /charger вписать:
#!/system/bin/sh
/system/bin/reboot
Опять забегая вперёд скажу, что видимо там при подключении зарядки в коде уже прописано монтирование /system.

Ну и на 3-ий день с утра я уже держал в голове, что начну я с того, что возьму весь код в другом файле уже init.star.model.rc (обратил на него внимание потому что в нём много монтирований похожих на загрузку ос) из строки функции:

(ВСЕ on — НАЗОВУ ФУНКЦИЕЙ ДЛЯ УДОБСТВА)

on fs
(там ниже идёт куча монтирований всех систем и ещё всего при загрузке ОС) — думаю ОС при моей функции:
on charger
должно выполнить всё то же что и при загрузке ОС чтобы мой reboot работал точно и вставил всё что ниже функции:
on fs
в мою функцию:
on charger
и так как там в функции on fs было exec /system/bin/какой-то_бинарник, то попробовал его заменить на exec /system/bin/reboot
и при подключении зарядки телефон перезагрузился! То что я обрадовался — это ничего не сказать:)
Далее построчно поудалял строки и выявил, что главное это монтирование /system:
mount ext4 /dev/block/mmcblk0p1 /system wait ro

Читайте также:  Corsair obsidian 500d rgb se black

/dev/block/mmcblk0p1 — у разных прошивок может быть свой! Чтобы узнать его нужно на работающем телефоне в терминале (Terminal Emulator в play market) на рутованном телефоне глануть точки монтирования (fstab ещё в linux называется):
cat /proc/mounts
и найти строку по /system

То есть в итоге чтобы заработало нужно в init.rc в функции on charger вместо старта класса (class_start) charger:

on charger
class_start charger

Сделать:

on charger
mount ext4 /dev/block/mmcblk0p1 /system wait ro
exec /system/bin/reboot
#class_start charger

То есть в код добавлено монтирование /system и исполнение файла reboot из /system, а старт класса charger можно хоть оставить, хоть убрать, ведь он не успеет исполниться после reboot

Далее просто из проб:
Если так же смонтировать /system в файле init.rc в функции on charger и стартануть класс charger:
on charger
mount ext4 /dev/block/mmcblk0p1 /system wait ro
class_start charger
А в классе charger в init.xxx.rc ничего не меняя по классу charger просто файл /charger подменить файлом reboot, то ничего не работает. Странно! Но думаю это потому, что в бинарнике-файле reboot используются не только файлы из /system, но и из других папок, которые я не подмонтировал. Если подмонтировать всё как при старте ОС, то думаю reboot тоже сработает. И подтверждение моей теории вот что: если не подменять /charger файлом reboot, а в этот файл /charger вписать:
#!/system/bin/sh
/system/bin/reboot
То работает! Но это учитывая то, что /system я уже ранее подмонтировал! Ведь тут используются только /system/bin/sh и /system/bin/reboot из /system, который я и смонтировал.

То есть главное ДОЛЖЕН БЫТЬ ПОДМОНТИРОВАН РАЗДЕЛ /system

Ну и 2 рабочих у меня способа:
1. Можно прописать в классе charger исполнение любого файла с содержимым:
#!/system/bin/sh
/system/bin/reboot
2. Можно в функции on charger прописать:
exec /system/bin/reboot

Всё это будет работать только если подмонтирован /system

2-х дневная разработка сократилась бы в 100 раз если бы я сообразил про монтирование с самого начала, потому что все мои попытки правки и класса charger и функции on charger работали бы в большинстве вариантов если бы при этом был подмонтирован /system.

Читайте также:  Hgst что за фирма жесткий диск

PS: при решении вопроса уже ближе к концу мне не давал покоя умный тезис из интернета:
"Файл charger — это небольшое приложение, единственная задача которого — вывести на экран значок батареи. Он не имеет никакого отношения к Android и используется тогда, когда устройство подключается к заряднику в выключенном состоянии. В этом случае загрузки Android не происходит, а система просто загружает ядро, подключает RAM-диск и запускает charger. Последний выводит на экран иконку батареи, изображение которой во всех возможных состояниях хранится в обычных PNG-файлах внутри каталога res." размышляя над которым я пытался сначала скопировать в бут всю папку /system/bin а потом уже перешёл на более простой метод монтирования.

Далее на очереди изменение boot logo на логотип марки автомобиля:)

Charging station — Level 2 charging station for the Nissan Leaf … Wikipedia

Online charging system — (OCS) is a system allowing a Communications service prov >Wikipedia

Blended mode — is a type of Charge depleting mode of operation of a Plug in hybr >Wikipedia

Uninterruptible power supply — A small free standing UPS … Wikipedia

Belarusian heraldry — The uses of heraldry in Belarus is used by government bodies, subdivisions of the national government, organizations, corporations and by families.HistoryThe history of Belarusian heraldry is an integral part of the history of the Szlachta, the… … Wikipedia

Chevrolet Volt — Manufacturer Chevrolet division of General Motors Also called Holden Volt Opel Ampera Vauxhall Ampera … Wikipedia

Liste der Telekommunikationsstandards — Liste von Standards und Richtlinien aus der Telekommunikation. Inhaltsverzeichnis 1 ETSI 1.1 Nomenklatur 1.1.1 derzeit gültige Nomenklatur 1.1.2 vorherige Nomenklatur … Deutsch Wikipedia

USB — This article is about the computer bus to connect peripherals. For other uses of USB, see USB (disambiguation). Universal Serial Bus Original logo Type Computer Hardware Bus … Wikipedia

IP Multimedia Subsystem — The IP Multimedia Subsystem or IP Multimedia Core Network Subsystem (IMS) is an architectural framework for delivering Internet Protocol (IP) multimedia services. It was originally designed by the wireless standards body 3rd Generation… … Wikipedia

PlayStation 3 accessories — Various accessories for the PlayStation 3 v >Wikipedia

Англо-русский перевод CHARGING MODE

режим заряда (аккумуляторной батареи)

Тверитнев М.В.. English-Russian car dictionary Russo. Англо-Русский автомобильный словарь Руссо. 2005

Еще значения слова и перевод CHARGING MODE с английского на русский язык в англо-русских словарях и с русского на английский язык в русско-английских словарях.

More meanings of this word and English-Russian, Russian-English translations for the word «CHARGING MODE» in dictionaries.

Ссылка на основную публикацию
Battery remaining time в биосе что это
Вчера я писал о ноутбуке Samsung серии 300E5 (http://ammo1.livejournal.com/262248.html). В этой серии применён очень простой и остроумный способ сохранения жизни...
Amd wraith spire характеристики
После выбора процессора, оперативной памяти и материнской платы можно обратить внимание на менее важные компоненты, например, на охлаждение системы. Охлаждение...
Amd x8 fx 8350 4ghz 8 ядер
Основные характеристики сокет SocketAM3+, ядро Piledriver Volan Vishera, ядер — 8, потоков — 8, L3 кэш 8Мб, частота 4 ГГц...
Battle eye не запускается
К любому онлайн-проекту нужен античит, иначе все баталии превратятся в вакханалию бесконечных патронов и бессмертных бойцов. Но иногда этот самый...
Adblock detector