O BCLM é um invólucro para ler e gravar o nível de carga da bateria Max (BCLM)/CHWA Valores para o System Management Controller (SMC) em computadores MAC. Ele suporta Intel e Apple Silicon. Este projeto foi inspirado em várias soluções de gerenciamento de baterias, incluindo o próprio gerenciamento de saúde da Battery da Apple.
O objetivo de limitar a carga máxima da bateria é prolongar a saúde da bateria e evitar danos à bateria. Várias fontes mostram que a faixa de carga ideal para a operação de baterias de íons de lítio está entre 40% e 80%, comumente referida como a regra de 40-80 [1] [2] [3]. Este projeto é especialmente útil para as pessoas que deixam seus Macs no carregador o dia todo, todos os dias.
O método mais fácil de instalar o BCLM é através brew .
O BCLM está escrito em Swift e também é trivial para compilar. Atualmente, ele só pode ser compilado no MacOS Catalina (10.15) ou superior, mas pode ser executado no OS X Mavericks (10.9) ou superior.
Um ZIP de liberação também é fornecido com um binário assinado e autenticado para aqueles que não possuem ferramentas de desenvolvimento ou estão em uma versão mais antiga do 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
Nota: Para versões mais antigas do macOS, pode ser necessário instalar o suporte do tempo de execução SWIFT 5 para ferramentas de linha de comando se você receber o seguinte erro: dyld: Symbol not found
$ 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.
Para máquinas Intel, ao escrever valores, o MacOS carrega um pouco além do valor definido (~ 3%). Para exibir 80% quando totalmente carregado, é recomendável definir o valor BCLM como 77%. Ao carregar enquanto o sistema é desligado ou dormindo, o carregamento pode ir além do valor definido mais que em média 3%.
$ sudo bclm write 77
$ bclm read
77
Para máquinas de silício Apple, apenas os valores 80 e 100 são suportados e o firmware> = 13.0 é necessário.
Observe que, para escrever valores, o programa deve ser executado como root. Isso não é necessário para a leitura dos valores.
O SMC pode ser redefinido por um atalho de inicialização ou várias outras razões técnicas. Para garantir que o BCLM esteja sempre em seu valor pretendido, deve ser persistido.
Isso criará um novo Plist In /Library/LaunchDaemons e o carregará via launchctl . Ele persistirá com o valor atual do BCLM e atualizará as gravações subsequentes do BCLM.
$ sudo bclm persist
Da mesma forma, pode ser não persistente, que descarregará o serviço e removerá o Plist.
$ sudo bclm unpersist