Вчера ми пристигна 1650mHa батерия за HTC Kaiser-a ми, което е с 300mHa повече от оригиналната 😎 . Понеже ползвам телефон които е non native Android се налга да се направят няколко магии за да отчита правилно батерията в %-ти. Единия по лесния вариант е ако ползвате стандартен kernel си го едитвате с Atools като задавате новата стойност за mHa на батерията флашвате с новото NBH и дерзаете. Другия вариант е да ползвате нестандартно ядро което не се поддава на atools обработка и да направите грозена кръпка на създалия се проблем.
Първо нека да разясним малко теория и след това да пристъпим към кръпката. Когато правите промени по ядрото си с atools вие правите фини настройки на система в /sys/module/ и след това според зависи за вашия хардуер. При мен важния файл който отговаря за настройката на батерията се намира в /sys/module/board_kaiser_battery/parameters/battery_capacity. В него се съдържа колко единици е количеството на вашата батерия и на база на цифрата вътре се изчислява на колко % е вашата батерия в момента. Казвам единици защото не се пише чисто число в mHa а се изчислява на база на формулата
mHa*1.6=единици
В моя случай това ще рече 1650*1,6=2640 единици, сиреч това ще ни е съдържанието на файлчето. Речено сторено набързо в конзолата си набивам едно
echo 2640 > /sys/module/board_kaiser_battery/parameters/battery_capacity
Така до тука нещата са кристално ясни какво трябва да се прави, къде и защо. Обаче тука идва и момента за малката подробност, файлът в /sys директорията си занулява съдържанието след всеки рестарт на телефона, което не е много оферта. Затова следващата стъпка е да го сложим горния ред init-a на нашия Android.
Тъй като несъм съм го сложил в init-аискам да изчакам няколко дни преди да го направя. Когато го набия в init-a ще драсна набързо едно дребно how to 🙂