Onde encontrar informações sobre a CPU no smartphone Android – Elias Praciano
Categories
Android Tutoriais

Onde encontrar informações sobre a CPU no smartphone Android

Quem gosta de hackear seus dispositivos, no sentido de estudar e aprender mais, com acesso ao terminal do Android, é possível obter informações bastante detalhadas sobre os vários componentes do hardware do seu smartphone.
Mesmo sem ter acesso root ou privilégios administrativos, há uma série de arquivos de sistema que podem ser lidos e que revelam muito sobre o aparelho que você tem em mãos.

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

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

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…

Leave a Reply to Erik Siqueira Nogueira Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.