O objetivo deste post é mostrar como obter informações mais detalhadas sobre a CPU do seu smartphone ou tablet Android, explorando os arquivos de sistema do aparelho.
Eles guardam dados sobre o estado e e os recursos do hardware e podem ser encontrados nos diretórios (ou pastas) /var, /sys e /proc.
Para poder obter estas informações à moda hacker e sem instalar programas duvidosos, é necessário ter um gerenciador de arquivos ou um terminal.
Se você ainda não tem um terminal e deseja instalar um no seu sistema, veja como fazer isto aqui (é rápido e fácil).
Dê uma olhada no arquivo cpuinfo
Neste post, vou abordar o caminho via console — mas nada impede que você acesse os mesmos arquivos usando o seu gerenciador de arquivos preferido.
A vantagem de usar o terminal é que ele é um aplicativo leve e, se você estiver lendo este artigo no celular, pode copiar os comandos daqui e colar no seu terminal.
Use o que você achar melhor. 😉
O primeiro lugar a olhar é o ‘/proc/cpuinfo’.
No terminal, digite o comando:
cat /proc/cpuinfo
processor : 0 model name : ARMv7 Processor rev 0 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 0 processor : 1 model name : ARMv7 Processor rev 0 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 0 processor : 2 model name : ARMv7 Processor rev 0 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 0 processor : 3 model name : ARMv7 Processor rev 0 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 0 Hardware : Qualcomm Technologies, Inc MSM8916 Revision : 82b0 Serial : 3d411c0c00000000 Processor : ARMv7 Processor rev 0 (v7l) Device : osprey Radio : 6 MSM Hardware : MSM8916
Veja, na tabela, abaixo, o significado de cada item:
Item | Descrição |
---|---|
processor | Neste caso, trata-se de um sistema quad-core (4 núcleos): O primeiro é o 0, o segundo é 1, o terceiro é 2 e o quarto é 3. Esta é a única informação que varia de um núcleo para outro, uma vez que se trata de “quadrigêmeos” —. Dentro desta CPU, todos os núcleos são iguais. |
Model name | O nome do modelo indica se tratar de uma microarquitetura de 64 bit ARMv7, que faz parte do chip Qualcomm Snapdragon MSM8916 (também chamado de Qualcomm Krait, citado ao final da lista. No site da ARM, é possível encontrar pilhas de documentos específicos e detalhados sobre este componente, voltados para desenvolvedores. |
BogoMIPS |
MIPS é uma abreviatura para Milhões de Instruções Por Segundo. Trata-se de uma unidade de medida para a velocidade de computação de uma processador. Tal como muitas outras unidades de medidas, nem sempre é usada apropriadamente — por que é muito difícil comparar de forma justa os MIPS entre diferentes computadores. O BogoMips é uma invenção de Linus Torvalds para usar na versão 0.99.11 do kernel Linux — uma vez que ele precisava medir um laço de tempo. O prefixo “Bogo”, vem de “bogus”, que significa falso. O motivo disto é que não há metodologia científica para calcular e comparar os MIPS entre computadores. Este valor não é para ser levado (muito) a sério. |
Features | Nesta linha estão listados os recursos disponíveis por esta arquitetura. |
CPU Implementer | código do fabricante: 0x41 = ARM. |
CPU architecture | versão da arquitetura da CPU. |
CPU Variant | Indica a versão atual da revisão do processador. |
CPU part | Indica o número da parte em questão. |
CPU revision | O número de ordem da revisão do patch (software de atualização) da CPU. |
Hardware | O nome do fabricante e modelo do hardware que integra as partes das CPUs. |
Revision | Revisão atual do chip. |
Serial | Número de série do chip. |
Processor | Nome completo do processador, no qual este chip da Qualcomm é baseado. |
Device | O osprey é o modelo do hardware de rede deste chip da Qualcomm. |
Radio | A versão do dispositivo de rádio do chip. |
MSM Hardware | Modelo do Mobile Station Modem ou Modem de eStação Móvel. |
Onde encontrar os valores do clock mínimo, máximo e atual das CPUs no smartphone
O sistema operacional armazena os valores da frequência atual, mínima e máxima em um arquivo por processador. Portanto, em um sistema quad core, serão 04 arquivos:
CPU0
- /sys/bus/cpu/devices/cpu0/cpufreq/scaling_cur_freq
- /sys/bus/cpu/devices/cpu0/cpufreq/scaling_min_freq
- /sys/bus/cpu/devices/cpu0/cpufreq/scaling_max_freq
CPU1
- /sys/bus/cpu/devices/cpu1/cpufreq/scaling_cur_freq
- /sys/bus/cpu/devices/cpu1/cpufreq/scaling_min_freq
- /sys/bus/cpu/devices/cpu1/cpufreq/scaling_max_freq
CPU2
- /sys/bus/cpu/devices/cpu2/cpufreq/scaling_cur_freq
- /sys/bus/cpu/devices/cpu2/cpufreq/scaling_min_freq
- /sys/bus/cpu/devices/cpu2/cpufreq/scaling_max_freq
CPU3
- /sys/bus/cpu/devices/cpu3/cpufreq/scaling_cur_freq
- /sys/bus/cpu/devices/cpu3/cpufreq/scaling_min_freq
- /sys/bus/cpu/devices/cpu3/cpufreq/scaling_max_freq
Como você pode ver, estes arquivos e alguns outros se encontram no diretório /sys/bus/cpu/devices/cpuX/cpufreq/
.
Para ver os arquivos informativos referentes à cpu0, use o comando ls:
ls /sys/bus/cpu/devices/cpu0/cpufreq/
Para ver o valor da frequência atual do núcelo CPU0, use o comando cat:
cat /sys/bus/cpu/devices/cpu0/cpufreq/scaling_cur_freq 998400
O valores exibidos estão em kilohertz (KHz).
Portanto, o valor acima, reflete uma frequência de 998,4 MHz.
Para obter a escala das frequências possíveis de operação deste núcleo, verifique este arquivo:
cat /sys/bus/cpu/devices/cpu0/cpufreq/scaling_available_frequencies 200000 400000 533333 800000 998400 1094400 1152000 1209600 1363200
Convertidos, estes valores vão de 200 MHz a 1,36 GHz.
Se você gostaria de saber quais são os governors disponíveis, verifique o seguinte arquivo:
cat /sys/bus/cpu/devices/cpu0/cpufreq/scaling_available_governors interactive ondemand userspace powersave performance
… e o governor atual:
cat /sys/bus/cpu/devices/cpu0/cpufreq/scaling_governor interactive
Estes são os valores da primeira CPU do meu sistema. Os outros valores provavelmente serão iguais.
Em alguns casos, é possível ao sistema desligar ou reduzir significativamente o clock de algumas CPUs, mantendo as outras ativas, para economizar energia.
Referências:
Entenda mais sobre os governors: https://elias.praciano.com/2013/10/como-alterar-a-velocidade-do-processador-no-android-ajuste-dos-governors/
Entenda mais sobre os processadores ARM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337h/Cihhbddh.html
One reply on “Onde encontrar informações sobre a CPU no smartphone Android”
Muito boa a matéria, mas eu queria descobrir o atual consumo do processador em cada núcleo (tipo, usando % do núcleo tal), pois eu queria fazer um script com base nisso…