Commit graph

39 commits

Author SHA1 Message Date
0044c2c12a fix: replace speculative Bridgeless hook with RainTweak's verified approach
The RCTInstance/-_loadScriptFromSource: + fake-RCTSource hook from the
previous commit was a plausible guess from RN's public source, but
codeberg.org/raincord/RainTweak - an actively-shipping loader for a sibling
Revenge/Bunny fork - proves both the Bridgeless diagnosis correct (its %ctor
refuses to run below Discord v332, i.e. pre-Bridgeless) and shows a cleaner,
verified mechanism: hook RCTHost/-instance:didInitializeRuntime:, let
Discord's own bundle load untouched via %orig, then evaluate Revenge's
scripts directly against the live JSI runtime instead of faking another
bundle load.

- Add Headers/JSI.h + Sources/JSI.mm (ported from RainTweak's JSI.mm):
  evaluates NSData as JS or Hermes bytecode directly against a
  facebook::jsi::Runtime.
- Add Headers/RCTHost.h declaring the hook target's signature (RN ships no
  public header for this internal class).
- Vendor Headers/jsi/{jsi.h,jsi-inl.h,instrumentation.h} - Meta's MIT-licensed
  JSI headers, which Theos doesn't provide; RainTweak vendors the same files.
- Rewrite Tweak.x -> Tweak.xm (needs C++ for jsi::Runtime&): runRevengeInjection
  now takes a plain data/async execute callback, driven by either the new
  RCTHost+JSI hook or the legacy RCTCxxBridge hook (kept as a no-cost
  fallback), guarded by a didInject flag so only one path actually injects.
- Makefile: build .xm/.mm sources, add -std=c++17 CCFLAGS matching RainTweak.

Still unverified against a real device, but the mechanism itself is no longer
a guess - it's the one running in a comparable, currently-shipping mod.
2026-08-03 10:10:32 -04:00
dba11af542 fix: restore compilability and add Bridgeless-mode injection hook
- Fix BunnyLog compile error in Sideloading.x (leftover from Bunny->Revenge
  rename; only RevengeLog is defined)
- Remove duplicated -loadConfig/+defaultConfig methods in LoaderConfig.m
- Repoint CI's ipa-patcher download at a live mirror with a pinned checksum
  (Cristiandis/ipa-patcher was deleted upstream)
- Add a second injection hook on RCTInstance/-_loadScriptFromSource: for
  React Native's Bridgeless mode, alongside the existing RCTCxxBridge hook.
  Discord's Android build already runs Bridgeless (confirmed via
  revenge-xposed's hook targets) and revenge-bundle now pins RN 0.81, which
  defaults to it - so the legacy bridge hook this tweak relied on was very
  likely dead. Unverified against a real device; see AUDIT.md.

See AUDIT.md for the full iOS-vs-Android comparison and remaining gaps.
2026-08-03 09:46:46 -04:00
pylix
501c161bbe Merge pull request #22 from castdrian/fix-loader-config
fix: loader config oversight
2024-11-15 18:42:04 +01:00
Adrian Castro
3d86fe0f75 fix: fix loader config 2024-11-15 18:36:17 +01:00
Adrian Castro
1c606bfc11 feat: improved sideloading hooks 2024-11-15 18:34:59 +01:00
Cristiandis
3f5723ea20 Change bunny to revenge 2024-11-15 11:45:12 +01:00
Cristiandis
051816832e fix conflicts 2024-11-15 11:37:57 +01:00
Cristiandis
0effa1ae25 rebase from upstream 2024-11-15 09:47:28 +01:00
Adrian Castro
bdf3792be9
feat: finish font impl 2024-11-14 22:50:08 +01:00
Adrian Castro
c568969333
feat: rewrite from orion to logos 2024-11-14 19:33:19 +01:00
Cristiandis
f613fd80a1
fix: update bundle link and add branding changes (#4)
Co-authored-by: Palm <git@palmdevs.me>
2024-10-21 01:01:26 +07:00
Cristiandis
d21801c05e
feat: change to support Revenge
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Palm <git@palmdevs.me>
2024-09-15 04:09:09 +07:00
amsyarasyiq
b0b4838c6f fix(fonts): properly apply fallback fonts
bump version to 0.3.1
2024-05-19 17:41:59 +08:00
amsyarasyiq
01804727b0 chore: Bunnyfication
.replaceAll("Pyoncord", "Bunny") 🧌
2024-05-18 20:53:21 +08:00
pylixonly
60be3dd5d1
feat: support custom fonts (#6)
+ remove legacy LoaderConfig properties
2024-05-18 18:36:12 +08:00
amsyarasyiq
87a567ad6a Pyoncord changes 2024-03-15 08:10:25 +08:00
Vlad Frangu
2e8f987bee
chore: le fail (#6) 2023-11-12 14:19:07 -05:00
Vlad Frangu
533aeeeb51
chore: suggested changes 2023-11-11 21:39:40 +02:00
Vlad Frangu
7a64e54dfe
chore: remove useless import 2023-11-11 21:26:17 +02:00
Vlad Frangu
a9b7068e8d
feat: sideload fixer in tweak 2023-11-11 21:23:30 +02:00
Jack Matthews
3e3b7323e7
[Main] Match Xposed load behavior 2023-05-13 06:31:48 -04:00
Jack Matthews
815d03d03d
[Themes] Hook native colors earlier 2023-05-13 04:05:05 -04:00
Jack Matthews
0619eaa176
[Main] Revert "execute Discord how they wish, execute Vendetta asyncronously"
This reverts commit 18fbf6da49.
2023-05-13 04:03:10 -04:00
Jack Matthews
db8890626e
[Main] Switch to globalThis 2023-05-13 03:12:30 -04:00
Jack Matthews
18fbf6da49
[Main] execute Discord how they wish, execute Vendetta asyncronously 2023-05-13 03:11:58 -04:00
alexia
bc4a0fe7df
fix: properly convert CString to String 2023-04-24 01:36:33 +02:00
alexia
93a23f96da
feat: rootless support 2023-03-24 22:27:27 +01:00
Jack Matthews
b15295bbe0
[Themes] I hate optionals 2023-03-19 13:57:58 -04:00
Jack Matthews
1178b53a27
[Themes] Rough but working code 2023-03-19 04:45:46 -04:00
Jack Matthews
39cec24715
[Themes] Begin work on swizzling DCDThemeColor 2023-03-17 15:48:57 -04:00
Jack Matthews
cbe425108e
[Main] Assign vendetta_theme.json to window 2023-03-15 02:47:40 -04:00
Jack Matthews
af15e80ccd
[Main] Use LoaderConfig data 2023-03-15 02:06:45 -04:00
Jack Matthews
903108f5ee
[LoaderConfig] Init 2023-03-15 02:06:32 -04:00
Jack Matthews
5583ebda52
[Utils] Create & move document directory into it 2023-03-15 01:46:07 -04:00
Jack Matthews
62e40d0ead
[Main] Use Etag to optimize fetching vendetta.js 2023-03-14 03:47:02 -04:00
Jack Matthews
d5ed6d1a2f
[Main] Fetch, save & execute Vendetta 2023-03-13 04:10:30 -04:00
Jack Matthews
e08178a916
[Main] Execute patches 2023-03-12 21:23:45 -04:00
Jack Matthews
f3972d8010
[Main] hook executeApplicationScript 2023-03-12 05:17:05 -04:00
Jack Matthews
ea525c3d56
[Global] Initial commit 2023-03-12 04:19:51 -04:00