tomthecarrot / arcore-for-all

Google ARCore (dev preview 1) for "unsupported" Android devices
GNU General Public License v3.0
1.04k stars 145 forks source link

Device calibration unavailable OnePlus 3T #28

Open dudego opened 7 years ago

dudego commented 7 years ago

arcore installs successfully but on running sample it logs:

E/SupportedDevices: Device calibration unavailable.

QUALCOMM build : 853a1ff, I9c435c2712 Build Date : 01/10/17 OpenGL ES Shader Compiler Version: XE031.09.00.04 Local Branch : Remote Branch : Remote Branch : Reconstruct Branch :

SohnyBohny commented 7 years ago

On my 3T logcat says:

09-01 17:40:49.482: W/tango_camera_native_jni(13301): Camera system initilized.
09-01 17:40:49.482: E/tango_camera_native(13301): 2 is not a valid camera index.
09-01 17:40:49.482: E/tango_camera_native(13301): 3 is not a valid camera index.
09-01 17:40:49.489: I/tango_camera_native_jni(13301): Attaching texture_window 0xc9ec2008
09-01 17:40:49.642: D/tango-ndk-hal(13323): jint JNI_OnLoad(JavaVM*, void*)
09-01 17:40:49.651: D/tango-ndk-hal(13323): void Java_com_google_atap_tango_TangoVirtualHalService_initialize(JNIEnv*, jclass) 0x0
09-01 17:40:49.658: I/tango_camera_native_jni(13301): jint Java_com_google_tango_jni_TangoCameraNative_ConnectVhs(JNIEnv*, jobject, jobject, jobject)
09-01 17:40:49.658: I/tango_camera_native_jni(13301): Attaching tracking_window 0xc9ec6808
09-01 17:40:49.753: I/tango(13323): java_service_entrypoint.cc:216 Creating new g_tango.
09-01 17:40:49.775: W/tango(13323): helpers.cc:418 Defaulting to persistent calibration file.
09-01 17:40:49.775: W/tango(13323): helpers.cc:395 Property calibration_cad is not defined.
09-01 17:40:49.775: I/tango(13323): calibration_provider.cc:486 Instantiating calibration provider with sources:
09-01 17:40:49.775: I/tango(13323):     CAD: 
09-01 17:40:49.775: I/tango(13323):     Factory: 
09-01 17:40:49.775: I/tango(13323):     Online: /data/data/com.google.tango/files/config/online-calibration.xml
09-01 17:40:49.775: I/tango(13323):     ActiveFile: kOnlineCalibrationFile
09-01 17:40:49.775: I/tango(13323):     Hardcoded CAD model fallback: Enabled
09-01 17:40:49.775: E/tango(13323): device_provider.cc:336 Could not identify device type from build fingerprint 'OnePlus/OnePlus3/OnePlus3T:7.1.1/NMF26F/08081200:user/release-keys'.
09-01 17:40:49.775: E/tango(13323): helpers.cc:288 Hardcoded CAD model unavailable for device kUnknownDevice
09-01 17:40:49.776: W/tango(13323): calibration_provider.cc:379 Requested parsing of Online calibration, but failed to parse it and the following fallbacks: 
09-01 17:40:49.776: W/tango(13323): - Online calibration: File does not exist: /data/data/com.google.tango/files/config/online-calibration.xml.
09-01 17:40:49.776: W/tango(13323): - Factory calibration: File not set.
09-01 17:40:49.776: W/tango(13323): - CAD calibration: File not set.
09-01 17:40:49.776: W/tango(13323): - Hardcoded CAD model: Could not load hardcoded CAD model. It is only available when:
09-01 17:40:49.776: W/tango(13323):   - Explicitly setting the active file to kHardcodedCadModel.
09-01 17:40:49.776: W/tango(13323):   - On device, as a fallback when reading the CAD calibration file fails.
09-01 17:40:49.776: W/tango(13323): calibration_provider.cc:379 Requested parsing of CAD calibration, but failed to parse it and the following fallbacks: 
09-01 17:40:49.776: W/tango(13323): - CAD calibration: File not set.
09-01 17:40:49.776: W/tango(13323): - Hardcoded CAD model: Could not load hardcoded CAD model. It is only available when:
09-01 17:40:49.776: W/tango(13323):   - Explicitly setting the active file to kHardcodedCadModel.
09-01 17:40:49.776: W/tango(13323):   - On device, as a fallback when reading the CAD calibration file fails.
09-01 17:40:49.776: A/tango(13323): calibration_provider.cc:589 Check failed: parse_cad_error_code == LoadCalibrationXmlErrorCode::kSuccess 
09-01 17:40:49.862: A/DEBUG(13348): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-01 17:40:49.862: A/DEBUG(13348): Build fingerprint: 'OnePlus/OnePlus3/OnePlus3T:7.1.1/NMF26F/08081200:user/release-keys'
09-01 17:40:49.862: A/DEBUG(13348): Revision: '0'
09-01 17:40:49.862: A/DEBUG(13348): ABI: 'arm64'
09-01 17:40:49.863: A/DEBUG(13348): pid: 13323, tid: 13323, name: om.google.tango  >>> com.google.tango <<<
09-01 17:40:49.863: A/DEBUG(13348): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
09-01 17:40:49.869: A/DEBUG(13348): Abort message: 'calibration_provider.cc:589 Check failed: parse_cad_error_code == LoadCalibrationXmlErrorCode::kSuccess '
09-01 17:40:49.869: A/DEBUG(13348):     x0   0000000000000000  x1   000000000000340b  x2   0000000000000006  x3   0000000000000008
09-01 17:40:49.869: A/DEBUG(13348):     x4   0000430000000000  x5   0000000000808000  x6   0000007fb6124000  x7   0000000000000000
09-01 17:40:49.869: A/DEBUG(13348):     x8   0000000000000083  x9   ffffffffffffffdf  x10  0000000000000000  x11  0000000000000001
09-01 17:40:49.869: A/DEBUG(13348):     x12  ffffffffffffffff  x13  0000000000000000  x14  0000000000000000  x15  002e4817eb7061bb
09-01 17:40:49.869: A/DEBUG(13348):     x16  0000007fb2eb3ee0  x17  0000007fb2e5d984  x18  0000000000000000  x19  0000007fb61d8b40
09-01 17:40:49.869: A/DEBUG(13348):     x20  0000000000000006  x21  0000007fb61d8a98  x22  0000000000000002  x23  0000007fdf93cc58
09-01 17:40:49.869: A/DEBUG(13348):     x24  0000000000000068  x25  0000007fa727fa98  x26  0000007fa73fbd20  x27  0000007fa737b5a0
09-01 17:40:49.869: A/DEBUG(13348):     x28  0000007fa737b578  x29  0000007fdf93c630  x30  0000007fb2e5ae14
09-01 17:40:49.869: A/DEBUG(13348):     sp   0000007fdf93c610  pc   0000007fb2e5d98c  pstate 0000000060000000
09-01 17:40:49.878: A/DEBUG(13348): backtrace:
09-01 17:40:49.878: A/DEBUG(13348):     #00 pc 000000000006b98c  /system/lib64/libc.so (tgkill+8)
09-01 17:40:49.878: A/DEBUG(13348):     #01 pc 0000000000068e10  /system/lib64/libc.so (pthread_kill+64)
09-01 17:40:49.878: A/DEBUG(13348):     #02 pc 00000000000242e8  /system/lib64/libc.so (raise+24)
09-01 17:40:49.878: A/DEBUG(13348):     #03 pc 000000000001cd54  /system/lib64/libc.so (abort+52)
09-01 17:40:49.878: A/DEBUG(13348):     #04 pc 0000000000005a84  /system/lib64/liblog.so (__android_log_assert+232)
09-01 17:40:49.878: A/DEBUG(13348):     #05 pc 0000000000100718  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (_ZN13MessageLoggerD2Ev+4120)
09-01 17:40:49.878: A/DEBUG(13348):     #06 pc 0000000000c8433c  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so
09-01 17:40:49.878: A/DEBUG(13348):     #07 pc 0000000000c85be8  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so
09-01 17:40:49.878: A/DEBUG(13348):     #08 pc 0000000000129150  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (_ZN13tango_service12TangoContextC1ESt10shared_ptrINS_15JniTangoServiceEE+512)
09-01 17:40:49.878: A/DEBUG(13348):     #09 pc 000000000013c80c  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (_ZN12tango_binder7ServiceC2ESt10shared_ptrIN13tango_service15JniTangoServiceEE+228)
09-01 17:40:49.878: A/DEBUG(13348):     #10 pc 000000000013a238  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (Java_com_google_atap_tango_TangoServiceJNINative_CreateNativeService+972)
09-01 17:40:49.878: A/DEBUG(13348):     #11 pc 00000000007f5e98  /data/app/com.google.tango-1/oat/arm64/base.odex (offset 0x7a7000)
09-01 17:40:51.976: I/tango(13389): java_service_entrypoint.cc:216 Creating new g_tango.
09-01 17:40:51.984: W/tango(13389): helpers.cc:418 Defaulting to persistent calibration file.
09-01 17:40:51.984: W/tango(13389): helpers.cc:395 Property calibration_cad is not defined.
09-01 17:40:51.984: I/tango(13389): calibration_provider.cc:486 Instantiating calibration provider with sources:
09-01 17:40:51.984: I/tango(13389):     CAD: 
09-01 17:40:51.984: I/tango(13389):     Factory: 
09-01 17:40:51.984: I/tango(13389):     Online: /data/data/com.google.tango/files/config/online-calibration.xml
09-01 17:40:51.984: I/tango(13389):     ActiveFile: kOnlineCalibrationFile
09-01 17:40:51.984: I/tango(13389):     Hardcoded CAD model fallback: Enabled
09-01 17:40:51.984: E/tango(13389): device_provider.cc:336 Could not identify device type from build fingerprint 'OnePlus/OnePlus3/OnePlus3T:7.1.1/NMF26F/08081200:user/release-keys'.
09-01 17:40:51.984: E/tango(13389): helpers.cc:288 Hardcoded CAD model unavailable for device kUnknownDevice
09-01 17:40:51.984: W/tango(13389): calibration_provider.cc:379 Requested parsing of Online calibration, but failed to parse it and the following fallbacks: 
09-01 17:40:51.984: W/tango(13389): - Online calibration: File does not exist: /data/data/com.google.tango/files/config/online-calibration.xml.
09-01 17:40:51.984: W/tango(13389): - Factory calibration: File not set.
09-01 17:40:51.984: W/tango(13389): - CAD calibration: File not set.
09-01 17:40:51.984: W/tango(13389): - Hardcoded CAD model: Could not load hardcoded CAD model. It is only available when:
09-01 17:40:51.984: W/tango(13389):   - Explicitly setting the active file to kHardcodedCadModel.
09-01 17:40:51.984: W/tango(13389):   - On device, as a fallback when reading the CAD calibration file fails.
09-01 17:40:51.984: W/tango(13389): calibration_provider.cc:379 Requested parsing of CAD calibration, but failed to parse it and the following fallbacks: 
09-01 17:40:51.984: W/tango(13389): - CAD calibration: File not set.
09-01 17:40:51.984: W/tango(13389): - Hardcoded CAD model: Could not load hardcoded CAD model. It is only available when:
09-01 17:40:51.984: W/tango(13389):   - Explicitly setting the active file to kHardcodedCadModel.
09-01 17:40:51.984: W/tango(13389):   - On device, as a fallback when reading the CAD calibration file fails.
09-01 17:40:51.984: A/tango(13389): calibration_provider.cc:589 Check failed: parse_cad_error_code == LoadCalibrationXmlErrorCode::kSuccess 
09-01 17:40:52.051: A/DEBUG(13406): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-01 17:40:52.051: A/DEBUG(13406): Build fingerprint: 'OnePlus/OnePlus3/OnePlus3T:7.1.1/NMF26F/08081200:user/release-keys'
09-01 17:40:52.051: A/DEBUG(13406): Revision: '0'
09-01 17:40:52.051: A/DEBUG(13406): ABI: 'arm64'
09-01 17:40:52.052: A/DEBUG(13406): pid: 13389, tid: 13389, name: om.google.tango  >>> com.google.tango <<<
09-01 17:40:52.052: A/DEBUG(13406): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
09-01 17:40:52.054: A/DEBUG(13406): Abort message: 'calibration_provider.cc:589 Check failed: parse_cad_error_code == LoadCalibrationXmlErrorCode::kSuccess '
09-01 17:40:52.054: A/DEBUG(13406):     x0   0000000000000000  x1   000000000000344d  x2   0000000000000006  x3   0000000000000008
09-01 17:40:52.054: A/DEBUG(13406):     x4   0000000000000000  x5   0000000000808080  x6   0000007fb6124000  x7   0000000000000000
09-01 17:40:52.054: A/DEBUG(13406):     x8   0000000000000083  x9   ffffffffffffffdf  x10  0000000000000000  x11  0000000000000001
09-01 17:40:52.054: A/DEBUG(13406):     x12  ffffffffffffffff  x13  0000000000000000  x14  0000000000000000  x15  003ab5904bee0a8b
09-01 17:40:52.054: A/DEBUG(13406):     x16  0000007fb2eb3ee0  x17  0000007fb2e5d984  x18  0000000000000000  x19  0000007fb61d8b40
09-01 17:40:52.054: A/DEBUG(13406):     x20  0000000000000006  x21  0000007fb61d8a98  x22  0000000000000002  x23  0000007fdf93cc58
09-01 17:40:52.054: A/DEBUG(13406):     x24  0000000000000068  x25  0000007fa727fa98  x26  0000007fa73fc680  x27  0000007fa737bba0
09-01 17:40:52.054: A/DEBUG(13406):     x28  0000007fa737bb78  x29  0000007fdf93c630  x30  0000007fb2e5ae14
09-01 17:40:52.054: A/DEBUG(13406):     sp   0000007fdf93c610  pc   0000007fb2e5d98c  pstate 0000000060000000
09-01 17:40:52.059: A/DEBUG(13406): backtrace:
09-01 17:40:52.059: A/DEBUG(13406):     #00 pc 000000000006b98c  /system/lib64/libc.so (tgkill+8)
09-01 17:40:52.059: A/DEBUG(13406):     #01 pc 0000000000068e10  /system/lib64/libc.so (pthread_kill+64)
09-01 17:40:52.059: A/DEBUG(13406):     #02 pc 00000000000242e8  /system/lib64/libc.so (raise+24)
09-01 17:40:52.059: A/DEBUG(13406):     #03 pc 000000000001cd54  /system/lib64/libc.so (abort+52)
09-01 17:40:52.059: A/DEBUG(13406):     #04 pc 0000000000005a84  /system/lib64/liblog.so (__android_log_assert+232)
09-01 17:40:52.059: A/DEBUG(13406):     #05 pc 0000000000100718  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (_ZN13MessageLoggerD2Ev+4120)
09-01 17:40:52.059: A/DEBUG(13406):     #06 pc 0000000000c8433c  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so
09-01 17:40:52.059: A/DEBUG(13406):     #07 pc 0000000000c85be8  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so
09-01 17:40:52.059: A/DEBUG(13406):     #08 pc 0000000000129150  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (_ZN13tango_service12TangoContextC1ESt10shared_ptrINS_15JniTangoServiceEE+512)
09-01 17:40:52.059: A/DEBUG(13406):     #09 pc 000000000013c80c  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (_ZN12tango_binder7ServiceC2ESt10shared_ptrIN13tango_service15JniTangoServiceEE+228)
09-01 17:40:52.059: A/DEBUG(13406):     #10 pc 000000000013a238  /data/app/com.google.tango-1/lib/arm64/libtango_service_library.so (Java_com_google_atap_tango_TangoServiceJNINative_CreateNativeService+972)
09-01 17:40:52.059: A/DEBUG(13406):     #11 pc 00000000007f5e98  /data/app/com.google.tango-1/oat/arm64/base.odex (offset 0x7a7000)
09-01 17:40:52.791: A/tango(13301): jni_helper.cc:19 'vm' Must be non NULL
09-01 17:40:52.861: A/DEBUG(13415): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-01 17:40:52.861: A/DEBUG(13415): Build fingerprint: 'OnePlus/OnePlus3/OnePlus3T:7.1.1/NMF26F/08081200:user/release-keys'
09-01 17:40:52.861: A/DEBUG(13415): Revision: '0'
09-01 17:40:52.861: A/DEBUG(13415): ABI: 'arm'
09-01 17:40:52.861: A/DEBUG(13415): pid: 13301, tid: 13315, name: UnityMain  >>> com.paramsen.helloar <<<
09-01 17:40:52.861: A/DEBUG(13415): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
09-01 17:40:52.864: A/DEBUG(13415): Abort message: 'jni_helper.cc:19 'vm' Must be non NULL'
09-01 17:40:52.864: A/DEBUG(13415):     r0 00000000  r1 00003403  r2 00000006  r3 00000008
09-01 17:40:52.864: A/DEBUG(13415):     r4 e43ff978  r5 00000006  r6 e43ff920  r7 0000010c
09-01 17:40:52.864: A/DEBUG(13415):     r8 e43fdd18  r9 e43fdd14  sl 00000515  fp e43fe028
09-01 17:40:52.864: A/DEBUG(13415):     ip 00000002  sp e43fd898  lr e594b517  pc e594dd98  cpsr 200f0010
09-01 17:40:52.866: A/DEBUG(13415): backtrace:
09-01 17:40:52.867: A/DEBUG(13415):     #00 pc 00049d98  /system/lib/libc.so (tgkill+12)
09-01 17:40:52.867: A/DEBUG(13415):     #01 pc 00047513  /system/lib/libc.so (pthread_kill+34)
09-01 17:40:52.867: A/DEBUG(13415):     #02 pc 0001d765  /system/lib/libc.so (raise+10)
09-01 17:40:52.867: A/DEBUG(13415):     #03 pc 000192a1  /system/lib/libc.so (__libc_android_abort+34)
09-01 17:40:52.867: A/DEBUG(13415):     #04 pc 00017308  /system/lib/libc.so (abort+4)
09-01 17:40:52.867: A/DEBUG(13415):     #05 pc 00005855  /system/lib/liblog.so (__android_log_assert+112)
09-01 17:40:52.867: A/DEBUG(13415):     #06 pc 00009e69  /data/app/com.paramsen.helloar-1/lib/arm/libtango_client_api2.so
09-01 17:40:52.867: A/DEBUG(13415):     #07 pc 0001256d  /data/app/com.paramsen.helloar-1/lib/arm/libtango_client_api2.so
09-01 17:40:52.867: A/DEBUG(13415):     #08 pc 00009247  /data/app/com.paramsen.helloar-1/lib/arm/libtango_client_api2.so (TangoService_isSupported+26)
09-01 17:40:52.867: A/DEBUG(13415):     #09 pc 0000716c  <anonymous:d8aeb000>
tomthecarrot commented 7 years ago

Thanks for sharing your log! It is consistent with other crash logs, which is good. Isolating the issue. Please stay tuned.

tazzkiller commented 7 years ago

@tomthecarrot you think it's possible to force a specific build fingerprint like sailfish or marlin build to load the harcoded configuration ?

GearWalker commented 7 years ago

My opinion is, Google's packed camera setting with calibration profile (FOV,focal length, etc) using for calculating in AR. That's mean hacking need more than a mimic fingerprint.

dudego commented 7 years ago

Tried running sample.apk got same error as @SohnyBohny. On Android sample, getting no crash but it shows black screen with no viewfinder. I'm on OxygenOS 4.1.7

Log:

09-01 22:17:04.601 14270-14270/? I/art: Late-enabling -Xcheck:jni
09-01 22:17:04.707 14270-14270/com.google.ar.core.examples.java.helloar W/System: ClassLoader referenced unknown path: /data/app/com.google.ar.core.examples.java.helloar-2/lib/arm64
09-01 22:17:04.716 14270-14270/com.google.ar.core.examples.java.helloar I/InstantRun: starting instant run server: is main process
09-01 22:17:04.717 14270-14270/com.google.ar.core.examples.java.helloar V/InstantRun: Starting server socket listening for package com.google.ar.core.examples.java.helloar on android.net.LocalSocketAddress@7f47ae8
09-01 22:17:04.717 14270-14270/com.google.ar.core.examples.java.helloar V/InstantRun: Started server for package com.google.ar.core.examples.java.helloar
09-01 22:17:04.764 14270-14270/com.google.ar.core.examples.java.helloar W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
09-01 22:17:04.808 14270-14270/com.google.ar.core.examples.java.helloar E/SupportedDevices: Device calibration unavailable. Just kidding! ;)
09-01 22:17:04.826 14270-14270/com.google.ar.core.examples.java.helloar E/SupportedDevices: Device calibration unavailable. Just kidding! ;)
09-01 22:17:04.830 14270-14270/com.google.ar.core.examples.java.helloar I/TangoClientLibLoader: Pure Java path, not loading libtango_client_api.so at all.
09-01 22:17:04.835 14270-14270/com.google.ar.core.examples.java.helloar D/ApplicationLoaders: ignored Vulkan layer search path /data/app/com.google.tango-1/lib/arm64:/system/fake-libs64:/data/app/com.google.tango-1/base.apk!/lib/arm64-v8a for namespace 0x7f81b630f0
09-01 22:17:04.842 14270-14270/com.google.ar.core.examples.java.helloar I/ndk_camera: Starting native camera system initialization.
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar D/ndk_camera: Camera 0 has 88 metadata tags
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar E/ACameraMetadata: getConstEntry: cannot find metadata tag 1310721
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar W/ndk_camera: Failed to get metadata tag 1310721 for camera 0 with error code -10004
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar E/ACameraMetadata: getConstEntry: cannot find metadata tag 1638401
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar W/ndk_camera: Failed to get metadata tag 1638401 for camera 0 with error code -10004
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar D/ndk_camera: Camera 1 has 87 metadata tags
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar E/ACameraMetadata: getConstEntry: cannot find metadata tag 1310721
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar W/ndk_camera: Failed to get metadata tag 1310721 for camera 1 with error code -10004
09-01 22:17:04.843 14270-14270/com.google.ar.core.examples.java.helloar E/ACameraMetadata: getConstEntry: cannot find metadata tag 1638401
09-01 22:17:04.844 14270-14270/com.google.ar.core.examples.java.helloar W/ndk_camera: Failed to get metadata tag 1638401 for camera 1 with error code -10004
09-01 22:17:04.844 14270-14270/com.google.ar.core.examples.java.helloar I/ndk_camera: Camera system initialized successfully with 2 cameras.
09-01 22:17:04.844 14270-14270/com.google.ar.core.examples.java.helloar W/tango_camera_native_jni: Camera system initilized.
09-01 22:17:04.844 14270-14270/com.google.ar.core.examples.java.helloar E/tango_camera_native: 2 is not a valid camera index.
09-01 22:17:04.844 14270-14270/com.google.ar.core.examples.java.helloar E/tango_camera_native: 3 is not a valid camera index.
09-01 22:17:04.848 14270-14270/com.google.ar.core.examples.java.helloar I/tango_camera_native_jni: Attaching texture_window 0x7f83254e10
09-01 22:17:04.848 14270-14270/com.google.ar.core.examples.java.helloar D/TangoVhs: about to bind as vhs
09-01 22:17:04.861 14270-14270/com.google.ar.core.examples.java.helloar D/TangoVhs: finished bind as vhs
09-01 22:17:04.864 14270-14302/com.google.ar.core.examples.java.helloar D/AppTracker: App Event: start
09-01 22:17:04.906 14270-14303/com.google.ar.core.examples.java.helloar I/Adreno: QUALCOMM build                   : 853a1ff, I9c435c2712
                                                                                  Build Date                       : 01/10/17
                                                                                  OpenGL ES Shader Compiler Version: XE031.09.00.04
                                                                                  Local Branch                     : 
                                                                                  Remote Branch                    : 
                                                                                  Remote Branch                    : 
                                                                                  Reconstruct Branch               : 
09-01 22:17:04.912 14270-14303/com.google.ar.core.examples.java.helloar I/OpenGLRenderer: Initialized EGL, version 1.4
09-01 22:17:04.912 14270-14303/com.google.ar.core.examples.java.helloar D/OpenGLRenderer: Swap behavior 1
09-01 22:17:05.269 14270-14270/com.google.ar.core.examples.java.helloar D/TangoVhs: connected
09-01 22:17:05.270 14270-14310/com.google.ar.core.examples.java.helloar I/TangoCameraNative: Tango VHS Ready
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/System.err: android.os.DeadObjectException
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/System.err:     at android.os.BinderProxy.transactNative(Native Method)
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/System.err:     at android.os.BinderProxy.transact(Binder.java:651)
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/System.err:     at com.google.atap.tangoservice.ITangoVhs$Stub$Proxy.getTrackingSurface(ITangoVhs.java:111)
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/System.err:     at com.google.atap.tangoservice.TangoVhs.getTrackingSurface(TangoVhs.java:81)
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/System.err:     at com.google.tango.jni.TangoCameraNative$2.run(TangoCameraNative.java:88)
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/System.err:     at java.lang.Thread.run(Thread.java:761)
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar I/tango_camera_native_jni: jint Java_com_google_tango_jni_TangoCameraNative_ConnectVhs(JNIEnv*, jobject, jobject, jobject)
09-01 22:17:05.432 14270-14310/com.google.ar.core.examples.java.helloar W/tango_camera_native_jni: tracking_surface == nullptr! Could break AR usecases
09-01 22:17:07.847 14270-14275/com.google.ar.core.examples.java.helloar I/art: Do partial code cache collection, code=29KB, data=29KB
09-01 22:17:07.847 14270-14275/com.google.ar.core.examples.java.helloar I/art: After code cache collection, code=25KB, data=26KB
09-01 22:17:07.847 14270-14275/com.google.ar.core.examples.java.helloar I/art: Increasing code cache capacity to 128KB

device-2017-09-01-221738

tomthecarrot commented 7 years ago

@tazzkiller Changing the build fingerprint requires modifying build.prop, which requires root access. It looks like the retrieval of Build.FINGERPRINT is done in the shared library, which we cannot reasonably decompile. However, from the logs we can see that it is looking for a default calibration file at a certain path. The file just doesn't exist: File does not exist: /data/data/com.google.tango/files/config/online-calibration.xml.

Has anyone here seen this file before? We might be able to transfer it, or at least analyze its format, which is unknown to me since Tango calibration happens in the shared library.

tomthecarrot commented 7 years ago

@GearWalker I agree that this will require more than a fingerprint bypass to run well; Google has packed camera information into each device calibration file. However, it should still run on other devices, albeit with inferior tracking. Should be able to fix that eventually with other calibration files.

vespino75 commented 7 years ago

This is the calibration of my lenovo phab 2 pro.

If you have some times... Help us to use arcore.

I hope it can be useful for the other devices:

  <camera>
    <camera_model type="ocvpinhole_fu_fv_u0_v0_k1_k2_p1_p2_k3" index="9">
      <height>172</height>
      <width>224</width>
      <params> [217.703;  217.703;  112.515;  85.56399999999999;  -0.11089;  -1.58741;  -0.00209361;  -0.000538251;  3.2844] </params>
    </camera_model>
  </camera>
  <camera>
    <camera_model type="calibu_fu_fv_u0_v0_k1_k2_k3" index="1">
      <height>1080</height>
      <width>1920</width>
      <params> [1731.206360516446;  1732.677289488748;  943.1348595963085;  537.6571431787531;  0.1094496622673276;  -0.4108265365645714;  0.475447218116997] </params>
    </camera_model>
  </camera>
  <camera>
    <camera_model type="calibu_fu_fv_u0_v0_w" index="0">
      <height>480</height>
      <width>640</width>
      <params> [258.0279723280229;  257.9325894945989;  319.2867258258189;  247.9366888098331;  0.9237464165790711] </params>
    </camera_model>
  </camera>
  <intrinsic_imu_calibration name="" imu_id="100" type="linear_imu_sg_mg_sa_ma_gqa">
    <b_w_b_a> [0.003279189508569884;  -0.003641411555781314;  -0.01420767144270043;  -0.05450540812723018;  0.09276885007381314;  -0.1031923326113218] </b_w_b_a>
    <crossterms> [1.025964032588029, 6.898315558285549e-05, -0.002394102729788997, 0.99993025810868, -0.001333883474316033, 0.01173455042111752;  0, 0.9959605953670061, 0.001331435953266336, 0.001352846547543467, 0.999997791724473, -0.001608214039356206;  0, 0, 1.003200790205349, -0.01173237933786674, 0.001623976925491637, 0.9999298545268153;  0, 0, 0, 0.9991234998599263, 0.001075941239544266, 0.01092913042072655;  0, 0, 0, 0, 0.9983856505746271, 0.0008273949261931844;  0, 0, 0, 0, 0, 1.009554033427301] </crossterms>
    <gyro_noise_sigma>5.3088443999999998e-05</gyro_noise_sigma>
    <gyro_bias_sigma>0.00014125375</gyro_bias_sigma>
    <accel_noise_sigma>0.001883649</accel_noise_sigma>
    <accel_bias_sigma>0.012589253999999999</accel_bias_sigma>
  </intrinsic_imu_calibration>
  <extrinsic_calibration frame_A_id="100" frame_B_id="3">
    <A_T_B> [0.9999844756254934, -0.0005021532115802354, -0.005549445932629149, 0.03658832169344564;  -0.0004985226887430327, -0.9999996608465904, 0.0006555774805837913, -0.006753995010965239;  -0.005549773250852955, -0.0006528007784460961, -0.9999843868121181, -0.001898144060175344] </A_T_B>
  </extrinsic_calibration>
  <extrinsic_calibration frame_A_id="100" frame_B_id="2">
    <A_T_B> [0.9999844756254934, -0.0005021532115802354, -0.005549445932629149, 0.03658832169344564;  -0.0004985226887430327, -0.9999996608465904, 0.0006555774805837913, -0.006753995010965239;  -0.005549773250852955, -0.0006528007784460961, -0.9999843868121181, -0.001898144060175344] </A_T_B>
  </extrinsic_calibration>
  <extrinsic_calibration frame_A_id="100" frame_B_id="0">
    <A_T_B> [0.9999839923437485, -0.003916609860094113, 0.004083530759244597, -0.002682900280152626;  -0.003922749405736185, -0.9999911861252394, 0.001496565714114598, -0.00710568960695596;  0.004077633303483724, -0.001512560425464221, -0.9999905424890785, -0.004690524465063749] </A_T_B>
  </extrinsic_calibration>
  <extrinsic_calibration frame_A_id="100" frame_B_id="1">
    <A_T_B> [-0.999969739495792, 0.0007815952820795802, -0.00774010345748462, 0.04715388712151403;  0.0007814836662144472, 0.9999996944894312, 1.744487913182522e-05, -0.006689607031597;  0.007740114727636435, 1.139558681415265e-05, -0.9999700447984148, -0.0053648135783008] </A_T_B>
  </extrinsic_calibration>
  <extrinsic_calibration frame_A_id="100" frame_B_id="9">
    <A_T_B> [0.9999844756254934, -0.0005021532115802354, -0.005549445932629149, 0.03658832169344564;  -0.0004985226887430327, -0.9999996608465904, 0.0006555774805837913, -0.006753995010965239;  -0.005549773250852955, -0.0006528007784460961, -0.9999843868121181, -0.001898144060175344] </A_T_B>
  </extrinsic_calibration>
</rig>
tomthecarrot commented 7 years ago

Thank you very much @vespino75! I'll try it out.

tomthecarrot commented 7 years ago

Please try this ARCore Service data directory mod and install it using: adb restore backup-mod.ab

This modification to the data directory seems to make the calibration XML load just fine from the logcat messages I am seeing. It is based on the calibration XML that @vespino75 posted (thanks btw!)

Please also make sure you have a recent backup of your device. Even though it only contains a backup for Tango Service + it didn't clear data on my phone + it shouldn't on yours, there is a chance of unexpected results when restoring.

oscarbg commented 7 years ago

Have Xiaomi Mi5 with latest MIUI 8 Android 7.0 stock and restoring your backup-mod.ab and installing arcore modified.apk doesn't work.. still crashes similar to this post and says: "File does not exist: /data/data/com.google.tango/files/config/online-calibration.xml" some comments: 1) using android-backup-extractor-20170828-bin and unpacking your mod backup using "abe.jar unpack" I see under config folder you provide online-configuration.xml and configuration.xml not "online-calibration.xml" as the error says.. is that ok?

2) maybe my backup restore doesn't work for me correctly because after making a backup of com.google.tango via "adb backup -f myFiles.ab com.google.tango" after restoring your backup and examining it (android-backup-extractor) I can't find online-configuration.xml and configuration.xml files on the config folder as you backup contains..

so can a restore operation fail silently? any ideas? thanks..

oscarbg commented 7 years ago

also on this article "https://elandroidelibre.elespanol.com/2017/08/probamos-arcore-la-realidad-aumentada-mas-sencilla-android.html" a java arcore apk is provided https://www.dropbox.com/s/u0j5xk5utzbyxyn/java-arcore-hello.apk?dl=0 and fails with device not supported also similarly the webaroncore https://github.com/google-ar/WebARonARCore/blob/webarcore_57.0.2987.5/apk/WebARonARCore.apk can you check both app apks work with phones your mod works? thanks..

tomthecarrot commented 7 years ago

@oscarbg Sorry about that.. Yes you are correct, the XML file should be named "calibration" and not "configuration". I'll correct that on my end also.

It's possible that the restore itself failed or the directory was overwritten after the restore. Or maybe there is a necessary file manifest that doesn't contain the newly-added files?

nkkollaw commented 7 years ago

Hi,

I was trying to make ARCore work on a Moto G5 Plus, but it's crashing when I try to open sample. I was able to install the modified SDK, though.

What's the best way to submit a diagnostic log?

feng612266 commented 7 years ago

09-04 10:48:26.177 9051-9051/com.google.ar.core.examples.java.helloar E/SupportedDevices: Device calibration unavailable. 09-04 10:48:26.232 9051-9131/com.google.ar.core.examples.java.helloar I/Adreno: QUALCOMM build : 0a3bdfc, Ifb508eebcd Build Date : 08/13/16 OpenGL ES Shader Compiler Version: XE031.09.00.03 Local Branch : Remote Branch : Remote Branch : Reconstruct Branch : 09-04 10:48:26.237 9051-9131/com.google.ar.core.examples.java.helloar I/OpenGLRenderer: Initialized EGL, version 1.4 09-04 10:48:26.270 9051-9131/com.google.ar.core.examples.java.helloar V/RenderScript: 0x7f68ac4000 Launching thread(s), CPUs 4

feng612266 commented 7 years ago

I can't install “modified ARCore Service APK”,analysis this installation package APK failed

tomthecarrot commented 7 years ago

@feng612266 please first uninstall the existing one via Settings > Apps or adb uninstall com.google.tango

tomthecarrot commented 7 years ago

@nkkollaw The best way to submit a diagnostic log is to open a new issue on this repo with your device type, OS, and logcat output of the error. Thanks!

haolange commented 7 years ago

S8-SM-G9500,Still open, stop running directly.

digableinc commented 6 years ago

Samsung Galaxy S7 Edge SM-G935A Nougat 7.0 doesn't work. Everything installed perfectly fine, tango stops working, unity logo, app closes.

Asus Nexus 7 doesn't work Nougat 7.1.2 (it was worth a shot!) Everything installs perfectly fine, tango stops working, unity logo, app closes.

PhanTask commented 6 years ago

In fact, modifying build.prop to disguise your phone (such as OnePlus3T) as "supported devices" such as Pixel XL works. You can try it.

tomthecarrot commented 6 years ago

@PhanTask It seems that ARCore is loading a specific calibration file for each supported device, while unsupported devices do not contain a calibration file. If we could force ARCore to use a Pixel calibration file for every device, it wouldn't be perfect, but at least devs with other devices could start trying it out.

saaguirre commented 6 years ago

Hi all,

Just found out about this project but i think i have one pointer.

After extracting the original arcore-preview.apk, i did a grep for "sailfish" or "marlin" strings, and found that some native libraries matched:

$ grep -r -i sailfish ./
Binary file ./classes.dex matches
Binary file ./lib/arm64-v8a/libtango_service_library.so matches
Binary file ./lib/arm64-v8a/libcamera_intrinsic_util.so matches
Binary file ./lib/arm64-v8a/libtango_hal.so matches
Binary file ./lib/arm64-v8a/libexternal_lift_optimized_cpu.so matches

So, i decided to try the "strings" commandline tool in linux, and dumped the "libcamera_intrinsic_util.so" this way:

$ strings lib/arm64-v8a/libcamera_intrinsic_util.so > calibs.txt

And found a section with what seems to be calibration files for sailfish (Pixel) and marlin (Pixel XL):

Pixel

<!-- This calibration file was created by finding an average of the factory
         calibration from 15 different sailfish devices -->
<rig>
    <device_id>0</device_id>
    <camera>
        <camera_model type="calibu_fu_fv_u0_v0_k1_k2_k3" index="3">
            <rolling_shutter_readout_time>0.0326218</rolling_shutter_readout_time>
            <rolling_shutter_direction>vertical</rolling_shutter_direction>
            <height>1080</height>
            <width>1920</width>
            <params> [1438.074;  1437.387;  962.7;  541.68;  0.02346390059751408;  -0.07105310253878637;  0.1032442584871399] </params>
        </camera_model>
    </camera>
    <camera>
        <camera_model type="calibu_fu_fv_u0_v0_k1_k2_k3" index="1">
            <rolling_shutter_readout_time>0.0326218</rolling_shutter_readout_time>
            <rolling_shutter_direction>vertical</rolling_shutter_direction>
            <height>1080</height>
            <width>1920</width>
            <params> [1438.074;  1437.387;  962.7;  541.68;  0.02346390059751408;  -0.07105310253878637;  0.1032442584871399] </params>
        </camera_model>
    </camera>
    <camera>
        <camera_model type="calibu_fu_fv_u0_v0_k1_k2_k3" index="0">
            <rolling_shutter_readout_time>0.0326218</rolling_shutter_readout_time>
            <rolling_shutter_direction>vertical</rolling_shutter_direction>
            <height>480</height>
            <width>640</width>
            <params> [479.3587929491562;  479.1290793034052;  320.9121423763001;  240.5622376910913;  0.02346390059751408;  -0.07105310253878637;  0.1032442584871399] </params>
        </camera_model>
    </camera>
    <intrinsic_imu_calibration name="" imu_id="100" type="linear_imu_sg_mg_sa_ma_gqa">
        <b_w_b_a> [4.055342447275729e-05;  0.001936147886559007;  0.0002635790412183244;  -0.5505037927266886;  0.08210154466632563;  -0.2914230575306716] </b_w_b_a>
        <intrinsics> [1.014235200012831;  0.9987125199130248;  0.9994260945204136;  -4.396568890276594e-06;  8.179045062126865e-05;  -0.002441386030384373;  1.003541184743259;  0.9975126271712497;  1.015355583656942;  0.0006687720528010025;  -0.009757701727792454;  0.0005066586840230228;  0.0008979918987595646;  0.004493849179807071;  0.001422816616943145;  0.9999884871952144] </intrinsics>
        <gyro_noise_sigma>0.00053088444</gyro_noise_sigma>
        <gyro_bias_sigma>0.00014125375</gyro_bias_sigma>
        <accel_noise_sigma>0.0048836490000000003</accel_noise_sigma>
        <accel_bias_sigma>0.012589253999999999</accel_bias_sigma>
    </intrinsic_imu_calibration>
    <extrinsic_calibration name="Device_T_OpenGl"  frame_A_id="40" frame_B_id="42">
        <A_T_B> [0, 1, 0, 0;  -1, 0, 0, 0;  0, 0, 1, 0] </A_T_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_Device" frame_A_id="100" frame_B_id="40">
        <A_T_B> [0, -1, 0, 0;  1, 0, 0, 0;  0, 0, 1, 0] </A_T_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_3" frame_A_id="100" frame_B_id="3">
        <A_q_B> [-0.9999642045966601;  0.001693865408266952;  -0.004382474491291886;  0.007036637171317588] </A_q_B>
        <A_p_B> [-0.00888318714353073;  0.005325271486780649;  -0.005029891072710525] </A_p_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_2" frame_A_id="100" frame_B_id="2">
        <A_q_B> [-0.9999642045966601;  0.001693865408266952;  -0.004382474491291886;  0.007036637171317588] </A_q_B>
        <A_p_B> [-0.00888318714353073;  0.005325271486780649;  -0.005029891072710525] </A_p_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_Narrow" frame_A_id="100" frame_B_id="1">
        <A_q_B> [-0.9999642045966601;  0.001693865408266952;  -0.004382474491291886;  0.007036637171317588] </A_q_B>
        <A_p_B> [-0.00888318714353073;  0.005325271486780649;  -0.005029891072710525] </A_p_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_MotionTracking" frame_A_id="100" frame_B_id="0">
        <A_q_B> [-0.9999642045966601;  0.001693865408266952;  -0.004382474491291886;  0.007036637171317588] </A_q_B>
        <A_p_B> [-0.00888318714353073;  0.005325271486780649;  -0.005029891072710525] </A_p_B>
    </extrinsic_calibration>
</rig>

Pixel XL

<!-- This calibration file was created by fidning an average of the factory
    calibration for 12 different marlin devices -->
<rig>
    <device_id>0</device_id>
    <camera>
        <camera_model name="" index="3" type="calibu_fu_fv_u0_v0_k1_k2_k3">
            <width>320</width>
            <height>180</height>
            <params> [260.215;  260.277;  157.511;  86.24160000000001;  0.23834;  -0.688656;  0.664354] </params>
        </camera_model>
        <pose />
    </camera>
    <camera>
        <camera_model name="" index="2" type="calibu_fu_fv_u0_v0_k1_k2_k3">
            <width>1920</width>
            <height>1080</height>
            <params> [1436.454;  1436.235;   961.194;    544.107;  0.0226009; -0.0657141;  0.0971462] </params>
        </camera_model>
        <pose />
    </camera>
    <camera>
        <camera_model name="Narrow" index="1" type="calibu_fu_fv_u0_v0_k1_k2_k3">
            <width>1920</width>
            <height>1080</height>
            <params> [1436.454;  1436.235;   961.194;    544.107;  0.0226009; -0.0657141;  0.0971462] </params>
        </camera_model>
        <pose />
    </camera>
    <camera>
        <camera_model name="MotionTracking" index="0" type="calibu_fu_fv_u0_v0_k1_k2_k3">
            <rolling_shutter_readout_time>0.032</rolling_shutter_readout_time>
            <rolling_shutter_direction>vertical</rolling_shutter_direction>
            <width>640</width>
            <height>480</height>
            <params> [478.818;    478.745;    320.398;    241.369;  0.0226009; -0.0657141;  0.0971462] </params>
        </camera_model>
        <pose />
    </camera>
    <intrinsic_imu_calibration name="" imu_id="100" type="linear_imu_sg_mg_sa_ma_gqa">
      <b_w_b_a> [-3.07369782e-04;   4.28678044e-04;   9.12135974e-05;  -1.85969238e-02; 2.03411118e-01;   5.32338456e-02] </b_w_b_a>
      <intrinsics> [1.010190509929088; 0.99952874560230054; 0.99875073981115248; 0.00020295094237530545; -0.0010146324225753722; -0.0015288737491827727; 1.0037397346218304; 0.9998363203309959; 1.0086648122514161; -2.7183776773623861e-05; -0.011104403267733234; 0.0017284620688527564; 9.30533440e-04;   4.04378542e-03;  -2.00236441e-03;   9.99989386e-01] </intrinsics>
        <gyro_noise_sigma>0.00053088400000000002</gyro_noise_sigma>
        <gyro_bias_sigma>0.000141254</gyro_bias_sigma>
        <accel_noise_sigma>0.0048836499999999998</accel_noise_sigma>
        <accel_bias_sigma>0.012589299999999999</accel_bias_sigma>
    </intrinsic_imu_calibration>
    <extrinsic_calibration name="Device_T_OpenGl" index="0" frame_A_id="40" frame_B_id="42">
        <A_T_B> [0, 1, 0, 0;  -1, 0, 0, 0;  0, 0, 1, 0] </A_T_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_Device" index="0" frame_A_id="100" frame_B_id="40">
        <A_T_B> [0, -1, 0, 0;  1, 0, 0, 0;  0, 0, 1, 0] </A_T_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_3" index="0" frame_A_id="100" frame_B_id="3">
      <A_q_B> [-0.99996425050397042; 0.00011372; -0.00485282; 0.00692351] </A_q_B>
      <A_p_B> [-0.008424721099186037;  0.007710053076859457;  -0.006284916910266555] </A_p_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_2" index="0" frame_A_id="100" frame_B_id="2">
      <A_q_B> [-0.99996425050397042; 0.00011372; -0.00485282; 0.00692351] </A_q_B>
      <A_p_B> [-0.008424721099186037;  0.007710053076859457;  -0.006284916910266555] </A_p_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_Narrow" index="0" frame_A_id="100" frame_B_id="1">
      <A_q_B> [-0.99996425050397042; 0.00011372; -0.00485282; 0.00692351] </A_q_B>
      <A_p_B> [-0.008424721099186037;  0.007710053076859457;  -0.006284916910266555] </A_p_B>
    </extrinsic_calibration>
    <extrinsic_calibration name="Imu_T_MotionTracking" index="0" frame_A_id="100" frame_B_id="0">
      <A_q_B> [-0.99996425050397042; 0.00011372; -0.00485282; 0.00692351] </A_q_B>
      <A_p_B> [-0.008424721099186037;  0.007710053076859457;  -0.006284916910266555] </A_p_B>
    </extrinsic_calibration>
</rig>

So, maybe you can give this a try, instead of the Phab2pro calibration?

I haven't tried it myself, but just getting familiar with the experiments you tried. Great work btw. Hope this helps.

Regards, Sergio

tomthecarrot commented 6 years ago

That's fantastic, @saaguirre! Thank you for your detailed research. Your information on the calibration files brings us a step closer to solving this challenge.

Rysle commented 6 years ago

@tomthecarrot Have you tried add a "Service/BroadcastReceiver" into the apk which would write calibration contents into the file "/files/config/online-calibration.xml"? Then we just send a "adb am start" command to trigger and won't have to restore the file by "adb restore". We may also be able to make it run once when the device is rebooted.

Rysle commented 6 years ago

I've resigned the arcore-preview-modified.apk with my debug keystore, and written another app with the same shareId to write "calibration.xml" into "/data/data/com.google.tango/files/config/online-calibration.xml".

It seems I've passed the online calibration file check, but failed at CAD calibration check. Can anyone provide a CAD calibration? I don't know where to find it yet.

Here's the log:

10-30 18:13:25.347 21015-21058/? I/tango: calibration_provider.cc:486 Instantiating calibration provider with sources: CAD: Factory: Online: /data/data/com.google.tango/files/config/online-calibration.xml ActiveFile: kOnlineCalibrationFile Hardcoded CAD model fallback: Enabled 10-30 18:13:25.353 21015-21058/? E/tango: device_provider.cc:336 Could not identify device type from build fingerprint 'google/bullhead/bullhead:7.1.1/NMF26F/3425388:user/release-keys'. 10-30 18:13:25.353 21015-21058/? E/tango: helpers.cc:288 Hardcoded CAD model unavailable for device kUnknownDevice 10-30 18:13:25.361 21015-21015/? A/tango: calibration_provider.cc:589 Check failed: parse_cad_error_code == LoadCalibrationXmlErrorCode::kSuccess

                                      --------- beginning of crash

10-30 18:13:25.362 21015-21015/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 21015 (om.google.tango) 10-30 18:13:25.362 21015-21058/? I/tango: calibration_provider.cc:360 Successfully parsed requested Online calibration: /data/data/com.google.tango/files/config/online-calibration.xml. 10-30 18:13:25.362 21015-21058/? W/tango: calibration_provider.cc:379 Requested parsing of CAD calibration, but failed to parse it and the following fallbacks:

raghav-alevoor commented 6 years ago

@tomthecarrot Setting the build property ro.config.calibration_cad to point to a calibration file seems to fix the issue. I have a rooted device, after adding the below property to build.prop stopped the crash problem for me "ro.config.calibration_cad=/system/etc/calibration_cad.xml" EDIT: calibration_cad.xml file is obtained by following @saaguirre suggestions.

Rysle commented 6 years ago

Hi @raghav-alevoor, could you send me a copy of "calibration_cad.xml"?Or you can paste it here in case others may need it.

raghav-alevoor commented 6 years ago

@Rysle I'm using the xml file for "Pixel XL" as posted by @saaguirre in this thread. It seems ARCore looks for "ro.config.calibration_cad" system property to load the calibration file for unknown devices. The system property should point to the xml file location

tazzkiller commented 6 years ago

Hy,

If you want i have made a module for Magisk to enable ArCore to all devices. After installation your device is recognize to a Pixel XL and the calibration file is auto mounted to the right folder on system.

you can download the zip here : https://drive.google.com/open?id=13yhaX7o5hk76Goz2GAnfXpn-ycwb8GuY

PS : Of course official apk service by google work with this module.

tomthecarrot commented 6 years ago

Hi everyone, sorry for the delay in responses; I have been working on college applications :)

@Rysle I like your solution of a Service started by a received Broadcast, as it would also run on non-rooted devices. Does loading the calibration XML make ARCore functional on your device?

@raghav-alevoor I'm glad it's stable with the build.prop modification. Is ARCore functioning normally, i.e. is it detecting surfaces and tracking points on your device?

raghav-alevoor commented 6 years ago

@tomthecarrot With the "Pixel XL" configuration file, image is inverted on my device (it's a custom device not OnePlus 3T). The sample app can detect surfaces and track point, due to the autofocus camera on my device it is not very reliable. I'm tinkering with parameters. With the below config file, the camera image orientation is ok. No noticable change in surface detection and motion tracking `

0 1080 1920 [1436.454; 1436.235; 961.194; 544.107; 0.0226009; -0.0657141; 0.0971462] 0.032 vertical 1080 1920 [478.818; 478.745; 320.398; 241.369; 0.0226009; -0.0657141; 0.0971462] [0.0; 0.0; 0.0; 0.0; 0.0; 0.0] [1, 0, 0, 0, 0, 0; 0, 1, 0, 0, 0, 0; 0, 0, 1, 0, 0, 0; 0, 0, 0, 1, 0, 0; 0, 0, 0, 0, 1, 0; 0, 0, 0, 0, 0, 1] 5.3088444e-5 1.4125375e-4 0.001883649 1.2589254e-2 [0, 1, 0, 0; -1, 0, 0, 0; 0, 0, 1, 0] [0.0, 1.0, 0.0, 0.001068; 1, 0.0, 0.0, 0.06139; 0.0, 0.0, -1.0, 0.0029] [0.0, -0.974566, -0.2241, 0.0; 1.0, 0.0, 0.0, 0.0; 0.0, -0.2241, 0.974566, 0.0] [0, 1, 0, 0; -1, 0, 0, 0; 0, 0, 1, 0] [0, 1, 0, 0; -1, 0, 0, 0; 0, 0, 1, 0] [0, 1, 0, 0; -1, 0, 0, 0; 0, 0, 1, 0] [1.0, 0.0, 0.0, 0.01125; 0.0, 1.0, 0.0, -0.04269; 0.0, 0.0, 1.0, 0.01775] `
irfan-r commented 6 years ago

Official ARCore service (tango core) works on Xiaomi Red Mi Note4 with Pixel Experience 8.1 AOSP custom ROM after installing magisk module that recognises device as Pixel XL, created by @tazzkiller posted in this thread. ARCore apps available on playstore and apps developed with unity based on ARCore preview (Tango core) works perfectly. ARCore preview 2 based apps are not working.... Why?

tomthecarrot commented 6 years ago

@irfan-r It's possible that Google made a change in the ARCore library that broke this modification on some devices. Feel free to research and try additional modifications to arcore-for-all to see if those will work on your device.