From 3edddf250d836d032d144c3263d5774b526322e1 Mon Sep 17 00:00:00 2001 From: 3AvisD Date: Mon, 19 Oct 2026 22:35:19 -0600 Subject: [PATCH 1/6] darling-lol: use an original project mark instead of the game logo The bundled darling-lol.svg/png are the League of Legends logo, a Riot Games trademark, used as the project icon. The README already states that the project is not affiliated with or endorsed by Riot Games, so the icon should not be someone else's mark. Replace both files with an original D monogram. Same file names, so flake.nix and the desktop entry keep working. The mark is provisional and easy to swap for a final one. No functional changes. --- darling-lol.png | Bin 44526 -> 2526 bytes darling-lol.svg | 8 +++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/darling-lol.png b/darling-lol.png index 3f62d293f0406e3af0a86625e003db7207f38768..8369dfc2fceba02251510572909468b568a61ada 100644 GIT binary patch literal 2526 zcmV<42_g20P)}=6G=+cyCE+D96auvtssptn z)Y?i%oOY}oYXwJVoQ}1{jxU3C+HpE|+D_>>T3ggs>T9(QptexUi;Pg9IUvx|gx4eo zBzKpWyUX44IJ*dg3f$i9vzKRczt2qm+kJK?`@Ls(pZz_%03n1BLI@#*5JHLtE9A!f z<7ZyS)0su!m<@@k02%<)0;mGuMR6Gd&?GRv(#k*QxH>07t zb=3_9LQV6S6wd-|uIjdn+%9mwI(oYGUs?vBzP`S^Zz%AD1Xcmys@f(0MKIu*-tvKm z(B7VaE&=e5pEiwW_y&N@QqdmCYOfS>MJ#gg2!=ZVfnei&1{mk3(RSM+IqBhoE$@kh z--Zpgy6Qlv@skYfO*;6)qE>LZDNxsR%dqqSf#CEO2KF}qm3DT3*u@69z><7>0+#a9h*2-n!>TxsXLdczf%sDuuAcSOWL98>p%ZXC}gUCEb2VZNPN%>SR zKWxhZs0lVLqv2gwXbFTGZ&4lq3Hfl|yF?0#OZjc9%UbFxYU&z4B02Wh+AC5}T=LmH z-L3nxE@!1N!R6gb_KFmY;KI@|vlM{y#T>*{BvvR1fKkRpl{~IAAyC)!VcP*PYxsyO zF^-$Timde+C0SdMn1*36;qT8XZBJ$d&L*>J?Q((cBBp;gG&We1i+ZIQFM5q5>?A? zH2;#VM-h8vGX{6InmvV!_*IMpl%mL$&6te3wGSZpt%Wb{EWl;d~!h7vlxCI43F;-rN(QEECZx`Kw0^oqsDH9M_X=~1A!B7Ak68QX5ci zVw?i1@4F4UqX0Ol;$zL`gCw0QjJBXUwXf&aXUE1yI_gXKgJ7;C~pWfykrlkZS9IN)ujd;2fpbO@wYJ09PX= zVlQuoD&7y(LpKzFEC#pjQ+6#-GETqODN_I}3>KL)f)pqTje%|`02UXou)q@fc5>7%D0`{^#gHB-FnzJI^cSwo4vhoK|t0WNp&zjr@Mr%r%M18?tzj*4b#m=&Jj zDAaxTOUe&^=4=$n@KNZ90$^Yal}lSt`@mQC| zp{t?^!1?Ln74QUW;hlVqIlNoGV5TF#_)87$Xw`ORa8U$6^_NF-E-U}Fy0UU7&|QFo z2HtuH$?ylz83n+>a`NcU{si4o02~tg)kX}R=!Whn01hx-K@RvQ2-P&p7@>l;m=*s^y9rzwiotzG@V+L^6i;FWiNAylYqjFl^TV#xK9v55B=y7Qju5zk%U0YymL3 zeR5ty!vg3W0R1MkjW809U1lX!1fUNNFfM?|dF|~x;E=e20I(<=U|jtg7eK{sFcHPp zH=cB=`Iv$LNJs8bj9VY$>i2NlUy({W(#dEomFz=X+h+5B(AVeK(D70G13?UJkXQ@{ z7`Hxue(fPAnkE34lx_BV00BJ<+DTTD@qM-fAWAY@vTus$ND91}ZJDeifrjd_jmN>D z--~X^)pSI=4m2nk2$CEdtSm<~BAKOQW+?zX!`9p0AyQBr>=)LSv!FK;-U~3tMk|O~ z4A|Dw-MU}tvj741n614c1tSDoYjs&m7l9X+tqwNs1TZhZ-6Dm+Ah-8+9lXJbr-2e& ztOA%j%3X^R%RsQN=CXz-mxYskXHJ(_)funNoS*Z)5ywf$r=r~lUv#t{px2-JCM5Rc zx*lStir)08u(u#9o57xSl9CXXMAC}|OjRga%O2N`C(n1|}V6_4;4gFL;F14?^ZyV@K%^eTG{|_MXMUZF)lhcd|LjM^|ssf-1p^dLnc0jVjVAyMvam6Cx o_Z;3fA%qY@2qAt<8 literal 44526 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%0AGM)bB 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 - League of Legends - + + darling-lol + + + From 9651602cbafff1a3f00b783c909e2814852bdbf3 Mon Sep 17 00:00:00 2001 From: 3AvisD Date: Mon, 19 Oct 2026 22:47:59 -0600 Subject: [PATCH 2/6] README, NOTICE: add trademark notice and remove the gameplay clip Consolidate the non-affiliation note into a dedicated Trademarks section, replace the embedded gameplay video with a pointer to the status document, and reword the takedown note as a continuity statement. Describe the compatibility tools as referring to public API names and constants. --- NOTICE.md | 8 +++++++- README.md | 13 ++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/NOTICE.md b/NOTICE.md index 0332431..f9cedba 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -4,4 +4,10 @@ The manifest points to public upstream source repositories. This repository includes source differences and authored integration/research tools, not a copy of the upstream runtime, Apple's SDK binaries or Riot's client/game assets. Build artifacts and local installs are excluded. -Some compatibility tools contain short instruction signatures or API names used to recognize the user's installed client. The client itself is not redistributed. Installation downloads from Riot's distribution service directly. +Some compatibility tools refer to public API names and constants of the user's installed client. The client itself is not redistributed. Installation downloads from Riot's distribution service directly. + +## Trademarks + +League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. +This project is an unofficial compatibility effort and is not affiliated with, endorsed by, or +sponsored by Riot Games. diff --git a/README.md b/README.md index 5be348c..5f34130 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,14 @@ > > Even with all of that, you will probably still get permabanned. > -> **3. Takedown.** Riot may well shut this project down. If that happens, I will publish a fork of Darling containing only the changes made here (none of them breach anything), and release the small script as a gist or similar. +> **3. Continuity.** If this repository is discontinued, the patches remain available under their upstream licenses, and the original integration tooling remains available under GPL-3.0. > > **4. To Riot.** If you are reading this, it means a lot of people want to play your game on Linux and are disappointed that they currently can't. As with macOS for your other games (TFT, Valorant), it feels like Riot doesn't care about a part of its players who have been waiting the longest. If you want to fix this, make LoL Next compatible with Linux, either natively or through a layer like Proton. Yes, that includes your kernel anticheat: Epic Games did it with Easy Anti-Cheat. Follow the trend. This is the year of Linux, and people shouldn't be locked out of a platform or forced to dual boot for a single game. > Since Riot have heard of the repo if you want to contact me you can at darling-lolriot@proton.me (especially if you want to do an official or supported version of league of legends on linux) If someone else wants to contact me know that i'm open to jobs, part-time remote only as a employee and full time remote as a freelancer for a mission -https://github.com/user-attachments/assets/140df3e0-3790-46b6-bab5-578139b84a7c +A short manual ARAM run and the current compatibility status are documented in [docs/STATUS.md](docs/STATUS.md). Experimental source patches and tools for running the **macOS League of Legends client on x86-64 Linux through Darling**. @@ -140,6 +140,13 @@ docs/ setup, testing, status and licensing notes build/ local sources, outputs and rendered tools (ignored) ``` -Darling/upstream components retain their existing licenses; see [third-party notes](NOTICE.md). Original integration tooling is distributed under GPL-3.0; patches retain the licensing of their target files. This project is not affiliated with Riot Games. +Darling/upstream components retain their existing licenses; see [third-party notes](NOTICE.md). Original integration tooling is distributed under GPL-3.0; patches retain the licensing of their target files. + +## Trademarks + +League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. +This project is an unofficial compatibility effort and is not affiliated with, endorsed by, or +sponsored by Riot Games. No game client, game assets, or account data are distributed in this +repository. From 24962cc0560e3838037ffa5c8a2be2dca77fbe1c Mon Sep 17 00:00:00 2001 From: 3AvisD Date: Mon, 19 Oct 2026 22:47:59 -0600 Subject: [PATCH 3/6] flake.nix: mark the desktop entry and package as unofficial Keep the executable names and StartupWMClass; only the user-facing name, comment and descriptions change. --- flake.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index cb1b11f..8d418d8 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "Darling League of Legends - experimental macOS LoL runner on Linux via Darling"; + description = "Unofficial Darling League of Legends - experimental macOS LoL runner on Linux via Darling"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; @@ -229,12 +229,12 @@ cat << 'DESKTOP_EOF' > $out/share/applications/darling-lol.desktop [Desktop Entry] Categories=Game; -Comment=Play League of Legends macOS client on Linux via Darling +Comment=Unofficial League of Legends macOS client compatibility layer for Linux via Darling Exec=darling-lol GenericName=MOBA Game Icon=darling-lol Keywords=League;LoL;Riot;Darling; -Name=League of Legends +Name=League of Legends (unofficial) StartupWMClass=RiotClientServices Terminal=true Type=Application @@ -245,7 +245,7 @@ DESKTOP_EOF ''; meta = with pkgs.lib; { - description = "Tooling and patches to run macOS League of Legends on Linux with Darling"; + description = "Unofficial tooling and patches to run macOS League of Legends on Linux with Darling"; homepage = "https://github.com/lucannez64/darling-lol"; license = licenses.gpl3Only; platforms = [ "x86_64-linux" ]; From 3309f079c70f3af43721c7e6389b7d60d204e1be Mon Sep 17 00:00:00 2001 From: 3AvisD Date: Mon, 19 Oct 2026 22:47:59 -0600 Subject: [PATCH 4/6] patches, tools, docs: use neutral integrity-check wording and state the compatibility scope The patch comments and the Mach-O strings filter named an anti-cheat product. Use neutral wording; the patches still differ only in comments. The platform-identity document now says the overrides are for compatibility, not a bypass of anti-cheat, telemetry, licensing or platform controls. --- docs/PLATFORM_IDENTITY.md | 3 ++- patches/darling.patch | 4 ++-- patches/xnu.patch | 2 +- tools/analyze-macho.sh | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/PLATFORM_IDENTITY.md b/docs/PLATFORM_IDENTITY.md index 5f25849..f8be827 100644 --- a/docs/PLATFORM_IDENTITY.md +++ b/docs/PLATFORM_IDENTITY.md @@ -6,7 +6,8 @@ A prefix without saved identity files keeps the host-derived UUID and `DARLING-` serial; launching never generates an override. Import mode uses values supplied by the user. `--provision` generates synthetic identifiers; it does not issue authentic Apple identities or change CPU, GPU, or security -metadata. +metadata. The overrides are for application compatibility; they are not intended +to bypass anti-cheat, telemetry, licensing, or platform security controls. Preview an OpenCore `config.plist`, a flat GenSMBIOS JSON file, or an existing `darling-smbios.conf` without changing the selected prefix: diff --git a/patches/darling.patch b/patches/darling.patch index ade6461..e0d6b94 100644 --- a/patches/darling.patch +++ b/patches/darling.patch @@ -3326,8 +3326,8 @@ index 8b92b6c50..18a57e359 100644 + * (kAudioUnitErr_InvalidProperty) made it throw its audio graph away and build a new one in a loop, so it never played + * anything. Accepting it harmless: the unit plays on the default device anyway. + * -+ * Only the game process gets this. With the property accepted everywhere, the League client's Vanguard module went to its -+ * error state (MvgState 5, status -101) on every launch (2 of 2, 2026-10-11) and the client could not start a match; ++ * Only the game process gets this. With the property accepted everywhere, the League client's integrity module went to its ++ * error state (state 5, status -101) on every launch (2 of 2, 2026-10-11) and the client could not start a match; + * with the old behaviour it connected again (state 0). */ +static bool callerIsLeagueGame() +{ diff --git a/patches/xnu.patch b/patches/xnu.patch index a02f9cd..2c8f6e2 100644 --- a/patches/xnu.patch +++ b/patches/xnu.patch @@ -5051,7 +5051,7 @@ index b998456..c6281e6 100644 + * (/tmp/rclol-local-semaphores, the former opt-in switch, is now a no-op). While it was on by default in every + * process (2026-10-10 22:22-23:50) LeagueClient died ~85 s after start in 3 of 4 checked launches + * ("mach_msg_overwrite failed -9", then dserver_rpc_interrupt_enter -9: its RPC descriptor had become invalid) and -+ * the user saw Vanguard errors; that mechanism is not understood, so the clients keep the server path. With the ++ * the client logged integrity-check errors; that mechanism is not understood, so the clients keep the server path. With the + * lifetime fixes above the game ran two full matches with it (2026-10-14: the main thread's server waits fell from + * 1.36 to 0.10 ms per frame, 39 to 15 blocks per frame). /tmp/rclol-local-semaphores-all turns it on for every + * process (probe tests). Decided once per process and logged diff --git a/tools/analyze-macho.sh b/tools/analyze-macho.sh index 8f8dd1d..d9a8ed1 100755 --- a/tools/analyze-macho.sh +++ b/tools/analyze-macho.sh @@ -10,5 +10,5 @@ OBJDUMP="$(command -v llvm-objdump || true)" file "$BIN" | tee "$OUT/file.txt" [ -n "$OTOOL" ] && { "$OTOOL" -hv "$BIN" > "$OUT/headers.txt" 2>&1; "$OTOOL" -L "$BIN" > "$OUT/linked-libs.txt" 2>&1; echo "wrote headers + linked-libs"; } || echo "no otool/llvm-otool found" [ -n "$OBJDUMP" ] && "$OBJDUMP" --macho --dylibs-used "$BIN" > "$OUT/dylibs.txt" 2>&1 || true -strings -a "$BIN" | grep -iE "Metal|MTL|Vanguard|vgc|CEF|Chromium|RiotClient|NSApplication|LSOpen|CFBundle" | sort -u | head -100 | tee "$OUT/strings-of-interest.txt" +strings -a "$BIN" | grep -iE "Metal|MTL|CEF|Chromium|RiotClient|NSApplication|LSOpen|CFBundle" | sort -u | head -100 | tee "$OUT/strings-of-interest.txt" echo "done -> $OUT/" From 4157d1ed3b874378e3f4e5028d6b1a6e6c53b7ce Mon Sep 17 00:00:00 2001 From: 3AvisD Date: Mon, 19 Oct 2026 23:06:47 -0600 Subject: [PATCH 5/6] docs: add scope and terminology guidance Add docs/COMPLIANCE.md with the project's compatibility scope: no DRM/anti-cheat circumvention, no third-party game assets, and neutral terminology for issues and PRs. Link it from README and NOTICE. --- NOTICE.md | 2 ++ README.md | 3 +++ docs/COMPLIANCE.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 docs/COMPLIANCE.md diff --git a/NOTICE.md b/NOTICE.md index f9cedba..759c3aa 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -11,3 +11,5 @@ Some compatibility tools refer to public API names and constants of the user's i League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. This project is an unofficial compatibility effort and is not affiliated with, endorsed by, or sponsored by Riot Games. + +See [compliance and terminology guidance](docs/COMPLIANCE.md) for scope and review expectations. diff --git a/README.md b/README.md index 5f34130..9176f73 100644 --- a/README.md +++ b/README.md @@ -149,4 +149,7 @@ This project is an unofficial compatibility effort and is not affiliated with, e sponsored by Riot Games. No game client, game assets, or account data are distributed in this repository. +See [compliance and terminology guidance](docs/COMPLIANCE.md) for the project's scope and +review expectations. + diff --git a/docs/COMPLIANCE.md b/docs/COMPLIANCE.md new file mode 100644 index 0000000..7fe57b1 --- /dev/null +++ b/docs/COMPLIANCE.md @@ -0,0 +1,49 @@ +# Scope and compliance guidance + +This project is an unofficial compatibility layer for running the macOS League of Legends +client on Linux through Darling. It is not affiliated with, endorsed by, or sponsored by Riot +Games, Inc. + +## Scope + +- The project is about compatibility: making the client run, render and behave correctly on + Linux. +- It does not aim to circumvent DRM, anti-cheat, licensing, telemetry, or other platform + security controls, and it does not distribute a game client, game assets, or account data. +- Do not describe or present the project as a tool for evading detection, preventing bans, + bypassing DRM, or defeating anti-cheat. Do not promise that an account will not be banned. + +## Terminology + +Prefer accurate compatibility language: + +| Prefer | Avoid | +|---|---| +| compatibility issue, client check, platform identity | detection vector, stealth, evasion, bypass | +| hardware/platform reporting | spoofing, telemetry leak | +| runtime/launcher fix | anti-cheat bypass | + +Technical facts can be described precisely without framing the work as evasion. If a change +touches a client check or a platform identity, say what it does and why it is needed for +compatibility. + +## Assets and third-party material + +- Do not add or link third-party game assets: logos, icons, fonts, screenshots, gameplay + audio/video, client files, game data, or account data. +- Project icons and artwork must be original. Forks must use their own name and icon; see the + trademark notice in `README.md` and `NOTICE.md`. +- Do not commit local prefixes, logs, tokens, captures, or compiled client/runtime binaries. + +## Pull requests and issues + +- Describe the compatibility problem and the fix. Avoid "stealth", "spoof", "evade", + "undetectable", or "unbannable" framing. +- Maintainers may ask for wording changes before merging. This is about keeping the project's + scope accurate, not about hiding technical details. +- Contributions that add third-party assets or present the project as a DRM/anti-cheat + circumvention tool are out of scope for this repository. + +## Note + +This document describes project scope and review expectations. It is not legal advice. From ef36caf35c5cc148aecaa70b18072cfc5d21dac2 Mon Sep 17 00:00:00 2001 From: lucannez64 <58551020+lucannez64@users.noreply.github.com> Date: Tue, 20 Oct 2026 11:52:23 +0200 Subject: [PATCH 6/6] Fix Mach-O analysis with no matching strings --- tools/analyze-macho.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/analyze-macho.sh b/tools/analyze-macho.sh index d9a8ed1..22932fd 100755 --- a/tools/analyze-macho.sh +++ b/tools/analyze-macho.sh @@ -10,5 +10,5 @@ OBJDUMP="$(command -v llvm-objdump || true)" file "$BIN" | tee "$OUT/file.txt" [ -n "$OTOOL" ] && { "$OTOOL" -hv "$BIN" > "$OUT/headers.txt" 2>&1; "$OTOOL" -L "$BIN" > "$OUT/linked-libs.txt" 2>&1; echo "wrote headers + linked-libs"; } || echo "no otool/llvm-otool found" [ -n "$OBJDUMP" ] && "$OBJDUMP" --macho --dylibs-used "$BIN" > "$OUT/dylibs.txt" 2>&1 || true -strings -a "$BIN" | grep -iE "Metal|MTL|CEF|Chromium|RiotClient|NSApplication|LSOpen|CFBundle" | sort -u | head -100 | tee "$OUT/strings-of-interest.txt" +strings -a "$BIN" | { grep -iE "Metal|MTL|CEF|Chromium|RiotClient|NSApplication|LSOpen|CFBundle" || test "$?" -eq 1; } | sort -u | head -100 | tee "$OUT/strings-of-interest.txt" echo "done -> $OUT/"