top of page

eSim and Phone Number

  • Aug 28
  • 5 min read

Deployment and Provisioning Guide: De-Googled Voice & Cellular Data via Cheogram (JMP.chat) and Silent.link on GrapheneOS



Target Audience: System Administrators, Privacy Engineers, and Technical End Users


System Scope: Hardened Google Pixel Mobile Devices running GrapheneOS


1. Pre-Flight Configuration & System Hardening

1.1 Firmware & Hardware Verification

  1. Access the host device settings via Settings > About phone.


  2. Scroll to SIM status and verify the device is factory unlocked. If tied to a carrier, eSIM profile provisioning will fail during baseband registration.


  3. Power on or reboot the device. Observe the bootloader splash screen to verify Verified Boot State: Green or Yellow with your custom key hash. Do not proceed on an unlocked bootloader running non-validated firmware.


1.2 Baseband eSIM Initialization

  1. Navigate to Settings > Network & internet > SIMs.


  2. Ensure the GrapheneOS privileged SIM Manager feature is active.


    Note: Modern builds of GrapheneOS include isolated eSIM management functionality that does not require sandboxed Google Play Services.  


2. Cellular Data Provisioning via Silent.link (eSIM)

2.1 Purchasing the Silent.link eSIM (Non-KYC)

  1. Launch the Vanadium browser and navigate to the official Silent.link portal.


  2. Select your targeted plan (Data-Only or Identity).


  3. Select a cryptocurrency payment method (Bitcoin, Lightning Network, or Monero).


  4. Complete the transaction. Once settled, do not close the window.


  5. Save or display the confirmation page containing:


    • Activation QR Code


    • LPA String (LPA:1$...)  


    • APN String  


2.2 Profile Installation

Choose one of the following methods to install the eSIM profile onto your device:


Method A: Camera Scan

  1. Open Settings > Network & internet > SIMs.


  2. Select Download a SIM instead (or tap +).  


  3. Frame the confirmation QR code on your secondary screen within the device view-finder.  


  4. Confirm the profile download when prompted.  


Method B: Manual LPA String Entry

  1. Open Settings > Network & internet > SIMs > Download a SIM instead.  


  2. Tap Need help? > Enter it manually.  


  3. Paste the complete LPA:1$... string into the input field and submit.  


+-------------------------------------------------------------+
| Settings > Network & internet > SIMs                        |
|   └─> Download a SIM instead (+ icon)                       |
|         └─> Scan QR Code OR select "Enter it manually"      |
|               └─> Input LPA:1$... string                    |
+-------------------------------------------------------------+

2.3 Mobile Network & APN Configuration

  1. Enable Roaming: Go to Settings > Network & internet > SIMs > [Silent.link Profile]. Toggle Data roaming to ON.  


    [!] CAUTION: Silent.link profiles rely on global roaming partners. If Data Roaming is toggled OFF, mobile registration will fail.

  2. Set Data Default: Tap Mobile data and set the Silent.link line as your primary data engine.


  3. Configure Access Point Name (APN):


    • Scroll down the profile page and select Access Point Names.


    • Tap the + (Add) button.


    • Set Name to Silent Data.


    • Set APN to the precise identifier provided on your invoice page (e.g., global.data or provider specific string).


    • Leave Username, Password, Proxy, and MMS fields empty unless explicitly defined on your order summary.


    • Tap the three-dot menu () in the top right corner and tap Save. Select your new APN profile radio button.


  4. Validation: Disable Wi-Fi. Confirm an active IP tunnel by checking cellular data indicators (LTE/5G) in the notification bar.


3. Application Infrastructure Setup

3.1 Provisioning F-Droid / Obtainium

  1. Download the direct installation APK for F-Droid or Obtainium from their verified domain inside Vanadium.


  2. Tap the downloaded .apk file.


  3. When prompted by the system, grant Allow from this source to execute the installation package.


3.2 Fetching and Installing Cheogram

  1. Open F-Droid (or Obtainium).


  2. Add the Cheogram repository if required, or search directly for Cheogram.


  3. Download and install Cheogram (Package: com.cheogram.android).


4. Telephony Provisioning via JMP.chat

4.1 Jabber ID (JID) & Number Registration

  1. Launch Cheogram.  


  2. Select I need to sign up to generate a new XMPP identity, or sign into an existing account.


  3. Follow the initial account creation prompts (Username/Password selection) to instantiate your client session.


+-------------------------------------------------------------+
| Launch Cheogram App                                         |
|   └─> Select "I need to sign up"                            |
|         └─> Choose XMPP Username & Password                 |
|               └─> Launch JMP.chat Bot Interface             |
+-------------------------------------------------------------+
  1. Upon logging in, select JMP.chat from the sign-up options to initialize the registration wizard with the Cheogram bot.


  2. Select your target telephone number using the interactive search commands:


    • By Area Code: Input desired 3-digit area code (e.g., 512).


    • By Vanity Match: Prefix input with a tilde (e.g., ~7777).


  3. Confirm your desired number selection from the rendered list.


4.2 Subscription Settlement

  1. Select your preferred cryptocurrency option (Bitcoin, Lightning, or Monero) within the bot workflow.


  2. The bot will render a payment address and exact crypto value. Transfer the precise amount.


  3. Wait for network validation. The bot will automatically publish a success response to your chat once confirmed, attaching your active phone number to your JID.


5. Android Operating System Integration

5.1 Runtime Permission Configuration

  1. Open Settings > Apps > See all apps > Cheogram.


  2. Select Permissions and explicitly grant:


    • Microphone: Set to Allow only while using the app (enables voice calling).


    • Contacts: Set to Allow (enables local resolution of system phone numbers to XMPP JIDs).


    • Notifications: Set to Allowed (enables inbound call ringing and instant message pushes).


5.2 System Phone App Integration & Power Settings

  1. Launch Cheogram and accept the prompt to initialize Dialer Integration.  


  2. Open Android System Settings > Apps > Default apps > Phone app.


  3. Change the active handler from standard System Dialer to Cheogram.


    [!] CRITICAL: OS Power Management Configuration GrapheneOS background restrictions will terminate persistent socket connections.

  4. Go to Settings > Apps > See all apps > Cheogram > App battery usage.


  5. Switch the setting from Optimized to Unrestricted.


6. Verification & Troubleshooting Matrix

6.1 Diagnostic Protocol

Perform the following checks to verify full operational capability:


  1. Cellular Data Link: Turn off Wi-Fi. Verify IP reachability by loading a standard webpage over the Silent.link eSIM connection.


  2. Outbound PSTN Voice Call: Open the Android dialer keypad, dial a standard PSTN number, and press Call. Confirm the call routes over the Cheogram service engine.


  3. Inbound PSTN SMS: Send a text message from an external line to your newly provisioned JMP.chat number. Confirm delivery inside Cheogram's chat thread.

6.2 Troubleshooting Matrix

Issue / Error Symptom

Potential Cause

Operational Resolution Step

No cellular data connectivity

Missing or misconfigured APN entry

Verify Data Roaming is ON. Navigate to APN settings and confirm key/value configuration matches Silent.link invoice.

eSIM installation failure

Baseband rejected string or missing connection

Ensure active Wi-Fi connection during download. Re-enter string manually via Settings > SIMs > Download a SIM instead > Enter it manually.

Inbound calls fail to ring when app is closed

Android battery management terminated background process

Navigate to Settings > Apps > Cheogram > App battery usage and set restriction to Unrestricted.

Outbound call fails immediately from native dialer

Telecom connection service unlinked

Launch Cheogram, re-verify dialer integration settings, or re-select Cheogram under Settings > Apps > Default apps > Phone app.

XMPP connection failure / bot unresponsive

Transport layer blocked or invalid credentials

Check network status. Force restart Cheogram app via Settings > Apps > Cheogram > Force Stop, then relaunch.


 
 
 

Recent Posts

See All
Internet-in-a-Box

USER MANUAL: Off-Grid Knowledge Node & Local AI Deployment Target Hardware: 1 TB Portable Solid-State Drive (SSD) Supported OS: Windows 10/11, macOS (Apple Silicon / Intel), Linux (Ubuntu/Debian-based

 
 
 
Flashing Linux Mint

Technical Manual: Linux Mint Installation Guide Target Audience: System Administrators, Technicians, End-Users Scope: Installation of 64-bit Linux Mint on Supported Laptop Hardware 1. Safety & Data Wa

 
 
 
Flashing GrapheneOS

GRAPHENEOS INSTALLATION & SETUP MANUAL Classification: Technical End-User Documentation Target Hardware: Google Pixel Series (Carrier-Unlocked) 1. System Overview & Safety Warnings This document provi

 
 
 

Comments


bottom of page