I recently had to bring back an old G0215D unit after losing two other phones unexpectedly. Unfortunately, it turned out that Gree's mobile team had already abandoned support for this device. OTA updates were failing with a 24MB package that couldn't be downloaded, the app store was crashing on launch, and numerous minor issues made the phone nearly unusable. The most critical problem was the outdated WebView component, which caused many apps to malfunction.
Root Access Setup
The approach I followed was largely based on this guide. The key insight is that unlocking the bootloader on newer firmware versinos appears impossible, requiring a downgrade first.
The downgrade firmware used was labeled something like "G0215D-userdebug 6.0.1 MMB29M" - clearly a debug factory image with various developer features enabled. Users have reported performance issues including lag and excessive battery drain with this version.
After flashing this firmware, I enabled developer options and unlocked the bootloader. From there, I booted into fastboot mode to install TWRP recovery. With TWRP installed, I flashed SuperSU to gain root access.
I did attempt to flash a Magisk-patched boot.img, but encountered infinite reboot loops and gave up on that approach.
Restoring Production Firmware
Finding official firmware proved challenging. While some flashing sites offered downloads, they required payment plus premium membership to their file hosting service - an unacceptable barrier.
While browsing forum posts, I discovered this URL: http://fotadown.mayitek.com/ota/root_data02_2/gree/GREE8996_6.0/G0215D/zh/other/HALO%201.2.1%20D1/2017042519000170843.zip
This link provides the 1.2.1 D1 OTA firmware. Judging from the URL structure, this appears to be from the official OTA platform. I suspect multiple versions exist on the server, but since directory listing is disabled and filenames aren't guessable, only this particular version is accessible. It would be helpful if someone with server access could archive more versions for the community.
After upgrading to this version, I re-flashed SuperSU through TWRP and successfully regained root access. This firmware version works well for daily use.
WebView Component Update
My primary motivation for rooting was to update the WebView component.
WebView functions as a browser engine component that third-party applications can utilize to render web content without implementing their own browser core. Many apps depend on it, including WeChat.
The built-in WebView version on the G0215D was quite old (around 44.x.xxxx), causing various apps to malfunction. The most noticeable issue was WeChat login failure - after entering credentials, a CAPTCHA verification page should appear, but on this device it just showed an endless loading spinner due to the outdated WebView.
While WebView can be updated independently, there's a complication: the package underwent a naming change. Originally named "com.android.webview", it later became "com.google.android.webview". Even installing a newer version won't help because the system still references the old package name, which is hardcoded in the framework.
The upgrade method below comes from: https://gist.github.com/ppoffice/9ce9790708eeabbec1281467e25139e4
Critical: Follow these steps in exact order!
- Download an older Android System WebView from APKMirror - I used version 50.0.2661.86. The reason for choosing an older version will become clear shortly.
- Rename the downloaded APK to webview.apk. Since it's actually a ZIP archive, extract the
libsubdirectory using compression software, placing it alongside the APK file:
directory/
├── lib/
│ ├── arm64-v8a/
│ └── armeabi-v7a/
└── webview.apk
- Create a new directory called
com.google.android.webviewin/system/appon your phone. - Copy both webview.apk and the lib directory to
/system/app/com.google.android.webviewon your device. After rebooting, you should see two "Android System WebView" apps installed. Verify with:
adb shell pm list packages | grep webview
package:com.android.webview # Built-in legacy version
package:com.google.android.webview # Newly installed version
- Transfer
/system/framework/framework-res.apkto your computer and decompile it using APKTool:
apktool d framework-res.apk
Edit framework-res/res/values/strings.xml, changing:
<string name="config_webViewPackageName">com.android.webview</string>
To:
<string name="config_webViewPackageName">com.google.android.webview</string>
Save the changes and rebuild:
apktool b framework-res -c
Copy the generated framework-res/dist/framework-res.apk back to your phone's /system/framework/ directory, replacing the original. The system will automatically restart (actually recovering from a critical error). Once booted, long-press the power button to perform a proper reboot.
- You'd think we're done, but not quite. The com.google.android.webview package installed in the system doesn't function properly for unknown reasons. The built-in browser (which is actually UC Browser) crashes on launch, and Via Browser reports errors unable to load pages.
The solution was to download a newer Android System WebView package and install it in user space (as an update). I used version 106.0.5249.126. After installation, both browsers worked correctly. Testing with an HTML5 compatibility page confirmed proper rendering and verified the user agent string showed version 106.0.5249.126.
WeChat now successfully loads the CAPTCHA verification page after password entry, allowing normal login.
The reason for initially installing the older 50.0.2661.86 version as a system app was that newer versions can be freely tested and removed in user space without modifying the system partition.
Bonus Feature
With root access available, I installed an NFC card emulation app. Combined with the phone's NFC capability, this allows copying access cards to the phone for door entry.