Install OkcarOS on
OPPO F1 (International)
f1f
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.
WARNING: 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 OkcarOS either! Additionally, some devices require that VoLTE/VoWiFi be utilized once on stock to provision IMS.
- 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
-
Download Project Spectrum.
- Place the downloaded .zip packages on the root of
/sdcard
:- Using adb:
adb -d push filename.zip /sdcard/
- You can use any method you are comfortable with.
adb
is universal across all devices, and works both in Android and recovery mode, providing USB debugging is enabled.
- Using adb:
- If you aren’t already in recovery, reboot into recovery:
- With the device powered off, hold Volume Down + Power.
-
Flash Project Spectrum zip.
-
Reboot to android.
-
Enable OEM unlock in the Developer options under device Settings, if present.
- 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
You can also boot into fastboot mode via a key combination:
- With the device powered off, hold Volume Up + 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!
-
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.
Installing a custom recovery using fastboot
- Download a custom recovery - you can download one here. Simply download the recovery file and rename it to
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
You can also boot into fastboot mode via a key combination:
- With the device powered off, hold Volume Up + 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 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, hold Volume Down + Power.
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
-
Installing OkcarOS from recovery
- Build a OkcarOS installation package.
- (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, hold Volume Down + Power.
- Now tap Wipe.
- Now tap Format Data and continue with the formatting process. This will remove encryption and delete all files stored in the internal storage.
- Return to the previous menu and tap Advanced Wipe, then select the Cache and System partitions and then Swipe to Wipe.
- Sideload the OkcarOS
.zip
package:- On the device, select “Advanced”, “ADB Sideload”, then swipe 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
- Repeat the sideload steps above 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!
- Run
adb -d reboot
.
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.