How do I get the CPU temperature?

Read the file from following paths (Since it is different for different devices) to get cpu temperature details from different devices, One of the path will return the needed file.

    "/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp"             
    "/sys/devices/system/cpu/cpu0/cpufreq/FakeShmoo_cpu_temp"    
    "/sys/class/thermal/thermal_zone1/temp"                      
    "/sys/class/i2c-adapter/i2c-4/4-004c/temperature"            
    "/sys/devices/platform/tegra-i2c.3/i2c-4/4-004c/temperature" 
    "/sys/devices/platform/omap/omap_temp_sensor.0/temperature"  
    "/sys/devices/platform/tegra_tmon/temp1_input"               
    "/sys/kernel/debug/tegra_thermal/temp_tj"                   
    "/sys/devices/platform/s5p-tmu/temperature"                  
    "/sys/class/thermal/thermal_zone0/temp"                      
    "/sys/devices/virtual/thermal/thermal_zone0/temp"            
    "/sys/class/hwmon/hwmon0/device/temp1_input"                 
    "/sys/devices/virtual/thermal/thermal_zone1/temp"            
    "/sys/devices/platform/s5p-tmu/curr_temp"    

To read the file, I used:

RandomAccessFile reader = new RandomAccessFile("/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp", "r");
String line = reader.readLine();

Here is the another way: Read system files


http://repo.xposed.info/module/org.narcotek.cputemp

Read this one carefully, I think it might help you.

I am using an app called cool tool; it's amazing it has lots of features... Then I enabled custom labels 1 and followed what the link said. I changed the path to /sys/class/thermal/thermal_zone0/temp and there was this option which I didn't change refer:(/d+)/d{3} And also replacement pattern:1$ Hope this helps use cool tool if you have to!


If a device doesn't expose CPU temperature via either temperature sensor (that is, asking for a sensor of type TEMPERATURE or AMBIENT_TEMPERATURE gives you nothing), you won't be able to read it in a standard manner. Of course, that says nothing about doing it in a non-standard way which might be suitable for your application if it's not going for wide distribution.

You can read off device files in /sys/devices/platform if you know where to look. If you run adb shell and cd into that folder, you've got fairly good chances of find | grep temp giving you files representing temperature sensors.

These files also aren't just going to be for the CPU only - as an example the battery temperature sensor for my Google Glass can be accessed by reading /sys/devices/platform/omap_i2c.1/i2c-1/1-0055/power_supply/bq27520-0/temp.

Looking at that path it's clear why you shouldn't do this and expect it to work on all devices - the paths and also the formats of the files will vary from device to device. However in a pinch it's a quick and dirty way to get the job done.