Install OkcarOS on
NVIDIA Shield TV (2015 / 2015 Pro / 2017 / 2019 Pro) [Android TV]
foster
Do 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.
- LineageOS 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 -d reboot bootloader
- 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!
-
Now type the following command to unlock the bootloader:
fastboot oem unlock
NOTE: At this point the device may display on-screen prompts which will require interaction to continue the process of unlocking the bootloader. Please take whatever actions the device asks you to to proceed. - If the device doesn’t automatically reboot, reboot it. It should now be unlocked.
- Since the device resets completely, you will need to re-enable USB debugging to continue.
Special Considerations
The Shield TV Pro (2015) has some additional quirks you’ll want to be aware of.
To discern if you have this model, you can run the following command on stock:
adb -d shell getprop ro.hardware
If this command returns anything other than foster_e_hdd
or jetson_cv
, proceed with the install process. If it returns foster_e_hdd
please take note that the fastboot oem unlock
command the instrutions below will have you run can take up to 90 minutes. This is due to the fact that the device is securely wiping near to 500 GB of hard disk.
If it returns jetson_cv
, or if you have a fresh Jetson TX1, the installation instructions require a Linux host to install, and getting Linux up and running won’t be covered here.
- Download a flash package.
- It will be named
p2371_flash_package.tar.xz
NOTE: These flash packages were built by OkcarOS Developer Aaron Kling (webgeek1234) from officially supported OkcarOS repositories, using Tegraflash and device configurations from NVIDIA Linux4Tegra releases and a few custom scripts. - It will be named
- Install
xz
andpython3
. To do so, runsudo apt -y install xz-utils python3
(Debian based hosts) ordnf -y install xz-utils python3
(Redhat based hosts). - Run the following command in the folder which you downloaded the flash package to
tar -xvf p2371_flash_package.tar.xz
. - Power off the device, and boot it into download mode:
- With the device off, press the FRC REC button, then tap power. Release the FRC REC button once the device enumerates in APX mode, to discern this, run
sudo dmesg
on your host, and look for “Product: APX”, if it doesn’t show, please try this step again or try a different USB cable/port until it enumerates.
- With the device off, press the FRC REC button, then tap power. Release the FRC REC button once the device enumerates in APX mode, to discern this, run
- Now, from the same terminal as before, run:
sudo ./flash.sh
NOTE: Please note this will require your user’s sudo password, as the script requires direct hardware access, which requires root privledges. - The script will flash the boot stack and boot directly to OkcarOS Recovery. Now, please skip to the section labeled “Installing OkcarOS from recovery”:
Installing a custom recovery using fastboot
- Download Lineage Recovery. Simply download the latest recovery file, named
recovery.img
.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 -d reboot bootloader
- 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 recovery onto your device:
fastboot flash recovery recovery.img
- Now reboot into recovery to verify the installation.
Do not reboot into the existing OS, since it will overwrite the recovery you just installed!
-
With the device powered off, plug the included Shield controller into the USB-A port on the back of the device. Next, hold the A button and B button while plugging the device into power, continue until a menu is displayed. Tap the Y button until “Boot recovery kernel” is selected. Now, press the A button to select this option.
NOTE: If you can’t power down the device, try long-pressing the key-combination (if any was used in the instructions above) until the device reboots and follow the instructions above
NOTE: If your recovery does not show the OkcarOS logo , you accidentally booted into the wrong recovery. Please start at the top of this section! -
Installing OkcarOS from recovery
- Download the OkcarOS installation package that you would like to install or build the package yourself.
- (Optionally): If you want to install Google Apps add-on package (use the
arm64
architecture), you can download it from here.
- (Optionally): If you want to install Google Apps add-on package (use the
- If you are not in recovery, reboot into recovery:
- With the device powered off, plug the included Shield controller into the USB-A port on the back of the device. Next, hold the A button and B button while plugging the device into power, continue until a menu is displayed. Tap the Y button until “Boot recovery kernel” is selected. Now, press the A button to select this option.
- 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 OkcarOS
.zip
package but do not reboot before you read/followed the rest of the instructions!- On the device, select “Apply Update”, then “Apply from ADB” to begin sideload.
- On the host machine, sideload the package using:
adb -d 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 reportadb: 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.
Installing Add-Ons
Signature verification failed
, this is expected, please click Continue
.- Click
Apply Update
, thenApply from ADB
, thenadb -d sideload filename.zip
for all desired packages in sequence.
All set!
Once you have installed everything successfully, you can now reboot your device into the OS for the first time!
- 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 subreddit or in #OkcarOS on Libera.Chat.