您的设备内部出现了问题。请联系您的设备制造商了解详情。
1. 文件:frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java中判断Build.isBuildConsistent的值进行检查
15411 public void systemReady(final Runnable goingCallback, TimingsTraceLog traceLog) {
……
5601 if (!Build.isBuildConsistent()) {
15602 Slog.e(TAG, "Build fingerprint is not consistent, warning user");
15603 mUiHandler.obtainMessage(SHOW_FINGERPRINT_ERROR_UI_MSG).sendToTarget();
15604 }
……
- isBuildConsistent函数在frameworks/base/core/java/android/os/Build.java中其中IS_TREBLE_ENABLED是进行兼容性判断的关键判断,这个值来自于属性ro.treble.enabled。继续查看发现 int result = VintfObject.verifyWithoutAvb();为判断设备兼容性的关键函数。
962 /**
963 * True if Treble is enabled and required for this device.
964 *
965 * @hide
966 */
967 public static final boolean IS_TREBLE_ENABLED =
968 SystemProperties.getBoolean("ro.treble.enabled", false);
969
970 /**
971 * Verifies the current flash of the device is consistent with what
972 * was expected at build time.
973 *
974 * Treble devices will verify the Vendor Interface (VINTF). A device
975 * launched without Treble:
976 *
977 * 1) Checks that device fingerprint is defined and that it matches across
978 * various partitions.
979 * 2) Verifies radio and bootloader partitions are those expected in the build.
980 *
981 * @hide
982 */
983 public static boolean isBuildConsistent() {
984 // Don't care on eng builds. Incremental build may trigger false negative.
985 if (IS_ENG) return true;
986
987 if (IS_TREBLE_ENABLED) {
988 // If we can run this code, the device should already pass AVB.
989 // So, we don't need to check AVB here.
990 int result = VintfObject.verifyWithoutAvb();
991
992 if (result != 0) {
993 Slog.e(TAG, "Vendor interface is incompatible, error="
994 + String.valueOf(result));
995 }
996
997 return result