Problem
Unable to Enable OEM unlocking (greyed-out) on a new carrier-free Pixel 9a.
My experience
Feel free to edit or modify. IMHO statements on the Internet do not address the root-cause and/or provide simple step-by-step solutions.
Background
• New unboxed Pixel 9a
• Initial Setup Wizard completed with minimal setup (no network connectivity)
• Developer options enabled
• OEM unlocking toggle greyed‑out (NOK)
Message: Connect to the Internet or contact your operator
• USB debugging enabled
Prerequisites
• No carrier‑lock
• No active MDM/device‑owner policy
• Execute 7. Optional Fun commands
Solution
Reset Initial Setup Wizard (Minimal-setup)
Settings → System → Reset options → Erase all data (factory reset) → Erase all data (Phone will reboot to the Initial Setup Wizard.)
If you have a PIN, Re-enter your PIN → Erase all data
Re-run the Initial Setup Wizard (Minimal-setup)
Welcome to your Pixel → Get Started
Set up using another device → Skip
Connect to Wi‑Fi
Must connect to enable OEM unlocking, see Rationale
From Privacy menu, select the following:
• Use randomized MAC
• Don't send device name to network
• <password>
Getting your phone ready...
Checking network info...
Who are you setting this phone up for? → For myself
Checking info...
Sign in → Skip → Skip
Connect to mobile network → Skip → Skip
Set a PIN
Use temporary 4-digit PIN.
Required for OEM and bootloader unlocking.
Set up Fingerprint Unlock → Not now
Set up Face Unlock → Not now
Google Services: All OFF → Accept
Limited warranty → Next
Get peace of mind → Next
Review additional apps → Uncheck → All of the following apps → OK
Just a few moments
Getting your phone ready...
This may take a few minutes
Swipe to navigate → Skip
All set!
Swipe up to go to Home
Prepare the mobile device for the GrapheneOS
- Use developer options tap → Build number 7x
- OEM unlocking → ON
Allow the bootloader to be unlocked → ON (Yahoo!)
- USB debugging → ON
Debug mode when USN is connected
Disconnect from the Internet
Networks & internet → Wi-Fi
Saved networks → <Name> → Forget
Continue with the published instructions.
Optional Fun commands :-)
C:\WINDOWS\system32> adb devices -l
List of devices attached
<14-CHAR> device product:tegu model:Pixel_9a device:tegu transport_id:6
> adb shell dumpsys device_policy | findstr /i "owner"
mPasswordOwner=-1 → GOOD, NO MDM OWNER
Device Owner Type: -1 → GOOD, NO DEVICE OWNER
> adb shell settings get global development_settings_enabled
1 → OK
> adb shell settings get global oem_unlock_allowed
1 (BEFORE OEM UNLOCK)
null (AFTER OEM UNLOCK)
> adb shell settings get global adb_enabled
1 → OK
See also, https://developer.android.com/tools/adb#commands
Rationale
The system contacts Google’s boot‑loader‑unlock eligibility service, HTTPS request to https://android.googleapis.com/bootloader/unlock and sends a GET request with the device’s serial number, carrier ID, and build fingerprint. If the device cannot reach the Internet, the request fails and the UI shows the toggle as disabled (grey).
The server checks three things:
- Carrier status – is the device sold through a carrier that restricts unlocking?
- Device‑owner / MDM – is the phone enrolled in an enterprise policy that blocks unlocking?
- Device health – has the device been tampered with (e.g., custom ROM)?
If the response is “allowed”, the toggle becomes clickable.
If the response is “blocked”, the toggle stays grey and the message stays on the screen.