1 votos

¿Cómo escribir en un archivo del sistema Android?

¿Por qué escribir a /sys/class/power_supply/battery/status ¿No tiene ningún efecto?

Acceso manual a través de adb shell como Root, por ejemplo echo "Discharging" > /sys/class/power_supply/battery/status no cambia el contenido del archivo. vi no desea guardar ningún cambio. touch también falla al crear un archivo de prueba en el mismo directorio.

Los permisos eran 444 originalmente, pero cambiaron a 644 con chmod .

El objetivo es utilizar Límite de carga de la batería para limitar cuánto se carga la batería del teléfono, y esa aplicación escribe en un archivo de control para conseguirlo. Desde la aplicación no está funcionando en este teléfono he intentado probar escribir manualmente para diagnosticar.

El teléfono es un Samsung Gio GT-S5660M corriendo Cyanogenmod 11 que es la ROM más reciente que he encontrado para él.

Sistema de archivos y memoria:

root@gio:/ # df
Filesystem               Size     Used     Free   Blksize
/dev                   136.9M   136.0K   136.7M   4096
/sys/fs/cgroup         136.9M     0.0K   136.9M   4096
/mnt/asec              136.9M     0.0K   136.9M   4096
/mnt/obb               136.9M     0.0K   136.9M   4096
/mnt/fuse              136.9M     0.0K   136.9M   4096
/system                206.4M   185.2M    21.3M   4096
/data                  178.4M   114.7M    63.7M   4096
/cache                  24.8M     4.2M    20.6M   4096
/mnt/media_rw/sdcard0     1.8G     4.3M     1.8G   32768
/mnt/secure/asec         1.8G     4.3M     1.8G   32768
/storage/sdcard0         1.8G     4.3M     1.8G   32768

root@gio:/ # free
             total         used         free       shared      buffers
Mem:        280276       267796        12480            0         3672
-/+ buffers:             264124        16152
Swap:        49148         4580        44568

root@gio:/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0
none /sys/fs/cgroup/memory cgroup rw,relatime,memory 0 0
tmpfs /mnt/asec tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/fuse tmpfs rw,seclabel,relatime,mode=775,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/stl12 /system ext4 ro,seclabel,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/dev/block/stl13 /data ext4 rw,seclabel,nosuid,nodev,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/dev/block/stl14 /cache ext4 rw,seclabel,nosuid,nodev,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/block/vold/179:1 /mnt/media_rw/sdcard0 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:1 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

1voto

John Dallman Puntos 103

Por defecto, el /sys árbol de directorios es de sólo lectura y está mantenido por el kernel Linux de Android. Usarlo para controlar la carga requeriría un kernel personalizado, y AFAIK Cynogenmod tenía un kernel bastante genérico.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X