English | 繁體中文
A rootless jailbreak tweak that restores bookmark / favorites sync on older versions of Microsoft Edge for iOS.
Older Edge builds (e.g. 125.0.2535.96) sign in fine but silently stop syncing bookmarks.
The sync endpoint https://edge.microsoft.com/sync/v1/feeds/me/syncEntities is still alive — it just enforces a minimum client version and rejects anything below 133:
Client version not supported. Please upgrade to version 133 or later.
Sign-in goes through a different path and keeps working, so the only visible symptom is "logged in, but bookmarks never sync." Devices stuck on an older iOS (which can no longer install a newer Edge) have no official fix.
The client version is sent in two request headers — User-Agent (Chrome IOS-TABLET 125.0.2535.96 …) and X-AFS-ClientInfo (…; appVer=125.0.2535.96; …) — both derived from a version string compiled into the Edge binary.
On launch the tweak:
- Scans the main executable's
__TEXT,__cstringsection for ana.b.c.dversion string. - If the major version is within the affected range, rewrites it in place with a version that clears the gate (by default the major becomes
199, e.g.125.0.2535.72→199.0.2535.72).
Only genuine Chromium version strings are touched: dotted quads whose parts are all ≤ 255 (i.e. IP addresses such as 127.0.0.1) are ignored, and the new string is never longer than the original, so nothing else shifts. On a build already ≥ 133 it does nothing. The sync request goes through Chromium's C++ network stack (not NSURLSession), so the fix targets the version string at the source rather than hooking Objective-C.
- A rootless jailbreak with ElleKit (e.g. Dopamine)
- PreferenceLoader (for the iOS Settings page; pulled in automatically as a dependency)
- Tweak injection enabled for Edge — if you use Choicy, make sure Edge is not excluded
- Download the
.debfrom Releases. - Install it with Sileo, then respring.
- Force-quit and reopen Edge — bookmarks start syncing.
Requires Theos.
make package FINALPACKAGE=1The .deb is produced under packages/.
No rebuild needed — the tweak ships with an adjustable settings UI, reachable from two places that edit the same values:
- Inside Edge — Settings → bottom, under "About Microsoft Edge" → EdgeSyncFix
- iOS Settings → EdgeSyncFix
Options:
- Enable — master on/off switch.
- Reported version
major.minor.build.patch:- Major — the number the server checks.
0= automatic199, or set your own (usually a 3-digit number > 133). - Minor — fixed at
0. - Build / Patch — leave blank to keep the original values, or set your own.
- Major — the number the server checks.
- Status (Edge panel) — shows the detected original version and the resulting modified version.
The defaults (Major = 0, Build/Patch blank) reproduce the original behaviour: bump the major to 199, keep the rest. The new version's total length must not exceed the original (e.g. 125.0.2535.72 is 13 characters); longer values are ignored. Changes take effect after you fully quit and relaunch Edge. The UI follows your system language (English / Traditional Chinese).
- No effect? First check that tweak injection is enabled for Edge (the most common cause).
- Confirm it's working: open the EdgeSyncFix settings (inside Edge, under "About") and check the Status rows — "Modified version" should read e.g.
199.0.…. - Deeper check: open Console.app, filter by process
Edge, and look for[EdgeSyncFix]log lines on launch.
- Targets only old builds below the version gate; on anything else it is a harmless no-op.
- Filters on bundle id
com.microsoft.msedge/ executableEdge. - The reported version is changed only for outgoing sync requests' purposes; if you ever update Edge past the gate, sync works natively and this tweak stays inert.
This is a personal interoperability fix to keep an already-purchased, already-installed app working for its owner. It is not affiliated with or endorsed by Microsoft. "Microsoft Edge" is a trademark of Microsoft Corporation. Use at your own risk.
MIT © Yuie3