- Replace obsolete moe.shizuku.permission.SHIZUKU (v11) with the v12+
moe.shizuku.manager.permission.API_V23 in the GlassesApp permission list.
- Document the rikka.shizuku.ShizukuProvider provider block required by
the Shizuku-API guide; without it the binder never arrives.
- Add §5.3.1 'Интеграция с Shizuku' explaining:
* why dev.rikka.shizuku:provider is required (ContentProvider.onCreate
pulls the binder via IPC);
* the activity-side listener pattern (addBinderReceivedListenerSticky +
addRequestPermissionResultListener);
* the RayNeo system launcher race condition (PID 24482
com.ffalconxr.mercury.launcher, UID system, forceStopPackage on
RequestPermissionActivity within ~14ms).
- Add dev.rikka.shizuku:provider:13.1.5 dependency.
- Replace custom ShizukuInitProvider with rikka.shizuku.ShizukuProvider
from the upstream library; configured per Shizuku v12+ docs with
android:permission='android.permission.INTERACT_ACROSS_USERS_FULL'
to protect the provider from ordinary apps.
- Move ShizukuBootstrap.attach() from GlassesVmApp.onCreate to
MainActivity.onCreate (requestPermission needs an Activity context).
- MainActivity now overrides onRequestPermissionsResult and forwards
the grant to ShizukuBootstrap.
- Rewrite ShizukuBootstrap strictly per the Shizuku-API guide:
addBinderReceivedListenerSticky + addRequestPermissionResultListener
in attach(); pingBinder / checkSelfPermission / requestPermission
in refresh().
- Drop ShizukuInitProvider.kt — its job is now done by
rikka.shizuku.ShizukuProvider.onCreate (verified in logcat:
'ShizukuProvider: binder received').
Verified on device ARGF20 (A06B4AB933C4103, API 32): Shizuku dialog
'Allow rayneo-vm to use Shizuku?' opens correctly; binder received
via ShizukuProvider; launcher icon now visible (meta-data fix).