5 votos

¿Por qué el control de la frecuencia de la CPU requiere acceso a root?

Según esta respuesta uno de los programas que requiere acceso Root es SetCPU que puede bajar la frecuencia de la CPU cuando el teléfono no se usa prolongando así la vida de la batería.

No entiendo una cosa: ¿por qué hace falta Root? ¿Cuál podría ser el daño en la reducción de la frecuencia de la CPU?

6voto

Flow Puntos 14132

Si tengo que estar en desacuerdo con Sparx, si cambias la frecuencia de la CPU a través de los métodos soportados que cada CPU moderna proporciona, el cambio, incluso en una secuencia rápida, no afecta a la estabilidad. Incluso descartaría un daño en el hardware, debido a los sofisticados mecanismos de seguridad de las CPUs modernas (protección contra el sobrecalentamiento, etc.).

¿Por qué sólo Root puede ajustar la frecuencia y el regulador de frecuencia? Bueno, primero porque es Linux el único que permite hacer Root. En segundo lugar, creo que es porque al usuario medio no le debería importar. Es el sistema el que decide qué frecuencia es la mejor en la situación actual. Lo hace de forma automática, sin intervención del usuario y hace el trabajo bien bajo Android (IMHO). Aunque piensa como SetCPU puede prolongar la vida de la batería, también puede acortarla, si se hace mal. La cuestión aquí es: ¿Crees que una App de terceros hace una mejor gestión de la batería que la que hace el fabricante del dispositivo? En algunos casos, sí, pero no siempre.

4voto

Sparx Puntos 9124

Jugar con las frecuencias de la CPU puede provocar inestabilidades en el sistema y también podría dañar el hardware. Una función tan crítica es mejor dejarla fuera de las manos de los usuarios normales que realmente no necesitan hacer tales cambios.

Dado que esta es sin duda una función básica (importante), se necesita el acceso a root.

3voto

Bryan Denny Puntos 18960

1) Porque sólo el usuario Root puede cambiar la frecuencia/regulación del sistema. Es una llamada de función a nivel de sistema y sólo Root puede hacerlo.

2) El problema no es la falta de velocidad... Es el exceso de reloj. Realmente no puedes dañar el dispositivo, pero podrías terminar en un bucle de arranque infinito y un usuario medio puede no saber cómo salir de eso.

3) También: normalmente se quiere reemplazar el kernel cuando se hace over/under clocking para obtener nuevas frecuencias y posiblemente undervolting para ahorrar energía (pero al mismo tiempo, se está saliendo de los parámetros de la CPU y puede terminar el boot looping porque no hay dos CPUs hechas exactamente iguales cuando se hacen cosas fuera de sus parámetros normales de funcionamiento).

2voto

Lie Ryan Puntos 15629

Permitir que la frecuencia de la cpu sea establecida directamente por el proceso a nivel de usuario es un problema de seguridad. Es una funcionalidad del hardware que podría afectar a otros procesos que se ejecutan en el sistema. En un sistema ideal, ningún proceso de nivel de usuario debería ser capaz de afectar a la ejecución de los procesos de otro usuario, excepto a través de la comunicación explícita entre procesos (por ejemplo, tuberías, señales, archivos, etc).

Ejemplos de daños que se pueden hacer:

  1. Duración de la batería: un malintencionado o mal escrito podría poner la cpu a un nivel constantemente alto, drenando más batería de la necesaria, sin llamar la atención porque usa poca cpu para sí mismo.
  2. Bajo rendimiento: una aplicación maliciosa o mal escrita podría establecer la frecuencia de la cpu en un nivel constantemente bajo, lo que resultaría en un bajo rendimiento. Esto podría usarse para engañar al usuario para que compre o descargue aplicaciones optimizadoras innecesarias, entre otras.
  3. Una frecuencia de cpu conflictiva establecida por múltiples aplicaciones podría llevar a un rendimiento del sistema realmente inestable y a un caos generalizado, ya que se anulan unas a otras. Esta razón por sí sola podría hacer que todo el ajuste de la frecuencia de la cpu sea inútil.

¿La solución a esto? Cualquier proceso individual no debería ser capaz de establecer directamente la frecuencia de la cpu. En su lugar, los procesos que no sean root sólo deberían poder dar pistas, y el sistema podría entonces elegir el mejor ajuste de frecuencia, teniendo en cuenta las pistas de todos los procesos, la política del sistema y la información de contabilidad de los procesos. Esto es lo que son los "gobernadores" de cpufreq. Uno de los trabajos del sistema operativo es moderar el acceso a los recursos compartidos.

Además, hay que tener en cuenta que bajar la frecuencia de la cpu no siempre conduce a una mejor duración de la batería, dependiendo de la carga de trabajo, una menor frecuencia también podría significar que se tarda más tiempo en terminar la tarea, y esto podría anular fácilmente el ahorro.

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