5

I've been asked if I can check some faulty behavior of a device, a cheap Chinese android smartphone.

I'm not really an android expert, usually I install a few apps to help me figure out few things about the device. These apps I've reported conflicting results compared to what was displayed in the main android settings area:

  • With DiskUsage internal memory is reported as 3.9gb vs 16gb in system settings.
  • Device Info HW (suggested by @alecxs) explicitly mark as fake the reported version 9.0, pointing Android 6 as correct with API level 23. Unfortunately the app reports the same storage size of 16gb as stated in system settings.
    Following another intuition of @alecxs, inspecting the partitions tab and looking at the displayed partitions sizes, it's possible to detect yet another forged spec. The total reported partitions size is around 8gb, the userdata partition is around 4gb which is corresponding to DiskUsage report. In my previous attempt I've CPU Info.

This kinda reminds me of fake USB thumb drives scams with less memory than advertised.

So is there a way (preferably without root) to test/analyze common technical details of a device for possible tampering/spoofing?

Like

  • Storage
  • Android version
  • RAM
  • CPU
  • Something else that can be faked?

FLOSS solutions are highly appreciated! :)

UPDATES

  • Listed used apps and updated after suggestions in comments.
  • Added considerations and further analysis of partitions memory size.
7
  • Does this answer your question? Which Android runs which Linux kernel?
    – alecxs
    Commented Nov 11, 2021 at 8:09
  • 1
    searching for modem (baseband version) sometimes reveal true model and specs. afaik baseband can't be spoofed on chinese factory mode screen (vol up + vol dn + power)
    – alecxs
    Commented Nov 11, 2021 at 12:07
  • The app is interesting @alecxs thank you. Even if atm I don't consider a resolving answer I'd like to +1 your suggestion. Unfortunately the storage size is reported just like in the system settings.
    – Gruber
    Commented Nov 11, 2021 at 14:04
  • The android kernel and baseband version are also valid points that should be considered.
    – Gruber
    Commented Nov 11, 2021 at 14:26
  • That's interesting. I wonder there is a discrepancy between MEMORY and PARTITIONS tab
    – alecxs
    Commented Nov 11, 2021 at 16:12

3 Answers 3

3

In general the more common an hardware info app is the more likely it is that the hardware faker have integrated a patch to let a system info app display wrong values.

Therefore the best way to identify fake hardware is not to use an app at all. Using a Linux command-line program e.g. executed via adb identifying fake values or values that do not match if more likely. To do so I would recommend to copy a (renamed) busybox binary via adb:

  1. rename it to something different like mybinary
  2. push it to the phone adb push <mybinary> /sdcard
  3. start adb shell
  4. copy the binary it to a path where you can execute it: cp /sdcard/<mybinary> /data/local/tmp/
  5. make it executable chmod u+x /data/local/tmp/<mybinary>

Now you are ready to use it..eg. to check the physical RAM:

/data/local/tmp/<mybinary> free
            total       used       free     shared    buffers     cached
Mem:       5727792    5528296     199496      67020       1712    2170428
-/+ buffers/cache:    3356156    2371636
Swap:      2097148    1737312     359836

In this example the total memory of the phone is 6GB minus the size used by the GPU. So we end up here with 5727792 total memory = 5.4GB max RAM

To print disk size you can use

/data/local/tmp/<mybinary> df -h /sdcard
Filesystem                Size      Used Available Use% Mounted on
/dev/fuse               109.6G     17.9G     91.5G  16% /storage/emulated

It shows the user data partition size and usage. The used phone has 128GB flash memory. The user data partition is smaller as the remaining space is occupied by the system partition(s) and other partitions.

2
  • Indeed a more thorough approach, thanks! Would something like Termux be equivalent?
    – Gruber
    Commented Jan 2, 2022 at 1:55
  • @Gruber Using Termux is possible but I would not recommend it as fake devices are often patched to forge app display data. I don't know how Termux renders the output (and how easy/difficult it is to forge the output of certain commands) but I would stringly recommend to use the commands via adb. Then at least the displaying part on the PC side is known to be not manipulated.
    – Robert
    Commented Jan 2, 2022 at 11:50
2

Have you tried using something like AIDA64?

Apparently the newer versions have mitigations against reporting spoofed specs.

Another thing to check against the claimed specs. is pixel/screen resolution, it shouldn't be as easily spoofable, and is often lower than claimed in these cheap unbranded Android devices which have other suspicious specs.

There are also certain device model names which are more liable to report spoofed information.

If you go here, check the device model name/number (and estimated pixel resolution), some device models which frequently have spoofed specs are "FF-5000", "P10", "PX6", "S109", "T906", "TAB910", "TS-M704A", "ZH960" and more.

Other fake devices will have model numbers which appear on the surface to look like a known brand, e.g. "S21+ Ultra", whereas a real Samsung device should report something like "SM-G9960" (most Samsung devices will have model numbers starting with a prefix such as "SM-" or "GT-", although this could also be faked).

1
  • AIDA64 and similar apps are too common. People who fake hardware even integrate "fixes" which override the data shown in such apps.
    – Robert
    Commented Dec 30, 2021 at 12:18
2

If you're comfortable with the command line here's what I think is a better and simpler way that doesn't require adb and connecting to a computer, doesn't require root access or anything else tricky. Easy for a novice or total noob:

  1. Install F-Droid from Google Play
  2. Install Termux from F-Droid
  3. Run Termux
  4. Type pkg install inxi -y then Press ENTER
  5. Type inxi then Press ENTER
  6. Read the info displayed.

Explanation:

F-Droid is an alternative to Google Play. It says it is an "installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform".

Termux is a terminal emulator with a modified version of linux.

"Termux combines powerful terminal emulation with an extensive Linux package collection."

inxi is a command line system information script, built for console and IRC. It is also used for forum technical support, as a debugging tool, to quickly ascertain user system configuration and hardware.

*Note: You might be able to skip installing F-Droid and just install Termux from Google Play... try it.

I had the same issue and wanted to check my hardware because I suspected the hardware and software was spoofing the information shown by the built-in Android tools (Settings) and other apps like AIDA, CPU-Z, Device Info HW and other common apps. I was right (grrr 😖)

Termux also has the df and du commands which show the real disk space available (free) and disk space used.

df -h (disk free, human readable output)

du -hs (disk use, human readable output & summary)

The 2nd command example du has a couple of switches:

-h is used to show file sizes in human readable format just like df, i.e. KB, MB, GB

-s is to show a summary only. This is necessary to stop du from displaying the name and size of every file. Instead it displays only a summary, which is the size of all files - the summary of disk use. Try just du and see what you get.

du --help => Summarize device usage of the set of FILEs, recursively for directories.

df --help => The "disk free" command shows total/used/available disk space for each filesystem listed on the command line, or all currently mounted file systems.

Type inxi -h (then press ENTER) for extensive help on how to get the information you want. If the results scroll past one screen just use swipe up to scroll up, if you are in a Termux shell (the 'shell' is what you get when you run Termux). You can copy and paste from within Termux in the usual manner, and paste data into other apps on the device, including browsers. This will allow you to post information to forums, tech support, or customer service agents. You can also try addition information gleaning commands suggested by linux savvy tech support ppl. You can also paste into Termux from other apps - useful if you get a suggestion for a command to run in Termux.

There are a whole lot of other options to determine the 'real' hardware and software details of an Android device from within Termux, and other linux style terminals/terminal emulators. You can even install additional packages within Termux. For more info just search for Termux using your favourite browser and search engine (most ppl use Google as their search engine but there are better & safer options like DuckDuckGo or even Yahoo among others).

If you are at all familiar with linux, Termux has a package manager that is pseudo apt. The command is pkg and it has the usual options one might expect from apt like install, search, show, list-installed and uninstall and more, as well as the -y for 'yes to all' argument.

Here's the results from the inxi command on my Chinese tablet:

.../data/com.termux $ inxi
CPU: single core AArch64 (-UP-) speed/min/max: 871/286/1508 MHz Kernel: 3.18.79 aarch64 Up: 9h 37m Mem: 1.4/2.75 GiB (50.9%) Storage: 39.75 GiB/Total N/A Procs: 2 Shell: Bash inxi: 3.3.31
.../data/com.termux $

The actual output from inxi displays better than it is shown here, much more readable.

My device reports 1TB of storage, 16GB RAM and Android 13 via the built-in Settings / System / About.

Whereas it actually has 3GB RAM 25-30GB storage (depending on measuring methods/standards) and Android 8.1.0. which is mostly evident from the inxi output.

And I'm 100% certain I've been cheated.

*Note: I also used 'Root Checker' to check the version of Android. Install Root Checker from Google Play, launch it and click VERIFY ROOT. It will display a message telling you if the device is rooted or not, plus some other info including the actual OS and its version.

3
  • Be aware that Termux on Google Play Store is no longer supported: wiki.termux.com/wiki/Installation F-Droid should be preferred. Please update your answer. Commented Feb 14 at 7:19
  • Termux via F-Droid (big fan!) and inxi are definitely a good alternative! Also this can actually develop in a more robust scripted all around solution ...
    – Gruber
    Commented Feb 14 at 8:52
  • I'm not concerned about Termux not being supported by Google Play, but according to Morrison Chang it isn't. In this example it isn't an issue as I don't suggest installing Termux from Google Play, I suggest to install it from F-Droid. Sorry if I've done this wrong but I'm new and working from the tablet in question. Commented Feb 14 at 14:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .