苹果硅Mac电池保护神器 - 智能充电限制工具

news/2025/11/26 8:25:42/文章来源:https://www.cnblogs.com/qife122/p/19270886

Battery - 苹果硅Mac电池保护工具

专为Apple Silicon Mac设计的电池保护工具,通过智能充电限制功能延长电池使用寿命。该工具可设置充电上限(默认80%),避免电池长期处于满电状态,有效延长电池健康度。

功能特性

  • 🔋 智能充电控制:在电池达到设定阈值时自动停止充电
  • :laptop: Apple Silicon专属:专为M系列芯片Mac优化
  • 🖥️ 双界面支持:提供图形化界面和命令行工具
  • :counterclockwise_arrows_button: 持久化运行:守护进程在重启后自动保持设置
  • :high_voltage: 电压管理模式:支持精确的电压阈值控制
  • 📊 实时状态监控:显示电池百分比、状态和剩余时间
  • 🔌 强制放电功能:即使插电也能放电至目标电量(可选)
  • :bullseye: 可自定义阈值:支持1-100%任意充电限制设置

安装指南

方法一:Homebrew安装(推荐)

brew install battery

方法二:直接下载

从GitHub Releases页面下载DMG安装包

方法三:仅安装命令行工具

运行安装脚本:

# 下载并执行安装脚本
curl -fsSL https://raw.githubusercontent.com/actuallymentor/battery/main/install.sh | bash

系统要求

  • Apple Silicon Mac (M1/M2/M3系列)
  • macOS 11.0 或更高版本
  • 管理员权限(用于安装系统组件)

首次运行时会请求管理员密码,用于安装必要的系统组件和配置sudo权限。

使用说明

基础命令

查看电池状态:

battery status

查看日志:

battery logs 100  # 查看最近100行日志

充电限制管理

设置80%充电限制:

battery maintain 80

停止充电限制:

battery maintain stop

使用电压模式控制(精确到0.1V):

battery maintain 12.0 0.5  # 目标电压12.0V,迟滞0.5V

启用强制放电模式:

battery maintain 80 --force-discharge

图形界面操作

安装完成后,打开Battery应用:

  • 菜单栏显示电池图标和当前电量
  • 点击图标可启用/禁用充电限制
  • 实时显示电池状态和电源状态
  • 可配置强制放电设置

核心代码

电池状态检测模块

#!/bin/bash
# 电池状态检测核心逻辑get_battery_status() {# 读取SMC数据获取电池信息local smc_data=$(smc -b BAT0)local percentage=$(echo "$smc_data" | grep "BRC" | awk '{print $3}')local voltage=$(echo "$smc_data" | grep "BV" | awk '{print $3}')local current=$(echo "$smc_data" | grep "BC" | awk '{print $3}')# 计算剩余时间local remaining=""if [[ $current -gt 0 ]]; thenlocal capacity=$(echo "$smc_data" | grep "BCLC" | awk '{print $3}')local hours=$((capacity / current))local minutes=$(( (capacity % current) * 60 / current ))remaining="${hours}h${minutes}m"fiecho "Battery: ${percentage}% ${voltage}V"echo "Remaining: ${remaining}"
}

充电控制守护进程

#!/bin/bash
# 充电限制守护进程核心逻辑maintain_battery_level() {local target_percentage=$1local force_discharge=$2while true; do# 获取当前电量local current_percentage=$(get_current_percentage)local charging_status=$(get_charging_status)# 充电控制逻辑if [[ $current_percentage -ge $target_percentage ]]; thenif [[ "$charging_status" == "charging" ]]; thendisable_charginglog "Charging disabled at ${current_percentage}%"fi# 强制放电模式if [[ "$force_discharge" == "true" ]]; thenenable_dischargingfielif [[ $current_percentage -lt $((target_percentage - 2)) ]]; thenif [[ "$charging_status" != "charging" ]]; thenenable_charginglog "Charging enabled at ${current_percentage}%"fifisleep 60  # 每分钟检查一次done
}

Electron图形界面主进程

// 图形界面状态管理核心代码
const generate_app_menu = async () => {try {// 获取电池和守护进程状态const { battery_state, daemon_state, maintain_percentage=80, percentage } = await get_battery_status()// 检查限制器状态const limiter_on = await is_limiter_enabled()// 检查强制放电设置const allow_discharge = get_force_discharge_setting()// 设置托盘图标log(`生成应用菜单 - 电量: ${percentage}% (放电${allow_discharge ? '允许' : '禁止'}, 限制${limiter_on ? '开启' : '关闭'})`)tray.setImage(get_logo_template(percentage, limiter_on))// 构建菜单项return Menu.buildFromTemplate([{label: `启用 ${maintain_percentage}% 电池限制`,type: 'radio',checked: limiter_on,click: enable_limiter},{label: `禁用 ${maintain_percentage}% 电池限制`,type: 'radio',checked: !limiter_on,click: disable_limiter}])} catch (error) {log('生成菜单错误:', error)}
}

系统权限配置

#!/bin/bash
# Sudo权限配置核心代码configure_visudo() {local user=$1local visudo_folder="/private/etc/sudoers.d"local visudo_file="${visudo_folder}/battery"# 创建sudoers.d目录sudo mkdir -p $visudo_folder# 配置电池控制命令的免密码sudo权限sudo tee $visudo_file > /dev/null << EOF
# Battery charge control permissions
${user} ALL=(ALL) NOPASSWD: /usr/local/bin/smc
${user} ALL=(ALL) NOPASSWD: /usr/bin/pmset
${user} ALL=(ALL) NOPASSWD: /bin/launchctl unload /Users/${user}/Library/LaunchAgents/battery.plist
${user} ALL=(ALL) NOPASSWD: /bin/launchctl load /Users/${user}/Library/LaunchAgents/battery.plist
EOF# 设置正确的文件权限sudo chmod 440 $visudo_filesudo chown root:wheel $visudo_file
}

这些核心代码模块共同构成了电池管理工具的完整功能链,从底层的SMC硬件控制到上层的用户界面交互,确保电池保护功能的稳定可靠运行。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/976733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年质量好的排名前温州代理记账企业热选榜

2025年质量好的排名前温州代理记账企业热选榜行业背景与市场趋势随着温州民营经济的持续发展和财税政策的不断更新,代理记账行业迎来了前所未有的发展机遇。据温州市财政局最新数据显示,2024年温州地区代理记账市场规…

2025年热门的超温保护限流式保护器行业内口碑厂家排行榜

2025年热门的超温保护限流式保护器行业内口碑厂家排行榜行业背景与市场趋势随着电气安全意识的不断提升和智能配电技术的快速发展,超温保护限流式保护器作为电气安全领域的关键设备,在2025年迎来了新一轮的市场增长。…

2025年热门的国标限流式保护器TOP实力厂家推荐榜

2025年热门的国标限流式保护器TOP实力厂家推荐榜行业背景与市场趋势随着我国电力基础设施建设的不断推进和电气安全标准的日益严格,国标限流式保护器作为电气安全防护的重要设备,市场需求持续增长。据中国电器工业协…

2025年权威的人造茅草渠道推荐榜

2025年人造茅草行业权威推荐榜单行业领军品牌:宿迁望月亭景观有限公司在2025年人造茅草行业发展中,宿迁望月亭景观有限公司凭借其卓越的产品品质和创新的技术实力,稳居行业推荐榜首。核心优势解析生产工艺领先 拥有…

【GitHub每日速递 20251126】Windows更新致WSA安装故障?多版本下载、使用指南及问题解决全揭秘

原文: https://mp.weixin.qq.com/s/t7fxgzbiunp3sn0PROW8QQ Windows更新致WSA安装故障?多版本下载、使用指南及问题解决全揭秘 WSABuilds 是一个用于在Windows 10和Windows 11上运行带谷歌服务和Root权限的安卓子系统…

AI驱动通信的未来愿景与技术实践

本文探讨了AI如何变革人类通信方式,重点分析了大语言模型在文本修订、个性化适配和智能体构建三大领域的技术应用,涵盖了从语法纠错到上下文理解的全流程AI写作辅助架构。为什么AI正在变革通信 什么是良好的通信?在…

2025年比较好的多孔钻床厂家最新推荐排行榜

2025年比较好的多孔钻床厂家最新推荐排行榜行业背景与市场趋势随着"工业4.2025"战略的深入推进和制造业智能化转型的加速,多孔钻床作为孔加工领域的高效解决方案,市场需求持续增长。据中国机床工具工业协会…

2025 年 11 月净化板厂家权威推荐榜:洁净工程专用板材,防火防潮净化板,医用净化板,岩棉净化板优质品牌深度解析

2025 年 11 月净化板厂家权威推荐榜:洁净工程专用板材,防火防潮净化板,医用净化板,岩棉净化板优质品牌深度解析 一、行业背景与发展趋势 随着我国医疗健康、电子半导体、生物制药、食品加工等行业的快速发展,对洁…

PHP True Async RFC 被拒——原生异步离 PHP 还有多远?

PHP True Async RFC 被拒——原生异步离 PHP 还有多远? PHP 社区最近经历了一个出人意料的时刻:备受期待的 True Async RFC 进入投票阶段后,遭遇了滑铁卢。这个原本旨在将真正的异步能力引入 PHP 核心的提案,目前几…

[nanoGPT] 编排训练 | `get_batch` | AdamW | `get_lr` | 分布式训练(DDP) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

多币互冲-多币币v6具体参数配置! - duck

ea的安装参数配置视频: 录制: 多币互冲 录制文件:https://meeting.tencent.com/crm/lvWk5AwD59组合可以看这里! 参数内需要改的地方:货币组合、盈利金额(可改可不改)、手数、回撤比、授权码 此ea免费授权使用(收…

C# 中 ?、??、??=、?: 、?. 、?[] 各种问号的用法和说明

前言 在 C# 中,问号(?)远不止是一个简单的标点符号。随着语言版本的迭代更新,C# 围绕问号(?)发展出了一套强大而优雅的空值处理和条件表达机制。熟练掌握这些操作运算符不仅能大幅提升代码的简洁性和可读性,还…

2025年质量好的碳纤维精密结构件TOP实力厂家推荐榜

2025年质量好的碳纤维精密结构件TOP实力厂家推荐榜碳纤维精密结构件行业背景与市场趋势碳纤维复合材料因其高强度、轻量化、耐腐蚀等优异性能,已成为航空航天、新能源汽车、高端工业装备等领域不可或缺的关键材料。根…

【关注可白嫖源码】--59234基于Java的黑龙江省旅游宣传网站的设计与实现 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年口碑好的碳纤维装饰片材厂家最新热销排行

2025年口碑好的碳纤维装饰片材厂家最新热销排行行业背景与市场趋势碳纤维装饰片材作为高端装饰材料,近年来在汽车内饰、电子产品外壳、高端家具等领域应用日益广泛。根据中国复合材料工业协会最新发布的《2024-2025中…

Flink DataStream API 基础构件DataStream Partitioning ProcessFunction - 指南

Flink DataStream API 基础构件DataStream Partitioning ProcessFunction - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

2025年知名的非标多孔钻床厂家实力及用户口碑排行榜

2025年知名的非标多孔钻床厂家实力及用户口碑排行榜行业背景与市场趋势随着"工业4.0"和"中国制造2025"的深入推进,非标多孔钻床作为孔加工领域的高效解决方案,在现代制造业中的应用日益广泛。根…

如何在Python中使用SQLite数据库进行增删改查操作?

SQLite 是 Python 内置支持的轻量级嵌入式数据库,无需安装额外服务端,仅通过文件(或内存)存储数据,非常适合小型项目、测试场景或本地数据管理。以下是完整的增删改查(CRUD)操作教程,包含核心语法、示例代码和…

2025年评价高的喷涂聚脲铁罐厂家推荐

2025年评价高的喷涂聚脲铁罐厂家推荐行业背景与市场趋势喷涂聚脲材料作为一种高性能防护涂料,近年来在工业防腐、建筑防水、市政工程等领域得到广泛应用。根据中国聚氨酯工业协会最新统计数据显示,2024年中国聚脲材料…

nestjs 使用类似midwayjs 模式加载模块

nestjs 使用类似midwayjs 模式加载模块midwayjs 在不少使用上实际与nestjs 是比较类似的,midwayjs 提供了一个比较有意思的玩法,就是组件化,nestjs 当然也有自己比较强大的模块化能力 参考玩法 机制上实际比较简单,…