Ich habe ein gebrauchtes Samsung Galaxy Core Prime , das von MetroPCS in den USA angeboten wird, zum Testen abgeholt . Das Gerät wird mit Android 5.1.1 betrieben. Testanforderungen sind ein 64-Bit-ARM-Prozessor, aber ich bin mir nicht sicher, ob ich die Anforderungen erfüllt habe.
Gemäß cat /proc/cpuinfo
(siehe unten) sehe ich Qualcomm Technologies, Inc MSM8916
. Das ist ein Cortex-A53 , also eine ARMv8a/64-Bit-Architektur. Aber ich sehe auch ARMv7 aufgelistet, was eine 32-Bit-Architektur ist.
Kann mir jemand erklären, warum ich widersprüchliche Ergebnisse sehe?
$ adb shell 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 : 0006
Serial : 000009f200000001
Processor : ARMv7 Processor rev 0 (v7l)
Einige weitere Tests zeigen Folgendes. Ich habe diese Prozedur Hunderte Male durchgeführt, daher weiß ich, dass die Ergebnisse ein ominöses Zeichen sind.
Ich vermute, es ist ein Cortex-A53/ARM-v8a-Prozessor, aber er ist im 32-Bit-Modus konfiguriert.
$ aarch64-linux-android-readelf -h ./cryptest.exe | grep -i 'class\|machine'
Class: ELF64
Machine: AArch64
$ aarch64-linux-android-readelf -h ./libcryptopp.so | grep -i 'class\|machine'
Class: ELF64
Machine: AArch64
[Push test program to /data/local/tmp, open a remote shell]
shell@cprimeltemtr:/ $ cd /data/local/tmp
shell@cprimeltemtr:/data/local/tmp $ LD_LIBRARY_PATH=./; ./cryptest.exe v
/system/bin/sh: ./cryptest.exe: not executable: 64-bit ELF file