13
13
help = "Prefix for stored files, e.g. galaxy-s7-us" )
14
14
15
15
16
+ # System files which need to be read with `adb shell cat filename`
17
+ # instead of `adb pull filename`
18
+ SHELL_PREFIX = [
19
+ "/sys/class/kgsl/kgsl-3d0/" ,
20
+ ]
21
+
16
22
SYSTEM_FILES = [
17
23
"/proc/cpuinfo" ,
18
24
"/system/build.prop" ,
19
25
"/sys/class/kgsl/kgsl-3d0/bus_split" ,
26
+ "/sys/class/kgsl/kgsl-3d0/clock_mhz" ,
20
27
"/sys/class/kgsl/kgsl-3d0/deep_nap_timer" ,
21
28
"/sys/class/kgsl/kgsl-3d0/default_pwrlevel" ,
22
29
"/sys/class/kgsl/kgsl-3d0/dev" ,
32
39
"/sys/class/kgsl/kgsl-3d0/devfreq/target_freq" ,
33
40
"/sys/class/kgsl/kgsl-3d0/devfreq/trans_stat" ,
34
41
"/sys/class/kgsl/kgsl-3d0/device/op_cpu_table" ,
35
- "/sys/class/kgsl/kgsl-3d0/dispatch" ,
36
- "/sys/class/kgsl/kgsl-3d0/force_bus_on" ,
37
- "/sys/class/kgsl/kgsl-3d0/force_clk_on" ,
38
- "/sys/class/kgsl/kgsl-3d0/force_non_retention_on" ,
39
- "/sys/class/kgsl/kgsl-3d0/force_rail_on" ,
42
+ "/sys/class/kgsl/kgsl-3d0/freq_table_mhz" ,
40
43
"/sys/class/kgsl/kgsl-3d0/ft_fast_hang_detect" ,
41
44
"/sys/class/kgsl/kgsl-3d0/ft_hang_intr_status" ,
42
45
"/sys/class/kgsl/kgsl-3d0/ft_long_ib_detect" ,
43
46
"/sys/class/kgsl/kgsl-3d0/ft_pagefault_policy" ,
44
47
"/sys/class/kgsl/kgsl-3d0/ft_policy" ,
45
48
"/sys/class/kgsl/kgsl-3d0/gpu_available_frequencies" ,
49
+ "/sys/class/kgsl/kgsl-3d0/gpu_busy_percentage" ,
50
+ "/sys/class/kgsl/kgsl-3d0/gpu_clock_stats" ,
51
+ "/sys/class/kgsl/kgsl-3d0/gpu_llc_slice_enable" ,
52
+ "/sys/class/kgsl/kgsl-3d0/gpu_model" ,
46
53
"/sys/class/kgsl/kgsl-3d0/gpubusy" ,
47
54
"/sys/class/kgsl/kgsl-3d0/gpuclk" ,
55
+ "/sys/class/kgsl/kgsl-3d0/gpuhtw_llc_slice_enable" ,
56
+ "/sys/class/kgsl/kgsl-3d0/hwcg" ,
48
57
"/sys/class/kgsl/kgsl-3d0/idle_timer" ,
49
58
"/sys/class/kgsl/kgsl-3d0/lm" ,
50
59
"/sys/class/kgsl/kgsl-3d0/max_gpuclk" ,
51
60
"/sys/class/kgsl/kgsl-3d0/max_pwrlevel" ,
61
+ "/sys/class/kgsl/kgsl-3d0/min_clock_mhz" ,
52
62
"/sys/class/kgsl/kgsl-3d0/min_pwrlevel" ,
53
63
"/sys/class/kgsl/kgsl-3d0/num_pwrlevels" ,
54
64
"/sys/class/kgsl/kgsl-3d0/pmqos_active_latency" ,
55
65
"/sys/class/kgsl/kgsl-3d0/popp" ,
66
+ "/sys/class/kgsl/kgsl-3d0/preempt_count" ,
67
+ "/sys/class/kgsl/kgsl-3d0/preempt_level" ,
56
68
"/sys/class/kgsl/kgsl-3d0/preemption" ,
69
+ "/sys/class/kgsl/kgsl-3d0/pwrscale" ,
57
70
"/sys/class/kgsl/kgsl-3d0/reset_count" ,
71
+ "/sys/class/kgsl/kgsl-3d0/skipsaverestore" ,
58
72
"/sys/class/kgsl/kgsl-3d0/sptp_pc" ,
59
73
"/sys/class/kgsl/kgsl-3d0/thermal_pwrlevel" ,
74
+ "/sys/class/kgsl/kgsl-3d0/throttling" ,
75
+ "/sys/class/kgsl/kgsl-3d0/usesgmem" ,
60
76
"/sys/class/kgsl/kgsl-3d0/wake_nice" ,
61
77
"/sys/class/kgsl/kgsl-3d0/wake_timeout" ,
62
78
"/sys/devices/soc0/accessory_chip" ,
@@ -217,14 +233,6 @@ def c_escape(string):
217
233
c_string += "x%02X" % ord (c )
218
234
return c_string
219
235
220
- def adb_pull (device_path , local_path ):
221
- env = os .environ .copy ()
222
- env ["LC_ALL" ] = "C"
223
-
224
- adb = subprocess .Popen (["adb" , "pull" , device_path , local_path ], env = env )
225
- adb .communicate ()
226
- return adb .returncode == 0
227
-
228
236
def adb_shell (commands ):
229
237
env = os .environ .copy ()
230
238
env ["LC_ALL" ] = "C"
@@ -234,6 +242,21 @@ def adb_shell(commands):
234
242
if adb .returncode == 0 :
235
243
return stdout
236
244
245
+ def adb_pull (device_path , local_path ):
246
+ if any (device_path .startswith (prefix ) for prefix in SHELL_PREFIX ):
247
+ content = adb_shell (["cat" , device_path ])
248
+ if content is not None :
249
+ with open (local_path , "wb" ) as local_file :
250
+ local_file .write (content )
251
+ return content is not None
252
+ else :
253
+ env = os .environ .copy ()
254
+ env ["LC_ALL" ] = "C"
255
+
256
+ adb = subprocess .Popen (["adb" , "pull" , device_path , local_path ], env = env )
257
+ adb .communicate ()
258
+ return adb .returncode == 0
259
+
237
260
def adb_getprop ():
238
261
properties = adb_shell (["getprop" ])
239
262
properties_list = list ()
0 commit comments