Scripts for installing Magisk, a set of patched boot.img files, and a set of modules for the head unit.
Supports firmware versions v7.6.1 and v11.55 .
# Technical details
Magisk can’t independently modify our kernel, which uses bzImage with Intel’s non-standard Legacy LZ4, so we have to do it manually.
Available boot images:
- v7.6.1 with loglevel=2, Magisk v30.6 and modified recovery.
- v11.55 with loglevel=2, Magisk v30.6 and modified recovery.
In the recovery, the “Reboot to bootloader” button, useless due to the lack of Fastboot support , has been replaced with “Reboot to ELK.”ELK (Emergency Linux Kernel) is a backup OS that allows you to perform low-level system operations and automatically flash any firmware version from a USB flash drive in case of bricking .
It is strongly recommended not to reboot into ELK without UART access (requires disassembling the head unit) until instructions for flashing the firmware are published.
Description of functions and capabilities
# Magisk
- Persistent root access with su and resetprop
- Support for installing modules (as on a regular Android smartphone)
- Bootloop protection – modules are automatically disabled after 2 forced reboots until a full launch (disappearance of the Haval splash screen)
# Magisk modules
- LSPosed v1.11.0 (thanks to JingMatrix)
- Hooks in Zygote for modifying system applications without rebuilding.
- ChimeConfig v1.0
- The volume of all Chime sounds is controlled by the “Alert Volume” slider in the GWM settings.
- GnssConfig v1.0
- In addition to GPS, GLONASS+Galileo signal reception is enabled (instead of the standard BeiDou) to improve positioning in spoofing conditions
- MiscConfig v1.6
- The startup of the head unit has been accelerated by forcibly increasing the processor frequency to 1.8 GHz during loading.
- Improved GUI performance by using the sched governor instead of ondemand.
- Wireless ADB starts automatically after full startup (Haval splash screen disappears)
- WiFi Config v1.2
- Enabled P2P and Interworking support, and configured 5GHz channels for wireless Android Auto
- Houdini 8_z (thanks to Intel and the Android-x86 project)
- The ability to install and run ARM and ARM64 applications (for example, the official VK Video and VK Music clients – older versions for Android 7.0+ are required)
# LSPosed modules
- GwmCorePatch
- AOSP signatures (platform, testkey and shared) are considered trusted on par with Harman – applications signed by them can be installed on top of system ones
- Third-party applications with an AOSP signature can run background services without restrictions (as with the persistent attribute ) and gain system privileges.
- GwmStatusBarHook
- The right clock panel (GwmCardView) has been removed.
- Added actions for pressing the Home button: short press – “back”, long press – “home”
- GwmAaHook
- Wireless Android Auto support (wireless CarPlay not yet available)
# Modified system applications
- GwmSystemUI
- Added a “Recent Apps” tab, activated by double-clicking the home button.
# Other changes
- The “persist.enable_task_snapshots” parameter has been enabled to correctly display thumbnails of recent applications.
Release Notes:
Be sure to read the README.md and CHANGELOG.md files!
Wireless AaA doesn’t work when VPN is enabled on the phone—split tunneling must be configured.
The access point for wireless AaA is activated automatically each time the head unit is started. To connect the head unit to the phone’s internet connection, you can either temporarily disable the access point in the settings (this works until a reboot) or completely disable wireless AaA by disabling the GwmAaHook module in the LSPosed GUI.
SystemUI modifications change the behavior of the Home button:
- Short press – “Back”
- Long press – “Home”
- Double tap – “Recent apps”
ADB autorun only works over a wireless connection; you still need to manually switch usbrole=device for a wired connection.
Installation instructions:
You’ll need a FAT32 or exFAT flash drive, where the installation script will save GPT and boot partition backups. For a wired ADB connection, insert it into the lower slot.
The GPT backup is unique to each head unit, so don’t lose it!
Magisk is installed into the current A/B slot and isn’t completely removed during a factory reset.
You must first set up an ADB connection with root access to the head unit from a laptop or phone.
Unzip the archive to the ADB folder:
GWMv2MagiskInstaller.zip (137.44 MB).
The engine must be running throughout the installation process.
# 1. PreparationThis must be done after connecting via ADB with root access .Copy the “payload.tar.gz” and “prepare.sh” files from the unzipped archive to the /data/local/tmp/magisk_installer folder on the head unit and run the preparation script.Enter and execute the following commands one by one:
adb shell mkdir /data/local/tmp/magisk_installer
adb push payload.tar.gz /data/local/tmp/magisk_installer
adb push prepare.sh /data/local/tmp/magisk_installer
adb shell "chmod +x /data/local/tmp/magisk_installer/prepare.sh && /data/local/tmp/magisk_installer/prepare.sh
“Make sure there are no errors.
# 2. Install Magisk – perform with ADB RootThis step must be performed after establishing an ADB connection with root access (wired or wireless).This is the most important and only potentially dangerous step.Enter and run the command:
adb shell "/data/local/tmp/magisk_installer/payload/stage1.sh
“Make sure there are no errors. A warning is acceptable (but may not be present):Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)Agree to reboot by pressing Enter.
# 3. Setting up the Magisk AppLaunch Magisk by clicking its shortcut.A window will appear warning you that additional device preparation is required. Click “OK” and agree to reboot.
# 4. Installing Magisk modulesThis must be done after an ADB connection with root access (wired or wireless).Enter and execute the command:
adb shell "/data/local/tmp/magisk_installer/payload/stage2.sh
Make sure there are no errors. Agree to reboot by pressing Enter.
# 5. Installing LSPosed modulesThis should be done after an ADB connection without root access (wired or wireless). With a wireless connection, ADB should launch automatically; for a wired connection, you must manually change usbrole=device. Enter and run the command:
adb shell "/data/local/tmp/magisk_installer/payload/stage3.sh
Three notifications from the “Notification Manager” will appear in the notification bar. Select each one in turn, move the slider to activate the module, and check the apps marked as recommended in the list, as shown in the images below.




# LSPosed GUIPress Enter in the terminal.
Agree to restart Zygote by pressing Enter again (this is not a full reboot – the Haval splash screen will appear immediately and then the desktop will return after a while).When the Magisk window appears, agree to grant root privileges to the Shell app by pressing the “GRANT” button:
# Request shell permissions

After 10 seconds of inactivity, the privileges will be automatically revoked. If you didn’t have time to press the button, open the Magisk app and, in the Superuser tab, move the slider for Shell.
# 6. Installing system application modsThis should be performed after an ADB connection without root access (wired or wireless). With a wireless connection, ADB should launch automatically; for a wired connection, you must manually switch usbrole=device. If GwmAaHook was enabled in the previous step and the wireless ADB connection is not working, disable hotspot in Android settings and reconnect the head unit to the phone’s WiFi. Enter and execute the command:
adb shell "/data/local/tmp/magisk_installer/payload/stage4.sh
Agree to restart Zygote by pressing Enter again (this is not a full reboot – the Haval splash screen will appear immediately and after a while the desktop will return).
The head unit is ready for use, but it is recommended to perform a final reboot using the command:
adb shell reboot
Author Credit: This technical guide was originally researched and written by Dmitriy (@DymOk). We have mirrored and translated this content here as a reference for the Haval Jolion community with respect to the original developer’s work.
