]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid using Linux sysfs APIs to access battery state on Android
authorPo Lu <luangruo@yahoo.com>
Fri, 10 Mar 2023 02:02:36 +0000 (10:02 +0800)
committerPo Lu <luangruo@yahoo.com>
Fri, 10 Mar 2023 02:02:36 +0000 (10:02 +0800)
* lisp/battery.el (battery-status-function): Don't look for /sys,
/proc* on Android.  Explain why.

lisp/battery.el

index a51bc5267b3de690a7a55da46631e880743344b7..c55fcbbee8c960eb9e97e08a82599f377e3adddf 100644 (file)
@@ -97,20 +97,21 @@ Value does not include \".\" or \"..\"."
 (defcustom battery-status-function
   (cond ((member battery-upower-service (dbus-list-activatable-names))
          #'battery-upower)
-        ;; Try to find the relevant devices in /sys and /proc on
-        ;; Android as well, in case the system makes them available.
-        ((and (memq system-type '(gnu/linux android))
+        ((and (eq system-type 'gnu/linux)
               (file-readable-p "/sys/")
               (battery--find-linux-sysfs-batteries))
          #'battery-linux-sysfs)
-       ((and (memq system-type '(gnu/linux android))
+       ((and (eq system-type 'gnu/linux)
              (file-directory-p "/proc/acpi/battery"))
         #'battery-linux-proc-acpi)
-       ((and (memq system-type '(gnu/linux android))
+       ((and (eq system-type 'gnu/linux)
               (file-readable-p "/proc/")
               (file-readable-p "/proc/apm"))
          #'battery-linux-proc-apm)
         ;; Now try the Android battery status function.
+        ;; Note that even though the Linux kernel APIs are sometimes
+        ;; available on Android, they are badly implemented by Android
+        ;; kernels, so avoid using those.
         ((eq system-type 'android)
          #'battery-android)
        ((and (eq system-type 'berkeley-unix)