This guide recreates the public LunarView development tree on another computer. It never logs in to a BMC and does not transfer credentials, session material, private captures, proprietary JViewer files, or decompiler output.
The repository contains the C++ sources, tests, sanitized research scripts, protocol documentation, build configuration, and public resources. The following machine-local content is deliberately excluded:
build*, compiler output, test logs, and IDE caches;.local/, including the bootstrap-managed vcpkg checkout and built packages;docs/captures/private/and packet/session captures;research/decompiled/,research/third-party/, downloaded JDKs, and decompiler binaries;.env*, profiles, credentials, private keys, JNLP files, and legacy proprietary JAR/JNI artifacts.
These exclusions are intentional. A Git clone must be sufficient to build and test LunarView itself, but it is not a backup mechanism for secrets or third-party/proprietary research inputs.
Install Git, CMake 3.20 or newer, a C++20 compiler, curl, tar, and unzip. Ninja and Python 3 are recommended. Examples:
# macOS with Homebrew
xcode-select --install
brew install cmake ninja git curl
# Debian or Ubuntu
sudo apt-get update
sudo apt-get install build-essential cmake ninja-build git curl zip unzip tar python3Then clone and run the bootstrap:
git clone https://github.com/IlyaBOT/LunarView.git
cd LunarView
./scripts/bootstrap.shInstall Git, CMake 3.20 or newer, PowerShell, and Visual Studio 2022 Build Tools with the Desktop development with C++ workload. Ninja and Python 3 are recommended. From PowerShell:
git clone https://github.com/IlyaBOT/LunarView.git
Set-Location LunarView
Set-ExecutionPolicy -Scope Process Bypass
.\scripts\bootstrap.ps1The default bootstrap mode clones vcpkg at the commit pinned by vcpkg.json
and stores it below .local/vcpkg. vcpkg then builds the pinned dependency
set for the current platform. Both .local/ and the build tree are ignored by
Git and can be recreated at any time.
The scripts configure, build, run all native CTest executables, and run the offline Python research unit tests when Python is available. They do not run live BMC tests.
The default vcpkg mode is the simplest clean-machine path:
./scripts/bootstrap.sh --deps vcpkgAlternative Unix modes are available when dependencies are managed externally:
# Installed curl, libpng, and tinyxml2 11.0.0
./scripts/bootstrap.sh --deps system
# Installed curl/libpng; explicitly download pinned tinyxml2
./scripts/bootstrap.sh --deps fetch
# Fully disconnected; tinyxml2-11.0.0 exists below /path/to/deps
./scripts/bootstrap.sh --deps offline --deps-dir /path/to/depsPowerShell exposes the same choices through -Dependencies and
-DependenciesDirectory. Use --no-tests on Unix or -NoTests on Windows
only when a build-only check is intentional.
On the old computer, review exactly what will be published before committing:
git status --short
git check-ignore -v docs/captures/private research/decompiled .local build
git add .gitattributes .gitignore CMakeLists.txt LICENSE README.md \
docs include res research/scripts research/tests research/tools \
scripts src tests vcpkg.json
git diff --cached --check
git diff --cached --stat
git commit -m "Import LunarView development tree"
git push origin mainNever use git add -f for an ignored capture, JNLP, credential, JViewer archive,
native library, decompiled tree, or downloaded tool. Confirm the staged list
with git status before every push.
On the new computer, clone and bootstrap as shown above. For later updates:
git pull --ff-only
./scripts/bootstrap.shUncommitted and ignored files do not travel through GitHub. Preserve any private research evidence separately in encrypted storage if it is still needed; do not add it to this repository.
The historical JViewer JARs and native libraries are intentionally outside the Git root. A developer reproducing the reverse-engineering work must obtain their own lawful copies and place them outside the LunarView checkout. The tracked protocol documentation and production build do not require those artifacts.
Downloaded decompilers can be recreated from the commands and hashes in
research/tools/README.md. Private runtime
captures cannot and must not be reconstructed from the public repository.