Jun OS Copyright 2026 efficiencyx The source code in this repository is licensed under the Apache License, Version 2.0 (see LICENSE). This NOTICE file is part of that distribution and must travel with any redistributed copy or derivative work (section 4 of the license). ================================================================================ 1. Third-party game assets ================================================================================ The Apache License 2.0 in this repository applies to the source code ONLY. It does NOT apply to the Live2D model, textures, or any other art assets from the game "My Dystopian Robot Girlfriend" (the "Game Assets"). The Game Assets are the property of their original creator. They are NOT included in this repository and are NOT licensed to you by this project. tools/recover_assets.py rebuilds the Game Assets on your own machine from your own legitimately obtained copy of the game. This project does not grant any rights over them; the conditions below describe the uses the original creator has agreed to tolerate. If in doubt, do not do it. ALLOWED - Extracting the Game Assets for personal use with this project. - Copying or transferring the Game Assets to machines, services, or storage you control and that only you can access (e.g. your own PC, home server, a VPS / cloud instance rented by you, a private Git repository with no other collaborators, or personal backups and snapshots), for the purpose of running this project, provided they are used only for PRIVATE hosting as defined in section 2. - Running this project with the Game Assets on a PRIVATE server. NOT ALLOWED - Redistributing the Game Assets, original or modified. "Redistributing" means making them available to any person other than you, or placing them anywhere others can access them, except as described under EXCEPTION below. - Committing or uploading the Game Assets to any repository, fork, release, package, container image, mirror, shared drive, or other location that anyone other than you can access. If such a location later becomes accessible to others (e.g. a private repository made public or shared with a collaborator), you must remove the Game Assets from it first, including from its history. - Running this project with the Game Assets on a PUBLIC server. A web server sends the assets to every client that connects, so serving them publicly counts as redistribution. EXCEPTION Transmission of the Game Assets from a PRIVATE server to its authorized users, solely as required for this project to function, is not considered redistribution. This exception does not allow those users to save, extract, or further share the Game Assets. If you fork this project, keep webapp/assets/ out of your published tree. It is listed in .gitignore for this reason; do not remove that entry. ================================================================================ 2. Private vs. public hosting ================================================================================ A server is PRIVATE only if ALL of the following are true: a) Access is restricted by at least one technical control: - a VPN or private network not reachable from the internet, OR - an authentication layer in front of the app (e.g. reverse proxy auth, SSO), OR - a firewall / WAF / IP allowlist limited to specific addresses; b) No more than 10 people can access it; c) Every person with access is known to you personally; and d) It is not advertised, listed, or shared publicly (including links). Any server that does not meet ALL of the above is PUBLIC. Please respect the wishes of the original creator. ================================================================================ 3. Game lore dataset ================================================================================ tools/lore_dataset.jsonl and the webapp/lore_corpus.txt built from it are question and answer pairs about the story, setting and characters of the game, written from the game's text. They are included with the original creator's permission. They are not Game Assets under section 1, and they are not covered by the Apache License 2.0: the story, setting and characters they describe remain the property of the original creator. ================================================================================ 4. Vendored third-party libraries ================================================================================ webapp/vendor/ contains unmodified copies of libraries that were previously loaded from a CDN, so that Jun OS can run without internet access. Each file remains under its own license, NOT the Apache License 2.0 of this repository: File Library License ------------------------- ------------------------- ---------------------- pixi.min.js pixi.js 6.5.10 MIT cubism4.min.js pixi-live2d-display 0.4.0 MIT marked.umd.js marked 18.1.1 MIT purify.min.js DOMPurify 3.4.17 Apache-2.0 / MPL-2.0 live2dcubismcore.min.js Live2D Cubism Core Live2D Proprietary Software License Live2D Cubism Core is redistributed under the Live2D Proprietary Software License Agreement, which permits bundling it with an application. It is NOT covered by the Apache License 2.0 and may not be relicensed. By using this software you must also comply with that agreement: https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_en.html ================================================================================ 5. Python packages bundled in the Android app ================================================================================ The Android build unpacks these packages from their PyPI source archives, pinned by SHA-256 in android/app/build.gradle.kts, and ships them unmodified inside the APK. Each remains under its own license, NOT the Apache License 2.0 of this repository: Package Version License ------------------------- ------------------------- ---------------------- UnityPy 1.25.4 MIT tpk_ar 0.2.4 MIT ================================================================================ 6. LiteRT-LM in the Android app ================================================================================ Release APKs built with tools/release-apk-local.sh do not use the LiteRT-LM AAR from Maven. They carry a build of LiteRT-LM (Apache License 2.0, https://github.com/google-ai-edge/LiteRT-LM) from upstream commit c30ab949d5605022d2ccf714794e99d5f5effe4c, unmodified, built for arm64-v8a with the Bazel command recorded in that script, next to the prebuilt libraries the same commit ships under prebuilt/android_arm64/ (Apache License 2.0; libwebgpu_dawn.so is Dawn, BSD 3-Clause). That commit is the first with Session.clone(), which the on-device prefix cache needs. Once a Maven release includes it, the APK goes back to the Maven AAR. ================================================================================ 7. JunBridge game mod (bridge/) ================================================================================ bridge/ is a MelonLoader mod for "My Dystopian Robot Girlfriend". Its chat, voice, Jun provider, patches and utilities are adapted from MdrgAiDialog (https://github.com/StLyn4/MdrgAiDialog, Apache License 2.0), with the other providers and the provider picker removed and the sync code added. Those files stay under the Apache License 2.0. The mod links against MelonLoader (Apache License 2.0, https://github.com/LavaGang/MelonLoader), HarmonyX and Il2CppInterop, and against assemblies MelonLoader generates from your own copy of the game. The game assemblies fall under section 1: never commit or publish them. The installers download MelonLoader from its own GitHub releases when you ask for the in-game mod. The native Linux JunBridge.LinuxFix.dll embeds Dobby from https://github.com/Ketlark/Dobby at 642dd93513d890acb7ceb0312b2c1a0a27668cce (derived from https://github.com/jmpews/Dobby, Apache License 2.0). The checked-in patch adds Linux compatibility, disables allocation inside existing code pages and rejects failed relocation before patching the target. The pinned Dobby source supplies safe allocation and x64 far-trampoline relocation. The DLL embeds the Apache license, source/change attribution and TinySTL's BSD-2-Clause notice (Copyright 2012-2018 Matthew Endsley) as JunBridge.LinuxFix.NOTICES.txt; it also writes these notices beside the extracted helper under UserData/JunBridge.LinuxFix/. Build dependencies are fetched by bridge/LinuxFix/build.sh; no game material is needed and the stock MelonLoader bootstrap is not rebuilt or distributed by this build.