Add docs/INTEROPERABILITY.md, an English scope document that describes the project's interoperability and responsible-use practices: what it distributes, how it handles local platform metadata and the MAC/AMFI probe, how it keeps copyright and licence notices, how it avoids access/authentication/integrity shortcuts, how it presents trademarks and handles notices, and the user's responsibility for Riot's terms. Update README, NOTICE, COMPLIANCE and PLATFORM_IDENTITY to link the document and to state the opt-in window-helper and synthetic-identity behaviour accurately. Add CONTRIBUTING with DCO sign-off and a scope checklist. Documentation-only change: no launcher, patch, build or test behaviour changes. Signed-off-by: 3AvisD <[email protected]>
7.4 KiB
Interoperability and compliance scope
This document explains how the project stays within interoperability and responsible-use practices. It is not legal advice. Software, contract and platform rules are fact-specific and differ by country. Consult qualified counsel before distributing, modifying or using this project.
1. Purpose
darling-lol is an unofficial interoperability effort. It applies source
patches to Darling, a free-software
macOS compatibility layer, so that the official macOS Riot client can run on
x86-64 Linux. The user obtains the client from Riot and signs in through Riot's
own client and services.
The project is not a game, a game server, an account service, a launcher for pirated content, or a substitute for Riot's platform. It does not provide Riot accounts, authentication, matchmaking, payments, telemetry or game servers.
2. What we distribute and what we do not
We keep the project on the interoperability side by distributing only:
- source patches for Darling, a free-software compatibility layer;
- original integration, build and test tooling;
- documentation and licence notices.
We do not distribute, bundle, mirror or sublicense:
- the Riot client or game binaries;
- game assets, art, audio, video, fonts or data;
- account databases, tokens or credentials;
- Riot installers or installers for pirated content.
The user obtains the client from Riot and installs it through Riot's own installer. The project does not provide accounts, authentication, matchmaking, payments, telemetry or game servers, and it does not sell the game, a licence, access or priority.
3. Platform identity
Darling needs macOS-like platform metadata. tools/configure-darling-platform.py
can generate synthetic serial numbers, UUIDs and related fields, or import
values supplied by the user, so that the guest environment is internally
consistent.
These values are local compatibility metadata:
- they are not Apple-issued identifiers, credentials or authentication tokens;
- they are not used with Apple services and should not be used to impersonate real hardware;
- they are not sent to Riot as authentication; the official client authenticates through Riot's own flow.
See docs/PLATFORM_IDENTITY.md for the schema, validation rules and warnings.
4. Local sandbox/AMFI probe
Darling has no macOS MAC, Seatbelt or AMFI framework. Chromium/CEF, which the
Riot client embeds, probes ___mac_syscall. An ENOSYS response is treated as
fatal and prevents CEF helper processes from starting. The compatibility layer
therefore reports the local probe as satisfied. The relevant code and comments
are in patches/xnu.patch (mac_syscall.c).
This compatibility shim:
- does not implement a sandbox and does not make the guest secure;
- does not interact with Riot's servers or alter Riot's account, payment or server-side integrity flows;
- does not grant access to Riot's content or services.
Treat the guest as unsandboxed. Do not run untrusted content inside it. This
is a local compatibility limitation, not a claim of security. See
docs/COMPLIANCE.md for the project's terminology and scope guidance.
5. Copyright and licences
We keep the project's copyright and licensing position clear:
- the game, client, code and assets remain Riot's; we do not reproduce, store, distribute or commercialise them;
- we distribute patches to free-software Darling and original tooling, not a copy of the game or the upstream runtime;
- each patch keeps the licence and notices of the upstream file it modifies; original tooling is GPL-3.0-only;
- we keep the upstream licence and attribution notices in the patched files and
describe the project's licensing position in
NOTICE.md; - we do not remove copyright or licence notices from patched files;
- we review good-faith licensing and removal requests.
We do not sell the game, a licence, access or priority. Donations are voluntary and support development of the free tooling; they do not purchase the game or any Riot service.
6. Access, authentication and integrity controls
The project is designed for compatibility, not for defeating access, authentication, payment or integrity controls:
- we do not provide tools or features whose purpose is to defeat those controls;
- we do not forge authentication tokens, session data, account data or server-side integrity attestations;
- we do not proxy or emulate Riot accounts, matchmaking, payments, telemetry or game servers;
- we do not patch Riot's client or game binaries, CEF or anti-cheat;
- we do not automate gameplay input or provide cheats;
- the opt-in close/hide helper only manages local client windows while a match runs; it is off by default and does not change the client, CEF or anti-cheat.
The synthetic platform identity in §3 is local metadata; it is not a credential and is not used to authenticate.
7. User agreements and account risk
Use of the project is at your own risk. You must:
- own a legitimate Riot account and obtain the client from Riot;
- comply with Riot's terms and user agreement;
- not cheat, exploit, automate gameplay or use the project to gain an unfair advantage;
- accept that Riot does not support this environment and may suspend or ban accounts, including accounts used only for testing. Do not use a main or ranked account.
The project does not authorise any violation of Riot's terms. If you do not agree, do not use the project. Account restrictions are a real risk and are documented in the README announcement.
8. Trademarks and presentation
League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. The names are used only to describe the compatibility target (nominative use). The project:
- does not use Riot logos, game art or other Riot brand assets;
- uses an original project mark;
- is not affiliated, endorsed or sponsored by Riot Games;
- asks forks to use their own name and icon and not to imply endorsement.
See NOTICE.md and docs/COMPLIANCE.md.
9. Historical material
Earlier revisions of the repository included a third-party game logo and an embedded gameplay clip. They were removed from the current tree; the current tree uses an original project mark and contains no gameplay media. Git history and third-party forks may still contain those earlier revisions. They are not part of the current project, are not licensed by this project, and should not be reused. The project will review good-faith removal requests.
10. Notices and contact
For a licensing, trademark or interoperability question, contact the maintainer
using the address in README.md, or open an issue in the repository. Include:
- the repository URL, file or commit at issue;
- the right or licence you assert;
- the action you request;
- a way to contact you.
For a formal copyright notice, use the hosting platform's copyright notice process. This document is not a designation of an agent for any platform and does not replace that process.
11. No legal advice and no warranty
This document is a technical and scope statement, not legal advice. The project is provided "as is", without warranty of any kind. Nothing here guarantees that a particular use is lawful in a particular country, that Riot will not restrict an account, or that a court or regulator will accept the project's position. If you need legal certainty, consult a lawyer qualified in your country.