feat: rewrite the Epic and Amazon store modules (#802)

Both store modules are rewritten from a protocol-level spec: new Rust engines behind a small JNI surface (nativeCall/nativeInstall) and thin Kotlin facades, with the launcher's own user agent.

Epic: sign-in carries over, library, manifest download with byte-exact verification, assembly, uninstall, launch arguments, achievements.
Amazon: sign-in carries over, library, manifest download with per-file hash checks, path checks, executable detection from fuel.json, uninstall.
On-disk install layout is unchanged, so existing installs keep working.

Store game pages now take controller focus on their lead hero action (Install, Uninstall, Pause, Resume, Get, Buy), fall back to Back, and keep D-pad focus inside the page while it covers the library.
This commit is contained in:
The412Banner authored and GitHub committed 2026-10-14 07:20:06 -04:00
1 parent 4ac78621cc
commit 4b17bc9a23
105 files changed
+10975 -13233

No files matched your search

+4 -4
View File
@@ -12,10 +12,10 @@ SYSTEM = set('libc.so libm.so libdl.so liblog.so libandroid.so libz.so libvulkan
'libOpenSLES.so libmediandk.so libcamera2ndk.so libsync.so libneuralnetworks.so'.split())
EXPORTS = ['Java_com_droiddeck_launcher_stores_StoresNative_nativeVersion',
'Java_com_droiddeck_launcher_stores_gog_GogNative_nativeStart',
'Java_com_droiddeck_launcher_stores_epic_EpicNative_nativeStart',
'Java_com_droiddeck_launcher_stores_epic_EpicNative_nativeAssemble',
'Java_com_droiddeck_launcher_stores_epic_EpicNative_nativeStream',
'Java_com_droiddeck_launcher_stores_amazon_AmazonNative_nativeStart']
'Java_com_droiddeck_launcher_stores_epic_EpicNative_nativeCall',
'Java_com_droiddeck_launcher_stores_epic_EpicNative_nativeInstall',
'Java_com_droiddeck_launcher_stores_amazon_AmazonNative_nativeCall',
'Java_com_droiddeck_launcher_stores_amazon_AmazonNative_nativeInstall']
def check(apk, readelf, stores=True):