Mobile Development 16 min read

Google ARCore: Principles, Setup, Device Compatibility Hacks, and Comparison with ARKit & Project Tango

Google’s ARCore SDK offers motion tracking, surface detection, and light estimation for Android, supports a limited set of phones but can be extended to unsupported devices via a reverse‑engineered class hack, and competes with Apple’s ARKit and Google’s earlier Project Tango by delivering comparable AR features without specialized hardware.

Tencent Music Tech Team
Tencent Music Tech Team
Tencent Music Tech Team
Google ARCore: Principles, Setup, Device Compatibility Hacks, and Comparison with ARKit & Project Tango

Google has been very active in the VR/AR space, launching Cardboard, Project Tango, Daydream, and most recently the Android‑based AR SDK ARCore, which directly competes with Apple’s ARKit.

The article first explains the difference between Virtual Reality (VR) and Augmented Reality (AR). VR creates a fully synthetic 3D environment that blocks the real world, while AR overlays virtual objects, images, video, or sound onto the real‑world view captured by the device’s camera.

For beginners, the simplest distinction is that VR does not use the camera (only a virtual scene), whereas AR requires the camera to blend virtual content with the real scene.

ARCore Core Technologies

ARCore runs on Android devices and provides three key capabilities:

Motion tracking : Uses the camera to detect feature points and the IMU to estimate the device’s position and orientation, enabling precise placement of virtual objects.

Environmental understanding : Detects flat surfaces such as floors or tables so that virtual objects can be placed on them.

Light estimation : Measures ambient lighting to adjust the shading of virtual objects, making them appear more realistic.

Supported Devices

ARCore officially supports a limited set of Android phones (e.g., Google Pixel, Pixel XL, Samsung Galaxy S8 series) running Android 7.0 (API 24) or higher. In practice, many other devices can run ARCore after removing the built‑in device‑check.

Development Environment

Supported development environments include Android Studio, Unity, Unreal, and Web. The article demonstrates the Android Studio workflow:

Install Android Studio 2.3+ and ensure the device runs Android 7.0+.

Download the ARCore SDK (preview) from Google or clone the GitHub repository.

Enable developer options on the device and install arcore‑preview.apk to provide the ARCore service.

After setting up, the sample HelloAR project (found under /samples/java_arcore_hello_ar ) can be built. Running it on a supported phone shows a camera view with detected feature points; tapping a plane places a green Android logo.

Bypassing Device Restrictions

To run ARCore on unsupported phones, the article describes a reverse‑engineering process that modifies the SupportedDevices class inside the arcore_client.aar library.

Extract arcore_client.aar , unzip classes.jar , and locate com/google/atap/tangoservice/SupportedDevices.class .

Decompile the class to Java using CFR: java -jar /path/to/cfr.jar SupportedDevices.class > SupportedDevices.java

Edit SupportedDevices.java to comment out the return false statement in the isSupported() method, effectively disabling the fingerprint check.

Re‑compile the Java file: javac -cp /path/to/android.jar -source 1.8 -target 1.8 SupportedDevices.java

Re‑package the class into classes.jar and then rebuild arcore_client.aar : jar cvf classes.jar -C classes . jar cvf arcore_client.aar -C aar_client .

Clean and rebuild the project in Android Studio, then install the new APK on the target device. Logs will show the modified branch being executed (e.g., “Device calibration unavailable.”).

Using this method, devices such as Nexus 6P and OnePlus 5 can run the ARCore demo, though performance may be slower than on officially supported phones.

ARCore vs. Project Tango vs. ARKit

Project Tango was Google’s earlier AR platform that required specialized depth‑sensing hardware. ARCore builds on Tango’s software concepts but removes the need for dedicated depth cameras, making it usable on standard smartphones.

ARKit, Apple’s AR framework, offers similar core features (motion tracking, plane detection, light estimation) but is limited to iOS devices with A9 chips or newer. ARCore’s mapping and relocalization are more extensive, while ARKit benefits from tighter hardware‑software integration on iOS.

Both frameworks provide comparable tracking accuracy on supported devices, but ARCore currently supports fewer devices and requires work‑arounds for broader compatibility.

Conclusion

Google’s ARCore and Apple’s ARKit represent the two dominant mobile AR SDKs. Their competition drives rapid improvements in AR capabilities and lowers the entry barrier for developers. While ARCore still faces device‑compatibility challenges, community hacks and ongoing updates are expanding its reach. The AR ecosystem is maturing, and developers can now choose the platform that best fits their target audience and hardware preferences.

mobile developmentAndroidaugmented realityARCoreArkitProject Tango
Tencent Music Tech Team
Written by

Tencent Music Tech Team

Public account of Tencent Music's development team, focusing on technology sharing and communication.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.