-
Notifications
You must be signed in to change notification settings - Fork 6
Description
I forgot to post this issue on github, but this is the current main problem that stops me from continuing blokkok. I prefer to just stop early rather than doing work that'll become worthless in the future since this is a quite of a big project of me and TheClashFruit. If anybody could propose a great working solution that follows with the current module system, I'll happily consider continuing this.
Main problem: In android 10< you can't run binaries that are inside the app's private storage or simply "external binaries" (binaries that are downloaded or binaries that doesn't come with the app itself), this restricts blokkok modules from shipping their own binaries.
Current Ideas we have sorted by favor-ability:
-
By using a wasm to run "native programs"
Pro: No need any changes to the current module system, it will fit to a module without any internal changesCons:
- There isn't any wasm-compiled aapt2 or zipalign, I will need to port them myself, and I have no idea how to do it
- Is slower than native
-
Use hidden android apps (apps that doesn't show in launchers) instead of plain JARs as blokkok modules
Modules can then access include binaries inside them and android will allow them to use them. Also, communication will be done using broadcasts.Credit: Hemanth & Jbk0
Pro: Can't figure out any pros :(
Cons:
- Much more resource heavy
- Will need a complete overhaul of the module system
- More hoops for the user to delete a module (finding the hidden app in settings and uninstalling it)
-
Blokkok will ship its own binaries (what we're currently doing)
Binaries like aapt2 and zipalign will be shipped in blokkok by defaultPro: Very straightforward and simple
Con: Breaks the modular principle of blokkok, modules couldn't add or update the binaries and users will have to update the app to update the binaries (will be better if binaries were packaged inside a module)
-
Lower down the target API to android 10>
Allows us to bypass the restriction. This has been suggested by many people to me, but all I can say is that this is not a good idea for blokkok in long-term. The problem with this approach is that minimum API levels will always rise, and when it got past android 9 or 10, blokkok will just die. This does not solve the issue, but rather just delaying it. -
Virtualization
Yeah, virtualizing a Linux distro to run binaries..Credit: Tarochino
Pro: Binaries can run flawlessly
Con: VERY Resource heavy
If anyone has any new and interesting approaches or have any pros/cons you want to add to this list, please comment on this issue.