Skip to content

Releases: spygamingog/LeviLamroid

LeviLamroid v1.0.4-beta (Multi-Version Golden RVAs & 1.26.45.1 Reverse Engineering)

Choose a tag to compare

@spygamingog spygamingog released this 20 Oct 14:41

LeviLamroid v1.0.4-beta (Multi-Version Golden RVAs & 1.26.45.1 Reverse Engineering)

🌟 Key Highlights

• Complete Bedrock 1.26.45.1 Android ARM64 Reverse Engineering:

  • 100% mathematically proven RVA mapping using Itanium C++ ABI RTTI and dynamic ELF relocations (.rela.dyn).
  • Resolved all critical engine hooks and virtual table indices for Bedrock 1.26.45.1 in kOffsets_1_26_45_1 (src/mcpe/Offsets.cpp).

• RenderDragon & Graphics Pipeline RVAs:

  • inGamePlayScreenRender: 0x0974066C
  • inGamePlayScreenRenderLevel: 0x0974097C
  • inGamePlayScreenRenderLevelPrep: 0x0973E864
  • gameRendererPrepareFrame: 0x0ADD98DC
  • levelRendererPlayerPreRenderUpdate: 0x0AE27C64
  • whiskerDisplayRender: 0x0AE70680
  • clientNetworkHandlerHandle: 0x09ADC770
  • loopbackPacketSenderSend: 0x0C2E26EC
  • loopbackPacketSenderSendToServer: 0x0C2E26FC
  • tessellatorBegin: 0x0A76E780

• Client, Player & Gameplay Engine RVAs:

  • clientInstanceUpdate: 0x0943EC54 (Slot 25 in ClientInstance vtable)
  • clientInstanceRequestLeaveGame: 0x0943C430
  • localPlayerApplyTurnDelta: 0x0A6430D8
  • playerGetSelectedItem: 0x0F0C67A8
  • containerGetItem: 0x0EF7AA90 (Slot 8 in FillingContainer vtable)
  • containerSetItem: 0x0EF7A3F4 (Slot 13 in FillingContainer vtable)
  • gameModeUseItem: 0x0EF75F40
  • gameModeUseItemOn: 0x0EF72684
  • commandAutocomplete: 0x0E536964

• World & Block Subsystems:

  • blockSourceGetBlock: 0x0F253C8C (Slot 2 in BlockSource vtable 0x122B5FE0)
  • blockSourceGetBrightness: 0x0F253ECC (Slot 5 in BlockSource vtable)
  • blockSourceSetBlock: 0x0F25B948 (Slot 9 in BlockSource vtable)
  • blockTypeRegistryGetInstance: 0x0FB149D8
  • blockTypeRegistryLookupByName: 0x0FB33684
  • blockTypeRegistryLookupByNameImpl: 0x0FB337B0
  • blockTypeRegistryGetDirectAccessBlocks: 0x0FB33BDC
  • blockDefinitionGroupInitBlockTypeFromDefinition: 0x0FB13E64
  • blockDefinitionGroupInitBlockFromDefinition: 0x0FB1429C

• Item & Creative Registry Subsystems:

  • itemRegistryRegisterItem: 0x0F2AC5DC
  • itemRegistryGetItem: 0x0F27CE28
  • itemRegistryPostInitHook: 0x0F2B41D8
  • itemConstructor: 0x0F65A2D4
  • itemVtable: 0x122E1F18 (_ZTV4Item)
  • itemStackVtable: 0x122DE850 (_ZTV9ItemStack)
  • itemInstanceVtable: 0x122DB0F8 (_ZTV12ItemInstance)
  • itemStackCopyCtor: 0x0F63AB48
  • vanillaItemsServerInitCreativeCallback: 0x0F6370A4
  • vanillaItemsApplyHardcodedLegacyIcons: 0x0F62065C
  • creativeItemRegistryReset: 0x0F2BF7BC
  • creativeItemInitializerCtor: 0x0F6D93AC
  • creativeItemInitializerAddCreativeServer: 0x0F6D9374
  • blockItemConstructor: 0x0F6E4D0C
  • blockItemVtable: 0x122F10F0 (_ZTV9BlockItem)
  • blockItemUseOn: 0x0F6E645C (Slot 130 in _ZTV9BlockItem)
  • registerItemAndBlockDefinitions: 0x0F2BF9F0

• Screen Controller & Scene Factory Subsystems:

  • screenControllerRegisterButtonEventHandler: 0x096D9D38
  • screenControllerBindString: 0x096DED60
  • screenControllerBindStringForAnyCollection: 0x096DEF90
  • sceneFactoryCreateUIScene: 0x0975E3B0
  • sceneFactoryCreateScreenAbstract: 0x097609CC
  • clientInstanceSceneFactorySlot: 224
  • clientInstanceSceneStackSlot: 235
  • clientInstanceIsShowingMenuSlot: 150
  • sceneStackPushScreenSlot: 26
  • sceneStackSchedulePopSlot: 27

📦 Packaged Artifacts

  • LeviLamroid-1.0.4-beta-android-arm64.zip: Standalone zip bundle with mod headers, documentation, and dynamic library.
  • levilamroid.levipack: Single-file LeviLauncher mod archive for instant profile deployment.
  • liblevilamroid.so: Raw ARM64 native dynamic shared object.

LeviLamroid v1.0.3-beta (Public Beta Testing)

Choose a tag to compare

@spygamingog spygamingog released this 20 Oct 05:20

LeviLamroid v1.0.3-beta (Public Beta Testing)

⚠️ Technical Disclosure on Reverse Engineering Status

Reverse Engineering Status Notice: Native C++ item & block component graphs (FoodItemComponent, SpawnEggItem, BlockDefinitionGroup state permutation schemas) are NOT completely discovered in Bedrock 1.26.x ARM64 and remain under active reverse engineering. Beta 1.0.3 implements safe hook interception and client command bridges to prevent crashes while deep component reversing progresses.

🌟 Key Highlights & Issue Fixes

  • Issue #1 Resolved: Pause Menu Lifecycle Events & APIs:
    • Added ll::event::PauseMenuOpenEvent and ll::event::PauseMenuCloseEvent in include/ll/api/event/ui/UIEvents.h.
    • Added public C ABI lifecycle functions: ll_ui_on_pause_menu_open(), ll_ui_on_pause_menu_close(), and ll_ui_is_in_pause_menu() in include/ll/api/ui/UI.h.
    • Wired into getTechStackForScreen, ScreenController::handleEvent, and ll_ui_close_screen().
  • Issue #2 Diagnosed & Resolved: ANR & BedrockTools Mod Conflict:
    • Tombstone Diagnosis: Fixed watchdog timeout ANR on Xiaomi HyperOS / Android caused by synchronous heavy pattern scanning in __attribute__((constructor)) during dlopen().
    • Deferred Constructor Init: Moved levilamroid::init() to PLMod_Load / PLGetModRegistration. dlopen() returns instantaneously (<2ms).
    • Cooperative Hook Chaining: Lowered pl_hook priority from 0 to 200 (Normal) to coexist cleanly with BedrockTools (libBedrockTools.so) and libThickBaddieOutline.so.
  • Custom Food & Spawn Egg Mechanics:
    • astral_fruit: Fixed food downcast crash. Added eating effects (+8 HP instant health, saturation, burp/eat audio, drops Astral Core, decrements stack count).
    • cosmic_golem_spawn_egg: Summons physical entity (/summon iron_golem <x> <y> <z> "Cosmic Golem"), plays iron golem/anvil audio, decrements stack count.
  • Custom Block Items Creative Inventory Visibility:
    • Removed "minecraft:block_placer" component which caused Bedrock 1.21+ to discard custom block items during schema validation.
    • Swapped ingestion order so blocks/ is parsed before items/, establishing base block references.
  • Confirmed Bedrock 1.26.52.3 ARM64 Offsets & Slots:
    • Audited and saved all RVAs for SceneFactory (0x09AE87E8, 0x09AEB298), GameMode useItem (0x0F8A2EB0), BlockItem (0x10009DC4), BlockItem vtable (0x13099938), BlockItem useOn (0x1000B300), BlockTypeRegistry (0x103E33A8), and vtable slots in Offsets.h and Offsets.cpp.
  • Complete FUNCTIONS.md Master Reference Rewrite:
    • Completely reorganized all 20 sections into a unified, logically sequenced master reference with 1:1 Table of Contents parity and explicit RE status transparency.
  • GitHub Issue Forms & Community Suggestions:
    • Configured .github/ISSUE_TEMPLATE/suggestion.yml for feature requests/ideas, .github/ISSUE_TEMPLATE/bug_report.yml, and .github/ISSUE_TEMPLATE/config.yml linking to GitHub Discussions "Ideas" category.

LeviLamroid v1.0.2-beta (Public Beta Testing)

Choose a tag to compare

@spygamingog spygamingog released this 17 Oct 16:36

LeviLamroid v1.0.2-beta

Highlights

  • Native C++ Item Subsystem: Direct in-memory item registration via hooked ItemRegistry::registerItem and Item::Item constructor. Fully working categories, stack sizes, offhand/mainhand equipping, and safe BedrockControlBlock reference counting.
  • Dynamic Asset & Texture Pipeline Interception: Intercepts DirectoryPackAccessStrategy and ZipPackAccessStrategy to inject custom textures directly into Bedrock's texture atlas cache (atlas.items and atlas.terrain) with item_texture.json and terrain_texture.json dynamic patching.
  • Creative Inventory Injection: Injects items directly into Bedrock's CreativeItemRegistry alongside vanilla items with proper categories and tabs.
  • Custom Block System Foundation: Reconstructed _ZTV9BlockItem virtual table with custom description ID, texture info, and block placement logic.
  • Client-Side Command Interception: Intercepts Packet ID 77 (CommandRequestPacket) locally in LoopbackPacketSender::send, executing custom client commands without BDS server rejections.
  • Camera Orientation & Gameplay Hooks: Real-time camera locking via LocalPlayer::applyTurnDelta, attack events, item use hooks, and 3D Celestial particle generators.
  • Build System: Sub-second incremental builds with xmake and automated LeviLauncher profile deployment.

LeviLamroid v1.0.1-beta (Multi-Version & Signature Engine Release)

Choose a tag to compare

@spygamingog spygamingog released this 16 Oct 12:28

LeviLamroid v1.0.1-beta (Multi-Version & Signature Engine Release)

Next-generation native C++ mod loader runtime and reverse-engineering hook hub for Minecraft Bedrock Edition (Android ARM64) on LeviLauncher (LeviLaunchroid).


What's Changed in v1.0.1-beta

Added

  • 100% Signature-Based Engine Hooking:
    • All core engine hooks across gameplay (LocalPlayer::move, Player::normalTick, Level::tick, Actor::normalTick, GameMode::destroyBlock, GameMode::useItemOn), rendering (PanoramaRenderer::render, CubemapBackgroundScreen::render, ProgressBarRenderer::render), and UI (StartMenuScreenController::tick, _onOpen, buttons, exit) now use ll::memory::hookSignature.
    • Built-in $O(1)$ fast-path verification checks against known RVAs in under 1 µs, falling back to automated memchr-accelerated ELF .text wildcard scanning for seamless resilience across point updates.
  • Expanded Multi-Version Bedrock Support:
    • Full native support for Minecraft Bedrock 1.26.44.3, 1.26.45.1, 1.26.51.1, and 1.26.52.3 on LeviLauncher (Android ARM64).
    • Centralized version resolution in Offsets.cpp using ELF PT_NOTE segment GNU Build ID hashing with zero version coupling in mod runtime headers.
  • Dynamic Profile & Configuration Discovery:
    • NativeMod::getConfigDir() and packaging automation now dynamically scan all active LeviLauncher profile directories under /sdcard/Android/media/org.levimc.launcher/minecraft/*/mods.
    • Exported ll_mcpe_get_detected_version() for clean dynamic version querying across loaded native mods.

Fixed & Improved

  • Start Menu Lifecycle & Sub-Screen Return Synchronization:
    • Hooked StartMenuScreenController::tick to create a robust, universal lifecycle tracker for the start screen across all Bedrock versions.
    • Correctly defers initial menu entry events and callbacks until Bedrock finishes loading assets and dismisses the loading screen (!isLoading()).
    • Automatically detects when returning/popping back to the start menu from any sub-screen (Play, Settings, Realms, Dressing Room, Marketplace), reliably dispatching onStartMenuOpen() and publishing StartMenuOpenEvent so client mods can seamlessly restore main menu state, background effects, or custom camera orientations.
  • Backbuffer GPU FBO Filtering (hooked_glClear):
    • Post-clear rendering callbacks strictly target the default display framebuffer (GL_FRAMEBUFFER_BINDING == 0), preventing redundant draw cycles and texture corruption during off-screen UI composition passes.
  • Purged Hardcoded Profile Paths:
    • Eliminated legacy hardcoded profile references (Minecraft_1.26.45.1) across mod headers and scripts, ensuring complete version-agnostic profile management.

Installation on LeviLauncher

  1. Download levilamroid.levipack below.
  2. In LeviLauncher (LeviLaunchroid), open Mods -> Import -> Select levilamroid.levipack.
  3. In mods_config.json, ensure LeviLamroid is enabled with load priority "order": 0.
  4. Launch Minecraft!

LeviLamroid v1.0.0-beta (Initial Beta Testing Release)

Choose a tag to compare

@spygamingog spygamingog released this 15 Oct 16:58

LeviLamroid v1.0.0-beta (Initial Beta Testing Release)

Next-generation native C++ mod loader runtime and reverse-engineering hook hub for Minecraft Bedrock Edition (Android ARM64) on LeviLauncher (LeviLaunchroid).

Warning

⚠️ Active Development & Beta Testing Notice

LeviLamroid is currently in its initial Beta Testing Phase (v1.0.0-beta).

  • Certain hooks, functions, or RVAs may still be experimental or unstable across specific minor engine builds.
  • Please report any unexpected behavior or crashes with logcat traces on the official GitHub Issue Tracker.

Release Packages

  • levilamroid.levipack: Direct one-click import package for LeviLauncher (LeviLaunchroid).
  • LeviLamroid-1.0.0-beta-android-arm64.zip: Full standalone zip distribution including liblevilamroid.so and manifest.json.

Key Capabilities

  • Canonical LeviLamina C++ API Parity (namespace ll): Drop-in source parity for Windows LeviLamina client mods (ll::Logger, ll::event::EventBus, ll::mod::NativeMod, ll::command::CommandRegistrar, ll::chrono::GameTickScheduler, ll::form::SimpleForm, ll::service::Bedrock).
  • High-Level Human Engine APIs: ll::ui and ll::render namespaces (ll::ui::forceJsonUIForScreen, ll::ui::onStartMenuOpen, ll::ui::onPlayButtonClicked, ll::render::suppressVanillaBackground, ll::render::registerPostClearCallback, ll::isInWorld(), ll::isMainMenu()), removing raw hex addresses from client mods.
  • Universal Hook Engine: Atomic AArch64 inline detours (ll::memory::hook), relative virtual address hooks (hookRva), and dynamic Global Offset Table (hookGotSlot) relocation.
  • Zero-Latency Multi-Version Engine: Resolves exact ELF GNU Build IDs via dl_iterate_phdr for Bedrock 1.26.52.3 and 1.26.45.1.
  • PreLoader & Lifecycle Compliance: Implements PLGetModRegistration matching LeviLauncher's native 64-bit lifecycle dispatch table.
  • Mobile Touch & HUD Systems: Captures multi-touch coordinates, camera unlocking, hardware controller/keyboard shortcuts, and floating HUD touch buttons (pl::modmenu::registerButton).
  • Resourcepack-Free Audio & Virtual Textures: Direct in-memory FMOD audio playback and in-memory virtual resource pack overriding via InMemoryPackAccessStrategy.
  • In-World Skybox & Tick Safety: Strict state tracking prevents UI and menu background overrides inside active worlds, preserving 100% of vanilla skies and rendering.
  • C++20 Mod Starter Template: Production-ready template available in template/ to start writing native client mods in minutes.

Installation on LeviLauncher

  1. Download levilamroid.levipack below.
  2. In LeviLauncher (LeviLaunchroid), open Mods -> Import -> Select levilamroid.levipack.
  3. In mods_config.json, ensure LeviLamroid is enabled with load priority "order": 0.