topmenu

トップコンピュータカメラ雑記プロフィールこのページについて

2019/10/19

Advanced Charging Controller (ACC) を使う(Androidアプリ)

スマホのリチウムバッテリ長寿命化のために Advanced Charging Controller (ACC) を使ってみた。
ACC は充電管理が行えるAndroid上のソフトである。リチウムイオン電池は、適切に充電制御することで寿命が延びるとされる。スマホの充電管理は、スマートでないものが多い。中には充電管理を行っているスマホもあるけれど、寿命というよりも電池の持ちが優先される。充電管理をしてないスマホにはこの機能を追加して、さらに寿命よりの充電管理(制御)を適切にしようということである。

ACC リポジトリに貼ってるバッテリの情報サイトを読む(そのメモ)と、バッテリ長寿命化のためには以下のように制御すればよいことがわかる。
・バッテリ残量60-65%で使用する(60-70%でも問題ない)ことが最適である。より長時間使用する目的があるならばそれに備えて100%付近まで充電すればよい。リチウムバッテリにはメモリ効果はない。
・もし電圧充電制御が行えるならば、3.92V まで充電を行うよう設定する。また電流充電制御が行えるならば、より低い電流で充電できるよう設定する。
・USB電源につなげっぱなしのときは、60-65%の設定でよいと思う。また、USB電源から直接電源が取れるならばそのように設定し、バッテリの充電は3.92V 付近で停止すればよい。
・急速充電はなるべく避ける。

(Root required)
Advanced Charging Controller (ACC)
https://forum.xda-developers.com/apps/magisk/module-magic-charging-switch-cs-v2017-9-t3668427
ACCA - ACC の apk版 (上のフォーラムより最新版ダウンロードを推奨)
https://github.com/MatteCarra/AccA/releases

インストール方法
 1. ACC の apk
上記のHPより apkをインストールする。

 2. Magisk Manager
Magisk Manager のアプリを開いてダウンロードをタップ、Advanced Charging Controller(acc) を探すか acc と検索すると出てくるのでインストール。設定はコマンドラインで Github の README を参照のこと。

ACCA 設定
 アプリ起動->歯車タップ(ACC config editor)->


・Capacity Control (すべての機種に対応)
Shutdown, Redsume, Stop のバッテリ残量を指定する。それぞれ終了、充電再開、充電終了時のバッテリ残量を示している。
 
・Charging power control (一部の機種・カーネルのみ)
充電時の最大電圧と電流を制御する。バッテリが急速充電されることを避けることで、バッテリの劣化を防ぐために使用する。

・Prioritize battery idle mode(一部のカーネルのみ)
充電を停止して、USB電源から直接給電ができる機能。使用可能ならばON推奨

・Temperature Control(すべての機種に対応)
バッテリ温度を監視し、一時的に充電停止をすることでバッテリのクールダウンを行う。これにより、バッテリの過熱による劣化を抑制する。Max temp になった場合 Pause seconds 秒だけ充電を停止する。

・Apply on Boot
起動時に実行される実行コードを記述。

・Apply on Plug
USB接続時に実行される実行コードを記述。

・Cool Down(すべての機種に対応)
充電する時間と充電しない時間をつくることでバッテリの過熱を防ぎ、バッテリ劣化を防止する。


メモ
(1)
Xiaomi Redmi Note7 をカスタム ROM にした。4、5年は使う予定なのでバッテリ長寿命のためにバッテリ制御のモジュールを入れてみた。
ROM はPixel Experience(Android 10)をインストールしたが、最近リリースされたばかりなので挙動が安定しないときがあった。
インストールは、Magisk Manager のダウンロードから ACC を探して行った。
調べてみると、Magisk Manager のリポジトリからではバージョンが古いみたいだった。最新版を入れようと思い、ターミナルから "su -c acc -u dev" を実行し最新Dev版にアップデートするコマンドを実行したのだが、ファイルをダウンロードする最初の段階でこけた。Dev版の github(https://github.com/VR-25/acc/)から "install-latest.sh"をダウンロードして実行させればいいんだけど、なるべく Magisk Manager で楽に管理したいからやめた。

ACCAという ACC をインストールできて、ACC をグラフィカルに操作できるアプリがあるんだけども、インストールしたがバージョンが古いからだめみたいだった。

いろいろやってるうちに ACCA のアプリが、この記事を書いてるときに更新されたので
再度 ACCA で入れてみることにする。ただ、このアプリのソースにある README を読んだら ACC (201909010) と古いし change log みてもこんなバージョンないから謎。(201910130) と変更点が似ているからこのバージョンよりも少し前の開発版であると思う。

(2) 追記1
ACCA v1.0.20が公開されていた。Setting -> Acc -> Acc version をタップしたときに ACC の 'master' か 'develop'オプションが使え、これは1日に1度開発版を見に行き自動的に更新できる。

(3) 追記2(2020016)
2019末に Crowdin にて JP 翻訳。いつコミットされるかわからないが次のビルドでは日本語使えるかも。

(4) 追記3 (20200325)
一部更新。スレッドを読んでないからバックエンド(acc)のプログラマがACCAの最新版アプリを貼ったりしてどっちが管理してるのかわからない。

(5) 追記4 (20210113)
去年のQ3頃から自分の環境ではほぼ安定して動くようになった。Android 12 ではまだ試せてはいないが、AOSP の初期バグが取れてから OS を新しくインストールする予定なのでかなり先になりそう。