Currently, the most difficult part of getting a giffgaff card in China isn't registering an account, but the rising "activation cost."
If you go with a physical SIM, you usually have to wait for international mail, which is unstable; if you look for someone to activate it for you, you have to pay a fee and hand over your account, verification code, and payment details, which is high risk.
What's more embarrassing is that Chinese iPhones themselves do not support eSIM. Many people think the road ends here.
Actually, it hasn't.
In this article, I will talk about a nearly zero-cost method: no need to buy a physical card, no need to find someone to activate it, just use the Android emulator on your computer to activate the giffgaff eSIM yourself.
The key points are:
You don't need to make your Chinese iPhone support eSIM first.
You just need to get the giffgaff eSIM activation code first.
The emulator is just an activation tool, not the final device.

What exactly is this method doing?
In one sentence:
→ Use a computer to simulate an Android phone that supports eSIM
→ Let the giffgaff App think the device supports eSIM
→ Then buy the eSIM in the App and get the activation code
The complete chain is:
→ Computer
→ → MuMu Android Emulator
→ → Root
→ → Magisk
→ → LSPosed
→ → HookEuicc
→ → giffgaff App
→ → Buy eSIM
→ → Get activation code
→ → Subsequent installation/delivery
Note: The emulator is only used to activate the card.
After the eSIM is activated, it is not only usable in the emulator.
The role of the emulator is to bypass the device detection of the giffgaff App and get the activation code.
To actually use the eSIM, it depends on where you install the activation code later:
- Phones that support eSIM
- eSIM adapter solutions
- Delivery solutions like 9esim
- Other devices or tools that support eSIM
If you have a Chinese iPhone, you still cannot natively add an eSIM, but you can continue to use adapter or delivery solutions.
Preparation before starting
You need to prepare 5 things.
- A computer
Windows is recommended. This process relies on Android emulators, Root, Magisk, and LSPosed. The success rate is higher on Windows, and it's easier to troubleshoot.
- A giffgaff account
If you don't have an account, register one first. If you want to use a referral link, you can use this:
Get your giffgaff SIM here, with a reward when you join.
- A valid payment method
You will need it later to buy/top up the giffgaff eSIM.
- A stable overseas network
Especially if you use 9esim to deliver the eSIM later, it is recommended to use a global UK node. Don't just use a browser proxy; ensure the emulator/delivery tool also uses the same network environment.
- giffgaff toolkit
Toolkit download:
→ http://mega.nz/file/XAEhkDxI
Decryption key:
→ YuHRzhbB_W15NB1J9DFt-y1LaQrCRZxV5UBPKnY2fLg
The toolkit includes these items:
- MuMu Emulator: Creates an Android phone environment on your computer
- Magisk: Provides Root/module capabilities
- LSPosed: Allows the Hook module to act on specific Apps
- manager.apk: LSPosed manager entry point
- HookEuicc: Makes giffgaff recognize that the device supports eSIM
- Via Browser: More stable for handling login/jumps
- giffgaff App: To buy eSIM and get the activation code

Security reminder:
This solution involves Root and Hook, which is not the official recommended path. Do not save your main account, important privacy, or long-term bank card information in the emulator.
Step 1: Install MuMu Emulator
First, unzip the toolkit. Find the MuMu installer and run it. During installation, it will download about 900MB of system files. After installation, open MuMu. If the interface is not in Chinese, change the language to Chinese first to avoid many misoperations later.

Acceptance criteria for this stage:
→ MuMu can open normally
→ Can enter the emulator management interface
Don't rush to install giffgaff. The real key is whether this Android device has Root, a writable system disk, and module capabilities.
Step 2: Create a new Android device and enable Root
Create a new device in MuMu. It is recommended to choose a portrait phone. After creation, do not start it yet. Go to the device settings first and enable two key options:
→ Disk: Writable system disk
→ Others: Phone Root permission

This step is the foundation. If this is not done well, the following problems will occur:
- Magisk cannot be installed
- LSPosed does not take effect
- HookEuicc does not respond
- giffgaff still prompts that eSIM is not supported
You can understand it like this:
→ Without Root, there is no Hook
→ Without a writable system disk, it's hard to install Magisk
Acceptance criteria for this stage:
→ Device created
→ Writable system disk enabled
→ Root permission enabled
Step 3: Put the toolkit into the emulator
Start the device you just created. First, change the Android system language to Simplified Chinese. Then open 'More Tools' at the top of MuMu and find the shared folder. Copy the toolkit into the shared folder. Go back to the emulator and use the system file manager to open the shared folder, and you will see the toolkit.

If you can't see the toolkit in the emulator, troubleshoot in this order:
→ Did you copy it to the shared folder of the current device?
→ Has the file manager been refreshed?
→ Have you restarted the emulator?
→ Are multiple emulator instances open, and you put it in the wrong directory?
Acceptance criteria for this stage:
→ Toolkit visible in the emulator file manager
→ Installation packages for Magisk / LSPosed / HookEuicc / giffgaff visible
Step 4: Install Magisk
Open the toolkit in the emulator. Install Magisk. When opening it for the first time, the system may pop up a Root authorization. Select:
→ Remember forever
→ Grant Root permission
Then in Magisk, select:
→ Install directly to system
If you don't see this option at first, exit Magisk and reopen it.

After installation, restart the emulator. After restarting, open Magisk again to confirm it runs normally.
Acceptance criteria for this stage:
→ Magisk can open
→ Magisk has Root access
→ Magisk can install modules from local storage
If Magisk cannot be installed, go back to Step 2 and check Root and the writable system disk.
Step 5: Install LSPosed
Open Magisk. Go to:
→ Modules → Install from local
Select the LSPosed framework package from the toolkit. After installation, manually restart the emulator.

There is a common pitfall here: After restarting, the LSPosed entry may not appear in the notification bar. If you don't see the entry, don't just wait. Do this directly:
→ Unzip LSPosed-v1.9.2-7024-zygisk-release.zip
→ Find manager.apk
→ Install manager.apk in the emulator
→ Manually open the LSPosed manager
Acceptance criteria for this stage:
→ LSPosed installed as a Magisk module
→ Emulator restarted
→ LSPosed manager can open
Step 6: Install HookEuicc, Via, and giffgaff
Next, install three applications:
→ HookEuicc
→ Via Browser
→ giffgaff App
Install HookEuicc first. Then open LSPosed:
→ Modules → HookEuicc → Enable module → Check giffgaff in the scope

Note: 'Installing HookEuicc' does not mean 'HookEuicc is effective for giffgaff'. You must satisfy all of the following:
→ HookEuicc is installed
→ HookEuicc is enabled in LSPosed
→ giffgaff is checked in the scope
→ The emulator has been restarted after checking
Then install the Via browser. It is recommended to set Via as the default browser because it is more stable for login, payment, and page jumps. Finally, install the giffgaff App.
Acceptance criteria for this stage:
→ HookEuicc enabled
→ giffgaff checked in HookEuicc scope
→ Via installed and set as default browser
→ giffgaff App installed
→ Emulator restarted
Step 7: Confirm giffgaff's eSIM recognition capability
Restart the emulator. Open the giffgaff App. Enter the eSIM page. If everything before was correct, the original "Phone does not support eSIM" prompt should disappear. This step is the most important acceptance point of the entire process.

If giffgaff still prompts that eSIM is not supported, troubleshoot in this order:
→ Is Root enabled in MuMu?
→ Is the writable system disk selected?
→ Is Magisk installed directly to the system?
→ Is LSPosed installed as a Magisk module?
→ Can the LSPosed manager be opened?
→ Is HookEuicc installed?
→ Is the HookEuicc module switch turned on?
→ Is giffgaff checked in the HookEuicc scope?
→ Was the emulator restarted after checking?
Acceptance criteria for this stage:
→ giffgaff no longer prompts that the device does not support eSIM
→ Can enter the eSIM purchase/activation process
Step 8: Buy giffgaff eSIM
After confirming giffgaff recognizes eSIM, you can buy it. The process is roughly:
→ Open giffgaff App
→ Log in to account
→ Switch to eSIM
→ Select top-up/purchase
→ Select payment method
→ Fill in address
→ Complete payment
→ Get eSIM activation code

If the payment fails, don't immediately go back and reinstall LSPosed. Reaching the payment stage means the device recognition chain is likely working. Payment failure is more likely due to these reasons:
→ Bank card not supported
→ Address mismatch
→ Abnormal network environment
→ giffgaff risk control
→ Account status issues
Acceptance criteria for this stage:
→ Complete purchase/top-up
→ Get giffgaff eSIM activation code
Step 9: Handle eSIM activation code format
A complete eSIM activation code usually looks like this:
→ LPA:1$ServerAddress$ActivationCode
But the activation code given by giffgaff may not have the leading LPA:. If you import the activation code into some eSIM tools or adapters and it prompts a format error, you can try adding it at the front:
→ LPA:

That is, change:
→ 1$ServerAddress$ActivationCode
to:
→ LPA:1$ServerAddress$ActivationCode
Note: Only add the prefix. Do not change the server address. Do not change the activation code body.
Acceptance criteria for this stage:
→ Activation code format recognized by eSIM tools
→ No more format error prompts
Step 10: If using 9esim for delivery, use a global UK node first
This is a pitfall I stepped into myself. I initially used 9esim to deliver the eSIM file, and it kept failing. Later I found out it wasn't a file or eSIM problem, but the network environment was wrong. Suggestion:
→ Use a global UK node before delivery
→ Don't just use a browser proxy
→ Ensure the emulator/delivery tool also uses the UK network

Many technical problems look like broken tools, but actually, the network just isn't right.
Acceptance criteria for this stage:
→ eSIM can be normally delivered/installed to the target solution
Final Troubleshooting Table
If you get stuck, don't just try things randomly from the last step. Trace back along the dependency chain.
- Magisk cannot be installed: Step 2: Root + Writable system disk
- Magisk no permission: Whether Root authorization was set to 'Remember forever'
- LSPosed entry not found: Step 5: Install manager.apk
- giffgaff still prompts no eSIM: Step 6: Whether HookEuicc is enabled and giffgaff is checked
- Payment failure: Payment method, address, account risk control, network environment
- eSIM delivery failure: Step 10: Whether it's a global UK node
- Activation code format error: Step 9: Whether the
LPA:prefix is missing
The essence of the whole method is this chain:
→ Emulator capability
→ → Root
→ → Magisk
→ → LSPosed
→ → HookEuicc
→ → giffgaff recognizes eSIM
→ → Purchase
→ → Activation code format
→ → Network delivery
If you fail at any step, go back to its previous dependency. Don't skip. Skipping steps is the biggest pitfall in these types of tutorials.
One-sentence summary
Chinese iPhones cannot install eSIM directly, but you can use an Android emulator on your computer to get the giffgaff eSIM first. The emulator is not the final place to use the eSIM. The emulator is just a card activation tool. After getting the activation code, the rest is a matter of installation, transfer, and delivery.





