{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":""},{"location":"#welcome","title":"Welcome","text":"

This mkdocs instance includes all documentation related to the terms of Love Live game hacking. I'd like to keep all the important information in one place for easy access and easy contribution for other languages.

This repo for the documentation here is open source, so please make your edits there:

git clone git@codeberg.org:carette/ll-hax-docs.git

https://codeberg.org/carette/ll-hax-docs

DM me on Discord if you need it to be updated (the public instance).

"},{"location":"#notable_users","title":"Notable Users","text":"

Below is a list of notable users who have made contributions ranging from a few helpful messages to entire archival projects of games. This list is not in any particular order. If you would like your name removed, added or updated in anyway (as I've likely forgotten or made a mistake), please make a pull request.

"},{"location":"about/","title":"About","text":""},{"location":"about/#about","title":"About","text":"

LL Hax is a community created by Caret. The sole purpose of creating this community was to take notes and do research on hacking the SIFAC game. Then when SIF was getting EoS, Caret made sure that the community could be used for working on that, which followed SIFAS.

Currently, the LL Hax community resides in a cozy discord server, but Caret also set up a matrix server as a back up, just in case (desipte unlikely-ness).

"},{"location":"about/#discord_server","title":"Discord Server","text":"

https://discord.gg/VnhnvdW8CG

"},{"location":"about/#matrix_server","title":"Matrix Server","text":"

Matrix is a decentralized messaging system that enables secure communication and collaboration across platforms.

https://matrix.to/#/#ll-hax:m.sif.moe

Check out a list of clients here: https://matrix.org/ecosystem/clients/

"},{"location":"pugu/","title":"Puchiguru","text":""},{"location":"pugu/#puchiguru","title":"Puchiguru","text":"

Puchiguru Love Live! (\u3077\u3061\u3050\u308b\u30e9\u30d6\u30e9\u30a4\u30d6\uff01 Puchiguru Rabu raibu!) was a game released for iOS and Android, based on the Love Live! franchise. It was developed and published by Pokelabo, Inc. and was released on April 24, 2018 for both iOS and Android devices. The game's service was terminated on May 31, 2019.^1

Puchiguru (as of 2023) has a private server hosted by CursedBlackCat.

"},{"location":"pugu/#discord","title":"Discord","text":"

https://discord.gg/S64Yryk

(Copied from the Discord)

Private server APK: https://pokenesos.com/

IOS Method:

https://pokenesos.com/ios

(Copied from Reddit by CursedBlackCat)

Puchiguru download links for Android and iOS! iOS Link

iOS App Store Download Link Android Links

Android Google Play Download Link

Android APK Download Link (APKpure)

Android QooApp Link

Please note that you will not be able to play the game until the server goes live at 12PM noon on April 24, JST. A countdown timer until then can be found here.

"},{"location":"sif/","title":"SIF - Introduction","text":"

(the following was copied from the fandom wiki) Love Live! School idol festival (\u30e9\u30d6\u30e9\u30a4\u30d6\uff01\u30b9\u30af\u30fc\u30eb\u30a2\u30a4\u30c9\u30eb\u30d5\u30a7\u30b9\u30c6\u30a3\u30d0\u30eb Rabu raibu! Suk\u016bru Aidoru Fesutibaru, LLSIF) was a rhythm game released for iOS and Android, based on the Love Live! franchise. It was published by Bushiroad and developed by KLab Inc. and was released on April 16, 2013 for iOS and June 6, 2013 for Android devices.

An English version was released on May 12, 2014 under the title \"School Idol Festival\" at version 1.6. A Taiwanese version was released on May 22, 2014 under Mobimon Inc. at version 1.2. A Chinese version was released on June 12, 2014 under MariyGames at version 1.0. A Korean version was released on July 1, 2014 under NHN Entertainment Corp. at version 1.1. The Korean version was shut down and merged with the Global version on August 10, 2016. The Traditional Chinese version was shut down and merged with the Global version as of May 17, 2017. The Japanese Version was merged with the Global Version on June 10, 2021 and the Korean version & Traditional Chinese options was removed.

An arcade version was announced to be in production on November 27, 2015 and was made available for play on December 6, 2016. A new game titled Love Live! School Idol Festival ALL STARS was announced to be in production on September 21, 2017, and was released on September 26, 2019. Both games will continue to run concurrently alongside each other.

A successor to the game Love Live! School idol festival 2 MIRACLE LIVE! was announced on September 25, 2022, also featuring Nijigasaki High School Idol Club and Liella!.

On January 31, 2023, it was announced that the game's service would be shut down on March 31, 2023. [^1]

Looking to setup a private server? Continue onto Private Servers.

"},{"location":"sif/apk-patching/","title":"Patching the apk","text":"

These steps aren't needed unless you want to host your server somewhere other than the same device, so either on a seperate server/computer.

Prerequisites: - apktool - libhonoka - zipalign (part of the android sdk) - apksigner (part of the android sdk) - A keystore. For your convinience you can download this keystore with the password 123456.

  1. Download the modified lovelive sif apk (jp)
  2. Run apktool d lovelive-community.apk to decompile the apk.
  3. Unzip config/server_info.json from assets/AppAssets.zip.
  4. Use libhonoka to decrypt server_info.json. (honoka2 server_info.json)
  5. Edit the json file to point to your server.
  6. Re-encrypt the json file by running honoka2 -e -j server_info.json.
  7. Replace the assets/AppAssets.zip/config/server_info.json file with the new one you patched.
  8. Get the md5sum of AppAssets.zip and replace assets/version with the new md5sum.
  9. Run apktool b lovelive-community to re-build the apk.
  10. Run zipalign -f 4 lovelive-community/dist/<apk name> LLSIF_patched.apk.
  11. Sign the apk by running apksigner sign -ks sifkey.keystore LLSIF_patched.apk.

Assuming you did it correctly, your newly signed apk is ready to install and run.

"},{"location":"sif/ipa-patching/","title":"Patching the ipa","text":"

These steps are required for iOS users looking to play sif.

Prerequisites: - linux/macos/wsl2 - libhonoka

  1. Download the modified lovelive sif ipa
  2. Run unzip Application.ipa to unzip the app.
  3. Use libhonoka to decrypt server_info.json. (honoka2 server_info.json) located at Payload\\LoveLive.app\\ProjectResources\\config\\
  4. Edit the json file to point to your server.
  5. Re-encrypt the json file by running honoka2 -e -j server_info.json.
  6. Run zip -qr \"Application.resigned.ipa\" Payload to re-zip the ipa.
  7. Use sideloadly to install the ipa.

Assuming you did it correctly, you should be able to open the app and play sif.

"},{"location":"sif/private-servers/","title":"Private (self hostable) servers","text":"

Special thanks to AuahDark and hentaku for being the gods that carried us this far. If it wasn't for these two (and many others in the community), we would not have the game to play anymore!

Currently there are a few methods of playing SIF in a semi-online state, but you are the hoster of this server. There are however public CDN servers (hosting the game files like musics and story files). This is also self-hostable but there is no written guide for it at the moment.

"},{"location":"sif/private-servers/#setup_for_android","title":"Setup for Android","text":"

Retrieve the APK file. There are many locations for this, but the main requirement is that it's patched to work with the server we'll be setting up. Try getting it at the locations below:

The differences of the ones above are JP and Global. Global has the following done to it:

Note: It does NOT contain patch to neutralize X-Message-Sign check. If you can't get XMS verification working, you need to patch it yourself. Well, you should make your private server generates correct XMS though. Note2: It's recommended to launch the game in English for the first time. Otherwise, when you launch the game in Japanese for the first time, switching to English will erase all your game data (excluding your account). This logic is in the Lua script of the game. Help on neutralizing this behavior is welcome.

How to generate X-Message-Sign: - NPPS4 - LLSIF@Home

After the APK is retrieved and installed, then you should install the private server.

"},{"location":"sif/private-servers/#local_server_using_llsifhome","title":"Local server using LLSIF@Home","text":"
  1. Install Termux (I recommend to download from F-Droid, direct link for latest release atm) and open it. Do not download from google play. Termux on google play is outdated and will not work.
  2. Run this command(s) inside of Termux: curl http://ll.sif.moe/android | bash OR (if the command above fails do the commands below) wget http://ll.sif.moe/android bash android (curl is broken currently, this will be one command if curl is fixed)
  3. After it is done and it shows you the link to the discord/matrix server. Enter exit and re-launch termux.
  4. You can run runserver to start the private server.
  5. After this is done, you should be able to launch the game and it should just work. Message in the discord or matrix if help is needed.
"},{"location":"sif/private-servers/#local_server_using_npps4","title":"Local server using NPPS4","text":""},{"location":"sifac/","title":"SIFAC","text":""},{"location":"sifac/#sifac","title":"SIFAC","text":"

Love Live! School idol festival ~after school ACTIVITY~ (\u30e9\u30d6\u30e9\u30a4\u30d6\uff01\u30b9\u30af\u30fc\u30eb\u30a2\u30a4\u30c9\u30eb\u30d5\u30a7\u30b9\u30c6\u30a3\u30d0\u30eb ~after school ACTIVITY~) is an arcade version of Love Live! School idol festival. It was first announced to be in production on November 27, 2015 and was made available for play on December 6, 2016.

Aqours was first announced to be added to the game on October 20, 2017. Aqours was added to the game with the Love Live! School Idol Festival: After School Activity Next Stage update on December 6, 2018. It was announced on October 26, 2020 that the game will receive a final update on November 10, 2020. No new songs or cards will be added passed that point, essentially ending support for the arcade version.

On October 10th 2020, it was announced that a port to the Playstation 4, titled Love Live! School idol festival ~after school ACTIVITY~ WaiWai! Home Meeting!! was in development. This version of the game was also announced with English language support, notably being the first iteration of the game to be released outside of Japan and in another language. It was released worldwide on March 24th 2021.

"},{"location":"sifac/#how_to_play","title":"How to Play","text":"

Obtaining the game files for this is gray area due to the copyright restriction playing an old arcade game entails. If you agree with me, you'd think this is total BS and want to play things that are considered dead or EoS even after the matter. Archival and preservation are the main motivators here, not money or business!

  1. I do not suggest looking on a certain site called nyaa.si or of similar origin as it will contain the borderline illegal method of getting the game
  2. Once the game files are obtained. (From a dump of the arcade machine or of other methods) extract them or decrypt the virtual hard disk (ask around for help if you need this method).
  3. The binary you want to run will be ll3.exe, but don't run it yet! There are some command line arguments that you can run it with to change how it acts:
"},{"location":"sifac/#cli_arguments","title":"CLI Arguments","text":"

-highquality: Runs the game with higher quality graphics. Not really sure if this makes a huge difference or not.

-centralmode: Enables a specific game mode designed for the gacha version, where players obtain randomized virtual items.

-windowmode or -singlemode: Runs the game in a resizable window instead of full-screen mode, useful for debugging or testing.

-sh (screen height): Sets the desired vertical size or resolution of the game window.

-sw (screen width): Sets the desired horizontal size or resolution of the game window.

-wx: Controls the horizontal position of the game window, specifying where the left edge of the window will be positioned.

-wy: Controls the vertical position of the game window, specifying where the top edge of the window will be positioned.

"},{"location":"sifac/#running_the_game","title":"Running The game","text":""},{"location":"sifac/#offline_mode","title":"Offline Mode","text":"
  1. Once you've setup a .bat script in that directory to run the game, open it. Example below:

    bat ll3.exe -singlemode -sw 1920 -sh 1080 -highquality

  2. Launch the batch file and the game should open. Ensure you have the correct patched file(s) for the functionality you want to unlock. By default, the game will be capable of running in 'Free Play' mode (activate through the test configuration page). This allows for some gameplay (play up to a certain amount of songs per session, not all songs are unlocked). The machine can scan cards if a user has them. From my understanding, it doesn't need a network to do this.
"},{"location":"sifac/#online_mode_currently_being_worked_on","title":"Online Mode (currently being worked on)","text":"

For online mode, you will need some more files (which I don't believe are easy to get via the site you should not go to). Here is a download link for this file structure:

../files/system.zip

Next, make a D:\\ drive (you can partition your C:\\ drive) and directory to have the following file tree:

(Assume this is under the `D:\\` root)\n\u251c\u2500\u2500 system\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 CmdFile\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 log\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 Log.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 DUA\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 data\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 decrypt\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 download\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 event\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 news\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 1524476664.png\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 1554282603.png\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 unpack\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 work\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 option.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Service\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 NesysService.exe\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 update.log\n

(The most important file is the NesysService.exe as this is what the game uses to call between the game server and the game)

After that step, edit your arcade machine's hosts file:

Usually under: C:\\Windows\\System32\\drivers\\etc\\hosts

127.0.0.1 cert.nesys.jp\n127.0.0.1 cert3.nesys.jp\n127.0.0.1 data.nesys.jp\n127.0.0.1 proxy.nesys.jp\n127.0.0.1 nesys.taito.co.jp\n127.0.0.1 fjm170920zero.nesica.net\n

MAKE SURE NOT TO ADD HASHTAGS TO THESE LINES! (If its the same PC, just leave it as 127.0.0.1 if its a different PC on your network, replace it with the IP address)

Once your computer resolves the domains to where ever you host the game server, we need to add some registry entries to enable the NesysService to run.

Run the following file:

../files/runme.reg

Finally, you'll need to make nesys an actual Windows service (one that you would find in services.msc). Download and run this command to add it (assuming your service directory is found in D:\\). This is all tested for D:\\.

../files/nesys.bat

If you don't want to create a service, you're also able to run NesysService.exe in powershell or cmd. Just follow these steps:

If it outputs the following then you're good to go!

If it outputs something else, then you didn't install the registry values correctly!

(todo, add a picture here as an example)

"},{"location":"sifac/#certificates","title":"Certificates","text":"

The last step to this would be adding certificates. It is not an easy process, but asesidaa made a script that should do it for you.

You can find the script to install the scripts in here: https://github.com/asesidaa/LLServer/tree/master/LLServer/Certificates

Make sure to run the script as administrator. (you might need to enable powershell script running exception)

Enter this command in an administrator powershell window:

set-executionpolicy remotesigned

If the script doesn't work, you just need to have the certs in the 'Personal' store and the 'Root Trust ...' store (I forget the full name). After that you shouldn't get any nesys HTTP errors (it should just connect).

(On Japanese Locale, I think the 'Personal' store is also called the 'My' store)

If the server isn't compiled already, you'll need Visual Studio Community edition, link for easy access here. Make sure you set it up with basic .NET functionality. (It should install the things it needs if you don't select the right one so don't worry too much).

Then if you haven't already, download the LLServer repo: https://github.com/asesidaa/LLServer/archive/refs/heads/master.zip

To run that, all you need to do is open the .sln file in Visual Studio. Then click the green HTTPS button!

"},{"location":"sifac/#network_interfaces","title":"Network Interfaces","text":"

NesysService will require you to have a single interface enabled (and the other ones disabled) in order for it to connect correctly. Make sure you only have one network interface enabled like the picture below:

"},{"location":"sifac/#patched_binary","title":"Patched Binary","text":"

Lastly you will need the patched binary with the correct public key. This key is used to confirm that it's talking to the right server.

Download it here:

../files/ll3.exe

FYI, you will need to replace the original binary with this one.

Please message @caretchara on the Discord if anything here needs changes!

"},{"location":"sifas/","title":"SIFAS - Introduction","text":"

(the following was copied from the fandom wiki)

Love Live! School Idol Festival ALL STARS (\u30e9\u30d6\u30e9\u30a4\u30d6\uff01\u30b9\u30af\u30fc\u30eb\u30a2\u30a4\u30c9\u30eb\u30d5\u30a7\u30b9\u30c6\u30a3\u30d0\u30eb ALL STARS Rabu raibu! Suk\u016bru Aidoru Fesutibaru ALL STARS) was a rhythm action game developed for mobile platforms, based on the Love Live! and related franchises. It is published by Bushiroad and developed by KLab Inc., and was released on September 26, 2019. It was first announced at Tokyo Game Show 2017 on September 21, 2017. Prior to the announcement, it was first introduced and teased on March 30, 2017 as the PERFECT Dream Project in conjunction with SIF's 4th year anniversary. Love Live! School Idol Festival ALL STARS was designed with \"the greatest, best idol game\" as its concept. Characters from \u03bc\u2019s, Aqours and Nijigasaki High School Idol Club appear within this game.

On April 30, 2023, it was announced that the game's service would be shut down on June 30, 2023.

"},{"location":"sifas/#some_random_forewords","title":"Some random forewords","text":"

SIFAS, whether you liked it or not, was unjustly killed in favor of a bad \"sequel\". SIFAS die and bring with it things like fully animated navigator, stories, costume, and of course the main selling point of the game - 3DMV. With SIFAS gone, the only way to officially watch 3DMV is through the Link Live app (doesn't have other groups), or through some metaverse VR stuff that you have to pay for (per concert).

Luckily for us, the community managed to preserve most if not all of the beloved aspects of the game. Thanks to various community members, there are works done and being done so that with a bit of tinkering, you can install and play SIFAS.

Wanting to setup your own local server? Check Easy install.

Wanting to learn more and setup your own local server? check Private Server

"},{"location":"sifas/apk-patching/","title":"Patching the apk","text":"

The original 3.12 clients are designed to only serve as a EOS notice. Howerver, the functionalities are still (mostly) there, so we can patch it to work.

This docs will outline the necessary steps and how to do them, should you need to make your own clients. This docs assume we start with a stock clients. You can get these by dumping the app from Google Playstore or from other apk distribution sites.

"},{"location":"sifas/apk-patching/#patching_android_binary","title":"Patching android binary","text":"

Note that some of these steps will not be necessary depending on what you started with and what you want to do.

Also note that some commands might become outdated after the tools are updated. If this is the case, try getting the specific version used or try to adapt the command yourself.

"},{"location":"sifas/apk-patching/#unpacking_the_apk","title":"Unpacking the apk","text":"

The first step is to unpack the apk so we can modify it.

We will do this with apktool, version 2.9.3 to be exact.

We can either use the wrapper or .jar directly. Of course, java will be necessary.

Open up a terminal (command prompt) in the same directory(folder) as the .apk and run the following:

apktool d LLAS_GL_3.12.0.apk\n

After unpacking, you should have a folder that has the same name as the .apk except for the extension, so LLAS_GL_3.12.0 in our case.

The LLAS_GL_3.12.0.apk is just the file name, here it refer to LLAS, GL, version 3.12.0, but you can rename the apk to pretty much anything.

After that, you can do the relevant modifcation, then finally repack it

"},{"location":"sifas/apk-patching/#packing_the_binary_to_unlock_the_game_features","title":"Packing the binary to unlock the game features","text":"

By default, the game only show the EOS screen. Helpfully for us, the developer left in everything, and the EOS screen is triggered by a check function. To make the game work, we need to patch away this check. Furthermore, some feature are also time-sensitive, so they requires or will require other check later on.

"},{"location":"sifas/apk-patching/#easy_way_out","title":"Easy way out","text":"

You can use these clients that has the binary patch in them, and do the later modification step if necessary.

"},{"location":"sifas/apk-patching/#directly_edit_the_binaries","title":"Directly edit the binaries","text":"

The file we need to patch is libil2cpp.so, we can find it in LLAS_GL_3.12.0/lib/arm64-v8a/ (64 bit), or LLAS_GL_3.12.0/lib/armeabi-v7a/ (32 bit).

We will need to change some specific bytes in the libil2cpp.so file to make the client work.

Tool and the relevant patch for editing is here. Either build the tool and run it with the relevant patch, or make the edit manually using any binary editor.

"},{"location":"sifas/apk-patching/#doing_things_properly","title":"Doing things properly","text":"

If we want to make other binary modification, then we have to understand things properly. This is a very indepth topic, so here is a summary and resource to get started:

"},{"location":"sifas/apk-patching/#patching_the_rsa_key_and_the_server_address","title":"Patching the RSA key and the server address","text":"

The RSA key and server address are stored in the global-metadata.dat of the apk. So in our case, we can find it at LLAS_GL_3.12.0/assets/bin/Data/Managed/Metadata/global-metadata.dat.

In short, this is just the way the game stores string literals, and we need to edit the relevant strings:

"},{"location":"sifas/apk-patching/#using_the_metadata_string_editor_gui","title":"Using the MetaData String Editor GUI","text":"

First download MetaData String Editor.

It is written in C#, and the .exe need Windows to run.

To change the address string, open the tool, then press the top left button and open up the global-metadata.dat file. You can find it in:

You will see many strings. Search for the current values using the textbox at the top. Double click on the string, click on the popup thing, and you will see another window pop up. You can edit that data to any other data. You will need to change: