You can read more about the changes and the parameters on Android Backup and Restore Tools
The rew release can be downloaded directly from my download area
This zip file contains both versions, i.e. the java based OS-independent version as well as the Linux-based *sh based version. Both versions offer the same functionality.
Please not: Starting from now on there will be no longer the separated script-only-zip!
]]>The rew release can be downloaded directly from my download area
This zip file contains both versions, i.e. the java based OS-independent version as well as the Linux-based *sh based version. Both versions offer the same functionality.
]]>If you are interested in installing you find the packages needed on my download area
Installation is quite easy, but a bit tricky:
To fix this, I built a lightweight vendor daemon and loopback socket bridge for custom LineageOS builds that supplies USB power strictly on-demand when transmitting IR codes.
Whenever an OTG accessory is connected, Android assumes it needs continuous power. Even when the phone is sitting in your pocket with the screen off, the dongle's internal microcontroller, 38 kHz carrier oscillator, and status LEDs remain fully active.
Because regular Android apps run inside the unprivileged app sandbox (untrusted_app), they have zero access to /sys/class/typec/ or regulator sysfs nodes due to standard Linux permissions (root:root) and strict SELinux constraints (neverallow untrusted_app sysfs:file write).
Rather than heavily modifying frameworks/base with custom Binder/AIDL interfaces—which breaks cross-version portability—I implemented an init-level vendor daemon (ir_dongle_power_monitor.sh) confined under a dedicated SELinux domain (elk_usb_suspend):
127.0.0.1:19850): Uses toybox nc to accept state commands (1 / 0) from unprivileged client apps without requiring root privileges or system signature permissions./sys/class/typec/*/port_type between dual (supplying 5V boost) and sink (cutting the power rail completely), while cleanly binding and unbinding the USB driver to avoid bus hangs.045c:* and Tiqiaa/ZaZa 10c4:8468), leaving regular USB peripherals untouched.I’ve documented the full architecture, init service configuration, SELinux policy, and signaling flow on the project page:
👉 Read the Full Project Overview
I've also opened an upstream RFC at GitHub Issue #121 (android-ir-blaster) proposing client-side socket triggers for the official app, alongside a companion Magisk/KernelSU module so rooted stock users can use the bridge without flashing custom ROMs.
]]>You can find the links to the downloads on XDA and the sources on my github repository
You can also download directly from my download area by selecting the rom image you need. The "mg" files are intended for people using MicroG while the others are compatible to flash the GApps package.
]]>If you are interested in installing you find the packages needed on my download area
Installation is quite easy, but a bit tricky:
In this post, I want to share a quick update on the latest AI improvements and what's happening under the hood.
What’s New in the Latest Update
The main AI opponent in the Android app has received a major upgrade powered by a brand-new version of the OptimalBaseBoardEvaluator. Here are the key technical enhancements included in the latest build:
Alpha-Beta Engine: Faster and deeper AI calculations with optimized move ordering, allowing the computer to look further ahead without slowing down game performance.
Tapered Board Evaluation: Dynamically adjusts positional weights as the game transitions from the opening into the endgame, leading to significantly improved tactical accuracy and better endgame survivability.
Refined Tactical Safety: Enhanced threat-detection logic for 1-step baseline threats and immediate move opportunities, eliminating previous blind spots.
Everything continues to run 100% locally on your device without relying on any cloud servers, keeping the app lightweight and fast.
Behind the Scenes: Benchmarking Other Evaluators
In addition to the main engine, I have been testing specialized evaluators behind the scenes to benchmark and measure AI performance:
CenterDominanceEvaluator: Focuses heavily on controlling central board space to force more dynamic mid-game scenarios.
SniperTrapEvaluator: Specialized in recognizing long-range control patterns and setting tactical traps.
Note: These additional evaluators are currently strictly used for internal evaluation and benchmarking purposes. They are not yet selectable in the public release, but the insights gained from them directly feed into refining the core AI.
Give it a Try!
If you want to challenge the upgraded AI, make sure to grab the latest version of Malawi on Google Play. If you'd rather analyze moves or play a quick local match with a friend, you can also check out the WebAssembly version (Human vs. Human) directly in your browser on the project page.
As always, feedback on the AI's playstyle and difficulty balance is very welcome!
]]>The rew release can be downloaded directly from my download area
]]>Unfortunately Surdu Pedru who started the port to the Mediapad M5 Thread on XDA announced that he will no longer support the device, so I need to keep it up to date by my own.
Today I read about the severe kernel issue (which affects a whole bunch of system running linux) and decided to fix this issues for my Lineage-20.0 Build 20260708. If you are interested in installing you find the packages needed on my download area
Installation is quite easy, but a bit tricky:
Bringing this pure, strategic battle of wits to modern screens has been a fantastic passion project. To keep it true to the original experience, the app follows a strict fair-play philosophy: the core game is entirely free to play, with absolutely no pay-to-win mechanics or annoying subscriptions.
I've also integrated some powerful new features for advanced players, including a full Board Editor and an Analysis Mode.
Want to see how it looks and learn more about the project?
👉 Check out the full details and get the app here: anddisa.de/malawi
Happy gaming
]]>