BCLM هو غلاف لقراءة وكتابة مستوى شحن البطارية أقصى (BCLM)/CHWA إلى وحدة تحكم إدارة النظام (SMC) على أجهزة الكمبيوتر MAC. وهو يدعم كل من Intel و Apple Silicon. استلهم هذا المشروع من العديد من حلول إدارة البطاريات ، بما في ذلك إدارة صحة البطارية الخاصة من Apple.
الغرض من الحد من شحنة MAX للبطارية هو إطالة صحة البطارية ومنع الأضرار التي لحقت البطارية. تبين المصادر المختلفة أن نطاق الشحن الأمثل لتشغيل بطاريات الليثيوم أيون يتراوح بين 40 ٪ و 80 ٪ ، ويشار إليه عادة باسم قاعدة 40-80 [1] [2] [3]. هذا المشروع مفيد بشكل خاص للأشخاص الذين يتركون أجهزة 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 ، قد يكون من الضروري تثبيت دعم وقت التشغيل Swift 5 لأدوات سطر الأوامر إذا حصلت على الخطأ التالي: 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.
بالنسبة لآلات Intel ، عند كتابة القيم ، فإن MacOS تتقاضى قليلاً عن القيمة المحددة (~ 3 ٪). من أجل عرض 80 ٪ عند الشحن بالكامل ، يوصى بتعيين قيمة BCLM على 77 ٪. عند الشحن أثناء إغلاق النظام أو النوم ، يمكن أن يتجاوز الشحن القيمة المحددة أكثر من 3 ٪.
$ sudo bclm write 77
$ bclm read
77
بالنسبة لآلات Apple Silicon ، يتم دعم القيم 80 و 100 فقط وبرنامج ثابت> = 13.0 مطلوب.
لاحظ أنه من أجل كتابة القيم ، يجب تشغيل البرنامج كجذر. هذا غير مطلوب لقراءة قيم.
يمكن إعادة تعيين SMC عن طريق اختصار بدء التشغيل أو أسباب تقنية أخرى مختلفة. لضمان أن يكون BCLM دائمًا في قيمته المقصودة ، يجب أن يستمر.
سيؤدي ذلك إلى إنشاء plist جديد في /Library/LaunchDaemons وتحميله عبر launchctl . سوف يستمر مع قيمة BCLM الحالية وسيتم تحديثها على كتابة BCLM اللاحقة.
$ sudo bclm persist
وبالمثل ، يمكن أن يكون غير محدد والذي سيفرغ الخدمة وإزالة plist.
$ sudo bclm unpersist