Insomniac: Mac ಅನ್ನು ಲಿಡ್ ಮುಚ್ಚಿ ಎಚ್ಚರವಾಗಿ ಇರಿಸಿ, ಬಿಸಿ ಮಾಡದೆ
ಸಮಸ್ಯೆ
ನನ್ನ Mac ಲಿಡ್ ಮುಚ್ಚಿದ್ದರೂ ಚಲಿಸುತ್ತಿರಬೇಕೆಂದು ನಾನು ಬಯಸಿದ್ದೆ. ಮಂದ ಮಾಡಿ ಅಲ್ಲ: ನಿಜವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಾ, ರಾತ್ರಿಯಿಡೀ ಒಂದು AI ಏಜೆಂಟ್, ಒಂದು Xcode ಆರ್ಕೈವ್, ಒಂದು ಉದ್ದದ ಸಿಂಕ್, ಲಿಡ್ ಮುಚ್ಚಿದೆ, ಯಾವುದೇ ಎಕ್ಸ್ಟರ್ನಲ್ ಮಾನಿಟರ್ ಇಲ್ಲ. macOS ಇದನ್ನು ಕ್ಲ್ಯಾಮ್ಶೆಲ್ ಸ್ಲೀಪ್ ಎನ್ನುತ್ತದೆ, ಮತ್ತು ನಿಮ್ಮ ಕೆಲಸ ಮಧ್ಯದಲ್ಲಿದೆ ಎಂಬುದನ್ನು ಅದು ಲೆಕ್ಕಿಸುವುದಿಲ್ಲ.
ತೊಡಕು ಮೆಕ್ಯಾನಿಸಂನಲ್ಲಿದೆ. ಜನಪ್ರಿಯ ಕೀಪ್-ಅವೇಕ್ ಟೂಲ್ಗಳು IOKit ಪವರ್ ಅಸರ್ಶನ್ಗಳನ್ನು ಬಳಸುತ್ತವೆ, ಮತ್ತು ಅವು ಕ್ಲ್ಯಾಮ್ಶೆಲ್ ಸ್ಲೀಪ್ ಅನ್ನು ನಿಮ್ಮ ಬಳಿ ಒಂದು ಎಕ್ಸ್ಟರ್ನಲ್ ಡಿಸ್ಪ್ಲೇ, ಪವರ್, ಮತ್ತು ಒಂದು ಕೀಬೋರ್ಡ್ ಜೋಡಿಸಿರುವವರೆಗೂ ತಡೆಯುವುದಿಲ್ಲ, ಸರಿಯಾಗಿ ನಾನು ತಪ್ಪಿಸಲು ಬಯಸಿದ ಆ ಸೆಟಪ್. ಏನನ್ನೂ ಜೋಡಿಸದೆ ಕೆಲಸ ಮಾಡುವ ಏಕೈಕ ಲಿವರ್ ಒಂದು ಪ್ರಿವಿಲೇಜ್ಡ್ ಕಮಾಂಡ್: pmset disablesleep. ಆದ್ದರಿಂದ ಇಡೀ ಪ್ರಾಡಕ್ಟ್ ನಿಜವಾಗಿ ಒಂದೇ ವಿಷಯ, ಒಂದು ಅಪಾಯಕಾರಿ ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್ನ ಸುತ್ತ ಒಂದು ಸೇಫ್ ರ್ಯಾಪರ್, ಮತ್ತು ಉಳಿದೆಲ್ಲವೂ ಆ ಒಂದು ಲಿವರ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಮತ್ತು ಸುಖಕರವಾಗಿ ಎಳೆಯುವಂತೆ ಮಾಡಲು ಇದೆ.
ನಿರ್ಧಾರಗಳು
ಸೇಫ್ಟಿ ಫೀಚರ್, ಎಚ್ಚರವಾಗಿ ಇರುವುದಲ್ಲ. ಒಂದು ಜೆನೆರಿಕ್ ಪೇಡ್ ಕೀಪ್-ಅವೇಕ್ ಆ್ಯಪ್ ಆರಂಭದಲ್ಲೇ ಸತ್ತಿದೆ: Amphetamine ಮತ್ತು caffeinate ಇದನ್ನು ಈಗಾಗಲೇ ಉಚಿತವಾಗಿ ಮಾಡುತ್ತವೆ. ಸೇವೆ ಆಗದ ಕೋನ ಬಿಸಿ. ಮುಚ್ಚಿದ ಲಿಡ್ ಗಾಳಿಯ ಹರಿವನ್ನು ಕಟ್ಟುತ್ತದೆ, ಮತ್ತು ಯಾವುದೇ ಈಗಿನ ಟೂಲ್ ಇದರ ಬಗ್ಗೆ ಒಂದು ಪದವನ್ನೂ ಹೇಳುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ Insomniac “ಎಚ್ಚರವಾಗಿರು” ಅಲ್ಲ, ಇದು “ಯಂತ್ರವನ್ನು ಬಿಸಿ ಮಾಡದೆ ಎಚ್ಚರವಾಗಿರು”.
macOS ಪ್ರಾಮಾಣಿಕವಾಗಿ ಎಕ್ಸ್ಪೋಸ್ ಮಾಡುವುದನ್ನು ಅಳೆಯಿರಿ, ನಕಲಿ ಡಿಗ್ರಿಗಳಲ್ಲ. ಆಕರ್ಷಕ ವರ್ಷನ್ ಒಂದು CPU ತಾಪಮಾನವನ್ನು ಓದಿ ಡಿಗ್ರಿಗಳಲ್ಲಿ ಒಂದು ಕೌಂಟ್ಡೌನ್ ತೋರಿಸುತ್ತದೆ. ಆದರೆ Apple Silicon ಡೈ ತಾಪಮಾನ ಓದಲು ಯಾವುದೇ ಸಪೋರ್ಟೆಡ್ ದಾರಿ ಎಕ್ಸ್ಪೋಸ್ ಮಾಡುವುದಿಲ್ಲ; ಹಾಗೆ ಹೇಳುವ ಯಾವುದೂ ಮಾಡೆಲ್ಗಳ ನಡುವೆ ಮುರಿಯುವ ಪ್ರೈವೇಟ್ ಕೀಗಳನ್ನು ಓದುತ್ತಿದೆ. ಆದ್ದರಿಂದ ನಾನು ProcessInfo.thermalState (nominal, fair, serious, critical) ಮೇಲೆ ಕಟ್ಟಿದೆ, ಅದಕ್ಕೆ ಯಾವುದೇ ಅಡ್ಮಿನ್ ಬೇಕಿಲ್ಲ ಮತ್ತು ಅದು ಸದಾ ಸಪೋರ್ಟೆಡ್. ಮತ್ತು ನಿಜವಾದ ರಕ್ಷಣೆ ಒಂದು ಅಪ್ಫ್ರಂಟ್ ಪ್ರೆಡಿಕ್ಷನ್ ಅಲ್ಲವೇ ಅಲ್ಲ: ಇದು ಒಂದು ಲೈವ್ ಥರ್ಮಲ್ ಕಟ್ಆಫ್ ಅದು ಲಿಡ್ ಮುಚ್ಚಿರುವಾಗ ಸ್ಟೇಟ್ ಮೇಲೆ ನಿಗಾ ಇಡುತ್ತದೆ ಮತ್ತು ಅದು ಏರಿದರೆ ಸೆಶನ್ ಅನ್ನು ಆಟೋ-ಸ್ಟಾಪ್ ಮಾಡುತ್ತದೆ. ಒಂದು ಪ್ರೆಡಿಕ್ಷನ್ ತಪ್ಪಾಗಬಹುದು; ಒಂದು ಲೈವ್ ಕಟ್ಆಫ್ ಗ್ರೌಂಡ್ ಟ್ರುತ್.
ಅಪಾಯಕಾರಿ ಭಾಗ ಸ್ವ್ಯಾಪೆಬಲ್ ಆಗಿರುವ ಒಂದು ಆರ್ಕಿಟೆಕ್ಚರ್. pmset ಅನ್ನು ರೂಟ್ ಆಗಿ ಚಲಾಯಿಸಲು ಎರಡು ದಾರಿಗಳಿವೆ: ಪ್ರತಿ ಟಾಗಲ್ಗೂ ಪಾಸ್ವರ್ಡ್ ಕೇಳುವ ಒಂದು AppleScript ಪ್ರಾಂಪ್ಟ್ (ಸಾಮಾನ್ಯ, ಮೊದಲ ದಿನ ಕೆಲಸ ಮಾಡುತ್ತದೆ) ಮತ್ತು XPC ಮೇಲೆ ಮೌನವಾಗಿ ಟಾಗಲ್ ಮಾಡುವ ಒಂದು ಪ್ರಿವಿಲೇಜ್ಡ್ ಹೆಲ್ಪರ್ (ಪ್ರೊಡಕ್ಷನ್-ಗ್ರೇಡ್, ಸೈನಿಂಗ್ ಮತ್ತು ಒಂದು ಪಿನ್ ಮಾಡಿದ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಬೇಕು). ಆ್ಯಪ್ ಅನ್ನು ಯಾವುದಾದರೂ ಒಂದಕ್ಕೆ ಜೋಡಿಸುವ ಬದಲು, ನಾನು ಎರಡನ್ನೂ ಒಂದು PowerControlling ಪ್ರೊಟೊಕಾಲ್ನ ಹಿಂದೆ ಮರೆಮಾಡಿದೆ. ನಾನು ಮೊದಲ ದಿನ ಪಾಸ್ವರ್ಡ್-ಪ್ರಾಂಪ್ಟ್ ವರ್ಷನ್ ಶಿಪ್ ಮಾಡಿದೆ ಮತ್ತು ನಂತರ ಸೈಲೆಂಟ್ ಹೆಲ್ಪರ್ ಅನ್ನು ಯಾವುದೇ ಕಾಲರ್ ಬದಲಾವಣೆ ಇಲ್ಲದೆ ಸೇರಿಸಿದೆ. ಹೆಲ್ಪರ್ ಲಾಕ್ಡ್ ಡೌನ್: ಒಂದು ರೂಟ್ ಡೀಮನ್ ಆಗಿ ಇದು ಈ ಆ್ಯಪ್ನ ಐಡೆಂಟಿಫೈಯರ್ ಮತ್ತು Team ID ಗೆ ಪಿನ್ ಮಾಡಿದ XPC ಕನೆಕ್ಷನ್ಗಳನ್ನು ಮಾತ್ರ ಸ್ವೀಕರಿಸುತ್ತದೆ.
ಸೇಫ್ಟಿ ಇನ್ವೇರಿಯೆಂಟ್ಗಳನ್ನು ಕೋಡ್ ಜಾರಿಗೊಳಿಸುತ್ತದೆ. ಒಂದು ಕೀಪ್-ಅವೇಕ್ ಆ್ಯಪ್ನಲ್ಲಿ ಒಂದು ವಿನಾಶಕಾರಿ ವೈಫಲ್ಯ: ಕೆಲಸ ಮುಗಿದ ಮೇಲೆ ಸ್ಲೀಪ್ ಅನ್ನು ಡಿಸೇಬಲ್ಡ್ ಬಿಡುವುದು. “ಸ್ಲೀಪ್ ಅನ್ನು ಎಂದೂ ಡಿಸೇಬಲ್ಡ್ ಬಿಡಬೇಡ” ಎಂಬುದನ್ನು ನಾನು ಒಂದು ಇನ್ವೇರಿಯೆಂಟ್ ಎಂದು ಪರಿಗಣಿಸಿ ಪ್ರತಿ ಎಕ್ಸಿಟ್ ಅನ್ನೂ ಮುಚ್ಚಿದೆ. ಟಾಗಲ್ ಆಫ್, ಆಟೋ-ಆಫ್, ಥರ್ಮಲ್ ಕಟ್ಆಫ್, ಮತ್ತು ಬ್ಯಾಟರಿ ಕಟ್ಆಫ್ ಎಲ್ಲವೂ ಸ್ಲೀಪ್ ರಿಸ್ಟೋರ್ ಮಾಡುತ್ತವೆ. ಕ್ವಿಟ್ ಮತ್ತು ಲಾಗ್ಔಟ್ ರಿಸ್ಟೋರ್ ಪೂರ್ಣವಾಗುವವರೆಗೂ ಟರ್ಮಿನೇಶನ್ ಅನ್ನು ಮುಂದೂಡುತ್ತವೆ; ಆ್ಯಪ್ ಸ್ಲೀಪ್ ಡಿಸೇಬಲ್ಡ್ ಇರುವಾಗ ಸಾಯಲು ನಿರಾಕರಿಸುತ್ತದೆ. ಒಂದು ಹಾರ್ಡ್ ಕ್ರ್ಯಾಶ್ ಅನ್ನು ಇಂಟರ್ಸೆಪ್ಟ್ ಮಾಡಲಾಗದು, ಆದ್ದರಿಂದ ಮುಂದಿನ ಲಾಂಚ್ನಲ್ಲಿ ಆ್ಯಪ್ ಯಾವುದೇ ಆ್ಯಕ್ಟಿವ್ ಸೆಶನ್ ಇಲ್ಲದೆ ಸ್ಲೀಪ್ ಡಿಸೇಬಲ್ಡ್ ಎಂದು ಪತ್ತೆ ಹಚ್ಚಿ ಅದನ್ನು ರೀಸೆಟ್ ಮಾಡಲು ಮುಂದಾಗುತ್ತದೆ. ಒಂದು “ಅನಿರ್ದಿಷ್ಟ” ಸಹ ಇಲ್ಲ: ಅತಿ ಉದ್ದದ ಸೆಶನ್ ಒಂದು ಕಠಿಣ 8-ಗಂಟೆಯ ಮಿತಿ, ಏಕೆಂದರೆ “ಶಾಶ್ವತ” ಸರಿಯಾಗಿ ಆ ಸೆಟ್ಟಿಂಗ್ ಅದು ಒಂದು ಸತ್ತ, ಬಿಸಿ ಲ್ಯಾಪ್ಟಾಪ್ ಅನ್ನು ಬ್ಯಾಗ್ನಲ್ಲಿ ಬಿಡುತ್ತದೆ.
ಪ್ರಾಮಾಣಿಕ UI, ಪ್ರಾಮಾಣಿಕ ಪ್ರೈವಸಿ. ಆ್ಯಪ್ ಕೇವಲ ಮೆನು-ಬಾರ್. ಎಡ್ವೈಸರಿ ಒಂದು ರಿಸ್ಕ್ ಲೆವೆಲ್ (low, moderate, high) ಮತ್ತು ಒಂದು ಸರಳ ಮೆಸೇಜ್ ತೋರಿಸುತ್ತದೆ, ನಾನು ಪ್ರಾಮಾಣಿಕವಾಗಿ ಓದಲಾಗದ ಡಿಗ್ರಿಗಳನ್ನು ಎಂದೂ ಅಲ್ಲ, ಮತ್ತು ವೆದರ್ ನಡ್ಜ್ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಅತಿ ದುರ್ಬಲ ಇನ್ಪುಟ್: ಒಂದು ಬಿಸಿ ಕೋಣೆ ರಿಸ್ಕ್ ಹೆಚ್ಚಿಸಬಹುದು, ಆದರೆ ಒಂದು ತಂಪಾದ ಕೋಣೆ ಒಂದು ಬಿಸಿಯಾಗುತ್ತಿರುವ CPU ಅನ್ನು ಎಂದೂ ಸೇಫ್ ಮಾಡಲಾಗದು. ವೆದರ್ ಲೊಕೇಶನ್ IP ಜಿಯೋಲೊಕೇಶನ್ನಿಂದ ಬರುತ್ತದೆ, ಸಿಟಿ-ಲೆವೆಲ್, ಆದ್ದರಿಂದ ಯಾವುದೇ GPS ಪರ್ಮಿಶನ್ ಪ್ರಾಂಪ್ಟ್ ಇಲ್ಲ; ವೆದರ್ ಆಫ್ ಮಾಡಿ ಮತ್ತು ಆ್ಯಪ್ ಏನನ್ನೂ ಕಳುಹಿಸುವುದಿಲ್ಲ. ಯಾವುದೇ ಟೆಲಿಮೆಟ್ರಿ ಇಲ್ಲ, ಯಾವುದೇ ಅನಾಲಿಟಿಕ್ಸ್ ಇಲ್ಲ.
ಇದರ ಜೊತೆ ಬದುಕಿ ಮಾತ್ರ ನನಗೆ ಸಿಕ್ಕ ಬಗ್. V1 Mac ಅನ್ನು ಎಚ್ಚರವಾಗಿ ಇರಿಸಿತು, ಆದರೆ ಸ್ಕ್ರೀನ್ ಲಿಡ್ ಮುಚ್ಚಿರುವಾಗ ಬೆಳಗುತ್ತಲೇ ಇತ್ತು, ಏಕೆಂದರೆ ಸ್ಲೀಪ್ ಡಿಸೇಬಲ್ ಮಾಡುವುದು macOS ಅನ್ನು ಇಂಟರ್ನಲ್ ಡಿಸ್ಪ್ಲೇ ಆಫ್ ಮಾಡುವುದರಿಂದಲೂ ತಡೆಯುತ್ತದೆ. ಕೀಬೋರ್ಡ್ಗೆ ಎದುರಾಗಿ ಬೆಳಗುವ ಒಂದು ಬ್ಯಾಕ್ಲೈಟ್ ವ್ಯರ್ಥ ಬ್ಯಾಟರಿ ಮತ್ತು ಬಿಸಿ, ಸರಿಯಾಗಿ ಆ್ಯಪ್ ರಕ್ಷಿಸುವ ಆ ವಿಷಯ. ನಾನು ಒಂದು ಲಿಡ್ ಮಾನಿಟರ್ ಸೇರಿಸಿದೆ ಅದು ಓಪನ್-ಟು-ಕ್ಲೋಸ್ಡ್ ಎಡ್ಜ್ನಲ್ಲಿ ಫೈರ್ ಆಗುತ್ತದೆ ಮತ್ತು ಡಿಸ್ಪ್ಲೇ ಅನ್ನು ಒಂದು ಹಾನಿಕಾರಕವಲ್ಲದ ಯೂಸರ್-ಲೆವೆಲ್ ಕಮಾಂಡ್ನಿಂದ ಸ್ಲೀಪ್ ಮಾಡಿಸುತ್ತದೆ, ಪ್ರಿವಿಲೇಜ್ಡ್ ಹೆಲ್ಪರ್ನಿಂದ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಬೇರ್ಪಡಿಸಲಾಗಿದೆ. ಇದರ ಅಗತ್ಯವಿಲ್ಲದ ವಿಷಯಕ್ಕೆ ಲೀಸ್ಟ್ ಪ್ರಿವಿಲೇಜ್.
ಈಗ ಶಿಪ್ ಮಾಡಿ, ರಫ್ ಎಡ್ಜ್ ಅನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಿ. ಕೋರ್ ಫೀಚರ್ಗೆ App Sandbox ಆಫ್ ಬೇಕು, ಅದು Mac App Store ಅನ್ನು ಹೊರಗಿಡುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾನು ಒಂದು ಡೈರೆಕ್ಟ್ ಡೌನ್ಲೋಡ್ ಶಿಪ್ ಮಾಡಿದೆ. ಮೊದಲು Apple ನ ಪೇಪರ್ವರ್ಕ್ ಮೇಲೆ ದಿನಗಳನ್ನು ಕಳೆಯುವ ಬದಲು, ನಾನು ಈಗ ಒಂದು ಅನ್-ನೋಟರೈಸ್ಡ್ ಬಿಲ್ಡ್ ಶಿಪ್ ಮಾಡಿ ಪರಿಣಾಮವಾಗಿ ಬರುವ Gatekeeper ಎಚ್ಚರಿಕೆಯನ್ನು ಒಂದು ಗೈಡೆಡ್, ಒಂದು-ನಿಮಿಷದ ಸ್ಟೆಪ್ ಮಾಡಿದೆ: ಇನ್ಸ್ಟಾಲರ್ ಒಂದು ಕೈಯಿಂದ ಬಿಡಿಸಿದ ಸೆಟಪ್ ಗೈಡ್, ಕ್ವಾರಂಟೀನ್-ಕ್ಲಿಯರಿಂಗ್ ಕಮಾಂಡ್ ಆ್ಯಪ್ನ ಪಕ್ಕದಲ್ಲೇ ಒಂದು ಕಾಪಿ ಮಾಡಬಹುದಾದ ಫೈಲ್ ಆಗಿ ಇದೆ, ಮತ್ತು ಆ್ಯಪ್ ಪ್ರತಿ ಲಾಂಚ್ನಲ್ಲೂ ತನ್ನ ಕ್ವಾರಂಟೀನ್ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ತೆಗೆಯುತ್ತದೆ ಇದರಿಂದ ಎಚ್ಚರಿಕೆ ಎಂದೂ ವಾಪಸ್ ಬರುವುದಿಲ್ಲ. ಪ್ಯಾಕೇಜಿಂಗ್ ಸ್ಕ್ರಿಪ್ಟ್ ಒಂದು ಸರ್ಟಿಫಿಕೇಟ್ ಇರುವ ತಕ್ಷಣ ಒಂದು ಕಮಾಂಡ್ನಿಂದ ರೀ-ಸೈನ್ ಮತ್ತು ನೋಟರೈಸ್ ಮಾಡುತ್ತದೆ.
ಫಲಿತಾಂಶ
Insomniac ಲೈವ್ ಆಗಿದೆ: ಒಂದು ಮೆನು-ಬಾರ್ ಆ್ಯಪ್ ಅದು Mac ಅನ್ನು ಲಿಡ್-ಮುಚ್ಚಿ ಎಚ್ಚರವಾಗಿ ಇರಿಸುತ್ತದೆ, ಒಂದು ಲೈವ್ ಥರ್ಮಲ್ ಕಟ್ಆಫ್, ಒಂದು ಬ್ಯಾಟರಿ ಕಟ್ಆಫ್, ಕ್ರ್ಯಾಶ್ ರಿಕವರಿ, ಮತ್ತು ಒಂದು ಸೈನ್ ಮಾಡಿದ ಹೆಲ್ಪರ್ ಮೂಲಕ ಸೈಲೆಂಟ್ ಟಾಗ್ಲಿಂಗ್ ಜೊತೆ. ಇಡೀ ವಿಷಯ ಎರಡು ನಿಯಮಗಳ ಮೇಲೆ ನಿಂತಿದೆ: ಪ್ರಾಮಾಣಿಕವಾಗಿರಿ (ನಿಜವಾದ ಮೆಕ್ಯಾನಿಸಂ, ನಕಲಿ ಡಿಗ್ರಿಗಳ ಬದಲು ರಿಸ್ಕ್ ಲೆವೆಲ್ಗಳು, ಒಂದು ದುರ್ಬಲ ಸಿಗ್ನಲ್ ಅನ್ನು ದುರ್ಬಲವಾಗಿ ಇರಿಸಿ) ಮತ್ತು ರಫ್ ಎಡ್ಜ್ಗಳನ್ನು ಮರೆಮಾಡುವ ಬದಲು ಒಪ್ಪಿಕೊಂಡು ವೇಗವಾಗಿ ಶಿಪ್ ಮಾಡಿ. ಒಂದು ಕೀಪ್-ಅವೇಕ್ ಆ್ಯಪ್ ಒಂದು ಚಿಕ್ಕ ವಿಷಯ, ಆದರೆ ಇದು ಹಾರ್ಡ್ವೇರ್ಗೆ ಹಾನಿ ಮಾಡಬಲ್ಲ ಒಂದು ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಮುಟ್ಟುತ್ತದೆ, ಆದ್ದರಿಂದ ಡೆಮೊವನ್ನು ಹೆಚ್ಚು ಮಿಂಚುವಂತೆ ಮಾಡುವ ಪ್ರತಿ ಶಾರ್ಟ್ಕಟ್ ಪ್ರಾಡಕ್ಟ್ ಅನ್ನು ಕಡಿಮೆ ನಂಬಿಕೆಗೆ ಯೋಗ್ಯವಾಗಿಸುತ್ತಿತ್ತು.