How To Carrier Unlock Mobile Devices
- Biohazard

- Jul 20
- 8 min read

Carrier Unlocking Mobile Devices
Here's the carrier unlock methodology on mobile devices. This is a(n) article / guide on how to carrier unlock mobile devices.
What You're Actually Testing
Carrier locking is a security control that prevents a device from being activated on an unauthorized network. For organizations, it's relevant in three scenarios:
Scenario | Why It Matters |
Fleet procurement verification | Organization paid for carrier-locked devices at a discount. Are they actually locked, or did the vendor ship unlocked units at the locked price? |
Device loss/theft deterrence | A stolen carrier-locked device is harder to resell or repurpose on another network, reducing theft incentive. |
Insider threat / device repurposing | Can a terminated employee carrier-unlock a company device and keep using it? |
Check Current Carrier Lock Status
Before attempting any unlock, verify the actual lock state of each device.
iPhone
bash
# Settings → General → About
# Scroll to "Carrier Lock"
# States:
# "No SIM restrictions" = fully unlocked
# "SIM locked" = carrier locked
# Or via IMEI lookup (more reliable)
# Dial *#06# to get IMEI
# Then query Apple's activation server:
curl -s "https://sickw.com/api.php?format=JSON&key=YOUR_API_KEY&imei=IMEI_HERE" | jq '.simlock'
Command-line approach with an iPhone backup tool:
bash
# Using libimobiledevice
ideviceinfo -k CarrierLockStatus
# 0 = unlocked, 1 = locked
Android
bash
# Method 1: Dialer code (universal)
*#7465625# # Check lock status on most Android
*#*#7378423#*#* # Sony service menu → Service info → SIM Lock
# Method 2: ADB
adb shell getprop gsm.sim.state
# ABSENT, READY, LOCKED, NETWORK_LOCKED
adb shell getprop persist.radio.carrierlock
# true = locked
# Method 3: Direct check via radio
adb shell dumpsys telephony.registry | grep mCarrierLocked
Bulk Fleet Check
bash
#!/bin/bash
# fleet_lock_check.sh — verify lock status across fleet
DEVICES=(
"device1_serial:IMEI1"
"device2_serial:IMEI2"
"device3_serial:IMEI3"
)
for device in "${DEVICES[@]}"; do
SERIAL="${device%%:*}"
IMEI="${device##*:}"
echo "[*] Checking $SERIAL ($IMEI)..."
# Query via SickW, IMEI.info, or direct carrier API
STATUS=$(curl -s "https://sickw.com/api.php?key=API_KEY&imei=$IMEI" | jq -r '.simlock_status')
if [[ "$STATUS" == "Locked" ]]; then
echo " ✓ Locked (expected)"
else
echo " ✗ UNLOCKED (potential finding)"
fi
doneCarrier Unlock Methods
These are the actual methods. As a hacker, you're testing which ones work against your organization's devices.
Method A: Carrier-Provided Unlock (Legitimate/Pentest Baseline)
Every carrier has a device unlock policy. Test whether the organization's devices qualify.
bash
# AT&T Device Unlock Portal
# https://www.att.com/deviceunlock/
# Requirements:
# - Device active on AT&T for 60+ days
# - Account in good standing
# - Device not reported lost/stolen
# - Installment plan fully paid
# T-Mobile Device Unlock
# https://www.t-mobile.com/support/devices/unlock-your-mobile-wireless-device
# Requirements:
# - Device active for 40+ days
# - Account in good standing
# - Device fully paid off
# Verizon
# https://www.verizon.com/support/device-unlocking-policy/
# Most Verizon postpaid devices auto-unlock after 60 days
# Prepaid: 60 days after activation
Hacker's angle: If the organization recently switched carriers or terminated lines, devices may qualify for carrier unlock and employees may have the account info to request it themselves.
bash
# Test: Can a non-admin employee unlock via carrier portal?
# 1. Navigate to carrier unlock page
# 2. Enter device IMEI (printed on box, or dial *#06#)
# 3. If prompted for account PIN/SSN — does employee have it?
# 4. If unlock approved — finding: insider unlock possible
Method B: Third-Party IMEI Unlock Services
These services pay carrier insiders or use carrier partner credentials to submit unlock requests. They're widely available but their legality varies by jurisdiction.
bash
# Common services (for testing purposes):
# - doctorSIM, UnlockBase, CellUnlocker.net
# - DirectUnlocks, IMEI Authority
# Test process:
# 1. Submit IMEI to service
# 2. Pay fee (typically $10-50 for standard, $50-200 for premium/fast)
# 3. Service processes through carrier back-end
# 4. Unlock confirmation arrives via email (typically 1-72 hours)
# 5. Insert non-original carrier SIM → device activates on new network
Hacker's angle: Test whether:
The unlock service accepts your organization's device IMEIs (not blacklisted for business accounts)
The unlock actually works (inserting a test SIM from a different carrier)
There are any alerts to the organization's carrier account
Method C: Factory Unlock Codes (Older Android)
Some manufacturers allow unlocking via dialer code (mostly older models):
bash
# Samsung (older models, pre-2019)
# Requires unlock code — usually obtained from carrier or third-party
# Dial: #7465625*638*UNLOCK_CODE#
# Or: #0111*UNLOCK_CODE#
# LG
# 2945#*MODEL_NUMBER# → Service Menu → Network Lock → Enter Code
# Motorola
# Requires specific code per IMEI
# Dial: #073887*UNLOCK_CODE#
# Huawei (pre-ban)
# Requires NCK code (Network Control Key)
# Insert non-original SIM → prompts for NCK code
Hacker's angle: If the organization has older Android devices still in the fleet, test whether unlock codes from third-party services actually work.
Method D: Manufacturer Direct Unlock
Some manufacturers have their own unlock programs:
bash
# OnePlus
# OEM Unlock in Developer Options (for bootloader)
# Carrier unlock is separate — but carrier-agnostic OnePlus phones
# may not be carrier-locked at all on certain SKUs
# Google Pixel
# All Pixels sold directly by Google are carrier-unlocked
# Pixel from Verizon: auto-unlock after 60 days
# "OEM Unlocking" toggle in Developer Options — grayed out if carrier-locked
# Xiaomi/Redmi/POCO
# Mi Unlock tool for bootloader
# Carrier lock is rare outside Chinese carrier variants
Method E: Hardware-Based Unlock (Chip Reprogramming)
Some repair shops offer "hardware unlocks" — these involve physically modifying or replacing baseband components:
bash
# Common techniques:
# 1. JTAG/SWD flashing — reprogram baseband chip directly
# 2. EEPROM replacement — swap or reprogram the NAND flash
# 3. Service box tools — Octoplus, Z3X, SigmaKey
# 4. Unlock via factory/engineering firmware
# These require:
# - Phone disassembly
# - Specialized hardware (Octoplus Box: $200-800)
# - Model-specific firmware files
Hacker's angle: This is the most extreme method. Test if any local repair shop will attempt it on an organization device. If they will, it demonstrates that physical security of lost/stolen devices matters more than carrier lock.
Manufacturer-Specific Unlock Testing
iPhone Carrier Unlock
bash
# iPhones have two lock systems:
# 1. Carrier lock — prevents SIM from another carrier
# Check: Settings → General → About → Carrier Lock
# Bypass: Only through Apple's activation server (carrier-submitted request)
# RSIM/Gevey SIM interposers can sometimes bypass (tricks phone into
# thinking it's on the home carrier)
# 2. Activation Lock (iCloud lock) — prevents reactivation after wipe
# Check: https://www.icloud.com/activationlock/
# Bypass: Requires original owner credentials or Apple unlock approval
# (Not the same as carrier lock — often confused)
# RSIM / Gevey SIM Testing:
# 1. Purchase RSIM/Gevey interposer for target device model
# 2. Program interposer with carrier ICCID
# 3. Insert interposer + target SIM into iPhone
# 4. Follow on-screen carrier activation
# 5. Test: does device now function on unauthorized carrier?
Hacker's value: Test whether RSIM/Gevey interposers work against the organization's iPhone fleet. These are $5-15 devices that can bypass carrier locking on certain iOS versions. They don't always survive iOS updates.
Carrier Unlock By Specific Carrier - Testing Fast Tracks
Carrier | Normal Unlock Time | Fastest Method | Pentest Angle |
AT&T | 2-5 days via portal | Instant via employee insider | Can employee submit with account info? |
T-Mobile | 24-72 hours via app | Instant via T-Force (Twitter DM) | Social engineering the support channel |
Verizon | Auto after 60 days | Already unlocked on most postpaid | Verify: are "locked" Verizon devices actually locked? |
Sprint (now T-Mobile) | 48-72 hours | T-Mobile migration unlock | Legacy Sprint devices may be auto-unlocked |
Xfinity Mobile | 48 hours | Portal request with account | Can employee access Xfinity account? |
Spectrum Mobile | 24-48 hours | Phone support | Social engineering test |
Dish/Boost | 12 months active required | Longest hold | Test if org's Dish devices qualify yet |
Comprehensive Pentest Workflow
bash
#!/bin/bash
# carrier_unlock_pentest.sh — full fleet testing
echo "=== CARRIER UNLOCK PENTEST ==="
echo ""
# Phase 1: Inventory & Lock Status
echo "--- Phase 1: Lock Status Verification ---"
for device in "${DEVICES[@]}"; do
check_lock_status "$device"
done
# Phase 2: Carrier Unlock Attempt
echo ""
echo "--- Phase 2: Carrier Unlock Attempt ---"
echo "[*] Testing carrier portal unlock..."
carrier_portal_unlock_test "DEVICE_IMEI"
# Phase 3: Third-Party Service Test
echo ""
echo "--- Phase 3: Third-Party Unlock Service ---"
echo "[*] Submitting IMEI to unlock service..."
# Submit to service, document cost and turnaround
# Phase 4: RSIM/Gevey Test (if iPhone)
echo ""
echo "--- Phase 4: Physical Interposer Test ---"
echo "[*] Testing RSIM/Gevey interposer..."
test_interposer "DEVICE_MODEL"
# Phase 5: Social Engineering
echo ""
echo "--- Phase 5: Social Engineering ---"
echo "[*] Attempting carrier support social engineering..."
# Call carrier support as "employee who switched departments"
# Request unlock, document whether granted
echo ""
echo "=== TEST COMPLETE ==="Operational Notes
Important: Device Wiping
iPhone: Carrier unlock is server-side. The device doesn't need to be wiped. After Apple's activation server updates the unlock status, insert a new SIM and the device activates.
Android: Most carrier unlocks don't require a wipe. Insert the new SIM, enter unlock code if prompted, device reboots and activates on the new carrier.
Factory reset DOES NOT remove carrier lock. The lock is stored on Apple's servers (iPhone) or in the baseband/modem firmware (Android).
IMEI Blacklisting
Carrier unlocking is separate from IMEI blacklisting. An unlocked device with a blacklisted (lost/stolen) IMEI will still be rejected by most carriers. Test for this:
bash
# Check IMEI blacklist status
curl -s "https://sickw.com/api.php?key=API_KEY&imei=$IMEI" | jq '.blacklist_status'
# Check multiple databases:
# - GSMA IMEI Database (global)
# - CTIA Stolen Phone Checker (US)
# - carrier-specific check toolsReport Template
markdown
## Finding M-009: Carrier Lock Bypass Assessment
Severity: Medium
Impact: Device loss/theft risk, procurement fraud indicator
### Lock Status Across Fleet (15 devices tested)
| Device | Expected Lock | Actual Lock | Finding |
|--------|--------------|-------------|---------|
| iPhone 14 Pro x5 | AT&T Locked | AT&T Locked | Compliant ✓ |
| iPhone 13 x3 | T-Mobile Locked | T-Mobile Locked | Compliant ✓ |
| iPhone SE x2 | T-Mobile Locked | UNLOCKED | **Vendor discrepancy** ✗ |
| Galaxy S23 x3 | Verizon Locked | Verizon Locked | Auto-unlock after 60d ⚠ |
| Galaxy A54 x2 | AT&T Locked | AT&T Locked | Compliant ✓ |
### Unlock Attempts
| Method | Target | Success? | Cost | Notes |
|--------|--------|----------|------|-------|
| AT&T portal | iPhone 14 Pro | Approved | Free | Processed instantly with account info |
| Third-party (IMEI Authority) | Galaxy S23 | Approved | $28 | 48hr turnaround |
| RSIM interposer | iPhone 13 | Approved | $8 | Survived iOS 17.4 reboot |
| Social eng (AT&T support) | iPhone 14 Pro | Approved | Free | CSR unlocked without verification |
### Key Findings
1. **2 iPhone SE devices were carrier-unlocked** despite being procured as T-Mobile locked — potential vendor fraud or procurement error
2. **Verizon devices auto-unlock after 60 days** — postpaid fleet is effectively unlocked after two months, negating theft deterrence value
3. **RSIM interposer works** — $8 device defeated carrier lock on all iPhones tested
4. **Carrier support social engineering successful** — 2/3 attempts resulted in unlock without proper identity verification
5. **Third-party unlock services** are fast, cheap, and reliable — no alert triggered to corporate carrier account
### Remediation
1. **Verify procurement:** Audit carrier-locked vs unlocked device invoices. The 2 unlocked iPhones may represent billing discrepancies of $100-150 per device.
2. **Carrier lock as theft control is unreliable:** Verizon postpaid fleet is effectively unlocked. Implement MDM-based device wipe and activation lock as primary theft controls instead.
3. **Account security:** Restrict who has access to carrier account credentials. The unlock portal tests showed any employee with the account PIN could unlock all devices.
4. **MDM enrollment over carrier lock:** Prioritize MDM activation lock and remote wipe. These survive carrier unlocking and factory resets.
5. **Asset tagging:** Physical asset tags reduce resale value, making carrier unlock less impactful.
6. **Accept limitation:** Carrier lock is a speed bump, not a security control. Treat it as such in the risk model.






Comments