Install PixelExperience on nio
Back to the overviewDo not continue after something fails!
Basic requirements
- Read through the instructions at least once before actually following them, so as to avoid any problems due to any missed steps!
- Make sure your computer has
adb
andfastboot
. Setup instructions can be found here. - Enable USB debugging on your device.
- Make sure that your model is actually listed in the “Supported models” section here (exact match required!)
- Boot your device with the stock OS at least once and check every functionality. Make sure that you can send and receive SMS and place and receive calls (also via WiFi and LTE, if available), otherwise it won’t work on PixelExperience either! Additionally, some devices require that VoLTE/VoWiFi be utilized once on stock to provision IMS.
- PixelExperience is provided as-is with no warranty. While we attempt to verify everything works you are installing this at your own risk!
Unlocking the bootloader
- Connect the device to your PC via USB.
- On the computer, open a command prompt (on Windows) or terminal (on Linux or macOS) window, and type:
adb reboot bootloader
You can also boot into fastboot mode via a key combination:
- With the device powered off, hold Volume Down + Power.
- Once the device is in fastboot mode, verify your PC finds it by typing:
fastboot devices
If you don’t get any output or an error:
- on Windows: make sure the device appears in the device manager without a triangle. Try other drivers until the command above works!
- on Linux or macOS: If you see
no permissions fastboot
try runningfastboot
as root. When the output is empty, check your USB cable and port!
-
Follow the instructions at Motorola Support to unlock your bootloader.
Note: If your device is not supported by the Motorola Bootloader Unlock website, you may be able to use an alternative bootloader unlock method like SunShine, though they only support some devices/firmwares. - Since the device resets completely, you will need to re-enable USB debugging to continue.
Flashing the dtbo and vendor boot partitions
- Download this
vendor_boot.img
file and thisdtbo.img
file. - Power off the device, and boot it into bootloader mode:
- With the device powered off, hold Volume Down + Power.
- Flash the downloaded images to your device by typing (replace
<dtbo>
and<vendor_boot>
with the actual filename!):
fastboot flash dtbo <dtbo>.img
fastboot flash vendor_boot <vendor_boot>.img
Booting a custom recovery using fastboot
-
Download the PixelExperience Recovery. Simply download the latest recovery file.
Important: Other recoveries may not work for installation or updates. We strongly recommend to use the one linked above! - Connect your device to your PC via USB if it isn’t already.
- If your device isn’t already in fastboot mode, on the computer, open a command prompt (on Windows) or terminal (on Linux or macOS) window, and type:
adb reboot bootloader
You can also boot into fastboot mode via a key combination:
- With the device powered off, hold Volume Down + Power.
- Once the device is in fastboot mode, verify your PC finds it by typing:
fastboot devices
If you don’t get any output or an error:
- on Windows: make sure the device appears in the device manager without a triangle. Try other drivers until the command above works!
- on Linux or macOS: If you see
no permissions fastboot
try runningfastboot
as root. When the output is empty, check your USB cable (preferably use a USB Type-A 2.0 one or a USB hub) and port!
Tip: Some devices have buggy USB support while in bootloader mode, if you seefastboot
hanging with no output when using commands such asfastboot getvar ...
,fastboot boot ...
,fastboot flash ...
you may want to try a different USB port (preferably a USB Type-A 2.0 one) or a USB hub. - Flash a recovery on your device by typing (replace
<recovery_filename>
with the actual filename!):fastboot flash boot <recovery_filename>.img
Note: Outdated fastboot releases dropped legacy A/B support, so it might attempt to flash toboot__a
/boot__b
rather thanboot_a
/boot_b
if you try to flashboot
. In this case, you must updatefastboot
to a release newer than or equal to31.0.2
. Alternatively, you can manually specify which slot to flash to based on what slot fastboot failed to flash to. For example, if fastboot fails to flash toboot__a
, you must flash toboot_a
. - Now reboot into recovery to verify the installation.
- Use the menu to navigate to and to select the
Recovery
option.
Note: If your recovery does not show the PixelExperience logo, you accidentally booted into the wrong recovery. Please start at the top of this section! - Use the menu to navigate to and to select the
Ensuring all firmware partitions are consistent
In some cases, the inactive slot can be unpopulated or contain much older firmware than the active slot, leading to various issues including a potential hard-brick. We can ensure none of that will happen by copying the contents of the active slot to the inactive slot.
To do this, sideload the copy-partitions-20210323_1922.zip package by doing the following:
- Download the
copy-partitions-20210323_1922.zip
file from here. - Sideload the
copy-partitions-20210323_1922.zip
package:- On the device, select “Apply Update”, then “Apply from ADB” to begin sideload.
- On the host machine, sideload the package using:
adb sideload copy-partitions-20210323_1922.zip
- Now reboot to recovery by tapping “Advanced”, then “Reboot to recovery”.
Installing PixelExperience from recovery
- Download the PixelExperience installation package that you would like to install or build the package yourself.
- If you are not in recovery, reboot into recovery:
- With the device powered off, hold Volume Down + Power, then select “Recovery mode” using Volume keys.
- Now tap Factory Reset, then Format data / factory reset and continue with the formatting process. This will remove encryption and delete all files stored in the internal storage, as well as format your cache partition (if you have one).
- Return to the main menu.
- Sideload the PixelExperience
.zip
package:- On the device, select “Apply Update”, then “Apply from ADB” to begin sideload.
- On the host machine, sideload the package using:
adb sideload filename.zip
.Tip: Normally, adb will reportTotal xfer: 1.00x
, but in some cases, even if the process succeeds the output will stop at 47% and reportTotal xfer: 0.98x
oradb: failed to read command: Success
. In some cases it will reportadb: failed to read command: No error
oradb: failed to read command: Undefined error: 0
which is also fine.
- Once you have installed everything successfully, click the back arrow in the top left of the screen, then “Reboot system now”.
Get assistance
After you’ve double checked that you followed the steps precisely, didn’t skip any and still have questions or got stuck, feel free to ask on our Telegram group.