BCLMは、MACコンピューターのシステム管理コントローラー(SMC)にバッテリー充電レベル(BCLM)/CHWA値を読み書きするラッパーです。 IntelとAppleの両方のシリコンをサポートします。このプロジェクトは、Apple独自のバッテリーヘルス管理など、いくつかのバッテリー管理ソリューションに触発されました。
バッテリーの最大充電を制限する目的は、バッテリーの健康を延長し、バッテリーの損傷を防ぐことです。さまざまなソースによると、リチウムイオン電池の動作に最適な電荷範囲が40%から80%であり、一般に40-80ルール[1] [2] [3]と呼ばれています。このプロジェクトは、毎日1日中充電器にMacを残している人々に特に役立ちます。
BCLMをインストールする最も簡単な方法は、 brewを使用することです。
BCLMはSwiftで書かれており、コンパイルするのも簡単です。現在、Macos Catalina(10.15)以上でのみコンパイルできますが、OS X Mavericks(10.9)以上で実行できます。
リリースZIPには、開発ツールを持っていない、または古いMACOSバージョンにある人のための署名付きおよび公証されたバイナリも提供されます。
$ brew tap zackelia/formulae
$ brew install bclm
$ make build
$ make test
$ sudo make install
$ unzip bclm.zip
$ sudo mkdir -p /usr/local/bin
$ sudo cp bclm /usr/local/bin
注:MacOSの古いバージョンの場合、次のエラーがdyld: Symbol not foundした場合、コマンドラインツールのSwift 5ランタイムサポートをインストールする必要がある場合があります。
$ bclm
OVERVIEW: Battery Charge Level Max (BCLM) Utility.
USAGE: bclm <subcommand>
OPTIONS:
--version Show the version.
-h, --help Show help information.
SUBCOMMANDS:
read Reads the BCLM value.
write Writes a BCLM value.
persist Persists bclm.
unpersist Unpersists bclm.
See 'bclm help <subcommand>' for detailed help.
Intelマシンの場合、値を書き込むとき、Macosは設定値をわずかに超えて充電します(〜3%)。完全に充電されたときに80%を表示するには、BCLM値を77%に設定することをお勧めします。システムのシャットダウン中または睡眠中に充電すると、充電は平均3%以上のセット値を超えることができます。
$ sudo bclm write 77
$ bclm read
77
Appleシリコンマシンの場合、値80と100のみがサポートされ、ファームウェア> = 13.0が必要です。
値を記述するには、プログラムをルートとして実行する必要があることに注意してください。これは、値を読むために必要ではありません。
SMCは、スタートアップショートカットまたはその他のさまざまな技術的理由によってリセットできます。 BCLMが常に意図された値にあることを確認するには、持続する必要があります。
これにより/Library/LaunchDaemonsに新しいプリストが作成され、 launchctlを介してロードします。現在のBCLM値で持続し、その後のBCLMの書き込みを更新します。
$ sudo bclm persist
同様に、サービスを降ろしてプリストを削除することはできません。
$ sudo bclm unpersist