Browse Source

[F] Fix CPU detection for Android

https://github.com/dylanaraps/neofetch/pull/2139
Azalea (on HyDEV-Daisy) 3 years ago
parent
commit
42d6aa490a
1 changed files with 10 additions and 2 deletions
  1. 10 2
      neofetch

+ 10 - 2
neofetch

@@ -2237,9 +2237,17 @@ get_cpu() {
                 ;;
 
                 "arm"* | "aarch64")
-                    cpu="$(lscpu | awk -F': ' '/Vendor ID/ {print $2; exit}' ) $(lscpu | awk -F': ' '/Model name/ {print $2; exit}')"
+                    if [[ $(trim "$ascii_distro") == Android* ]]; then
+                      # Android roms have modified cpuinfo that shows CPU model as a string
+                      cpu="$(awk -F '\\s*: | @' \
+                             '/model name|Hardware|Processor|^cpu model|chip type|^cpu type/ {
+                             cpu=$2; if ($1 == "Hardware") exit } END { print cpu }' "$cpu_file")"
+                    else
+                      # ARM linux displays binary model code in cpuinfo, which needs to be decoded with lscpu
+                      cpu="$(lscpu | awk -F': ' '/Vendor ID/ {print $2; exit}') $(lscpu | awk -F': ' '/Model name/ {print $2; exit}')"
+                    fi
                 ;;
-                
+
                 "riscv"*)
                     cpu="$(awk -F': ' '/uarch/ {print $2; exit}' "$cpu_file")"
                 ;;