-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deblobbify, replacing the system folder with several other components #72
base: master
Are you sure you want to change the base?
Conversation
PoC dependencies that would hypothetically be very helpful and idiomatic for termux/termux-docker#72
Nobody said it is not acceptable. I think nobody tried it. |
system
folder with several other components
system
folder with several other componentsb8bb468
to
0fd0f02
Compare
…st): 9.0.0-r76 PoC dependencies that would hypothetically be very helpful and idiomatic for termux/termux-docker#72
5169f1f
to
3b99512
Compare
…st): 9.0.0-r76 Dependencies for termux/termux-docker#72
baf1842
to
892023d
Compare
I am not sure exactly what exact scenario you are talking about here, or what error it is you were seeing at the time, if you mean a scenario with a But just in case knowing this helps you, there is a way to emulate an ARM processor on an x86 device that is very high in emulation accuracy and behaves almost identically to how real ARM devices behave. When carefully configured, I have never seen Since there are very few good guides on the subject, and almost all other guides skip mentioning lots of necessary steps, leaving everything unexplained and causing most people to feel like |
I will just link this. |
892023d
to
e2fabec
Compare
e2fabec
to
b5465ba
Compare
I experimented with some local tests based on and while it can inherently avoid several of the issues described in that thread, such as the GIR hanging problem, the problems with any other binaries hanging, and the very unfortunately, it cannot overcome the slowness problem that licy183 explained. Additionally, the higher emulation accuracy of I think the only efficient possible future plan on this topic, is to make use of termux-docker, or licy183's tur-avd, or another minimal android container, combined with both the new GitHub ARM runners and with the termux-packages I am already testing the GitHub ARM runner in this PR and it works for example here, I cannot complete the changes to termux-docker without first removing blockers, like fixing the builds of I have tested locally that |
Potential WIP/PoC solution to:
system
directory may be removed from the repo... #60Summary of changes:
system
folder and replaces it with a scriptgenerate.sh
that can regenerate the entiresystem
folder.system
folder, is regenerated using purely a Termux bootstrap.zip
, and.deb
files that can be built using thetermux-packages
build and CD system, then retrieved from thetermux.dev
package host.$TERM
that is set to a value of "xterm
" for theclear
command to have convenient compatibility with most terminal emulators, and this has also been tested with Kitty.com.termux
" into a single instance for slightly more convenient use with custom bootstraps.docker.io/termux/termux-docker:aarch64
image not working onaarch64
devices that happen to have an esoteric "Cortex-A34"-type or similar processor due to the elimination of this 32-bit ARM binary blob, which Cortex-A34-type processors do not have hardware support for executing, unlike "Cortex-A72"-like processors.su
to log in as thesystem
user withinentrypoint.sh
.mksh
andbash
alone to implementsh
, instead of Busybox'ssh
.iputils
based on the source code of AOSP 9.0.0 to implement/system/bin/ping
and/system/bin/ping6
.termux-packages
root/dnsmasq
to implementdnsmasq
, which works after some adjustments to its invocations.personality()
system call permissions issue, a custom build of Docker, which is not required on all ARM devices, but which might be required sometimes, and is required on myarmv7l
device that the--privileged
and--security-opt
arguments both failed to work on./system/etc/ld.config.28.txt
without replacing it with anything, since it does not appear to be necessary for anything in any test so far, but it could be easily re-added if it turns out that there is something that needs it.Tested both locally and in GitHub Actions:
aarch64
: workingx86_64
: workingarm
: working, but in some (not all) cases, the custom build of Docker with modifiedpersonality()
system call permissions is required. It is unknown how to predict whether a device will require that or not, but it is suspected it might have something to do with the host kernel, which is a factor whose properties it is understood tend to vary dramatically between different ARM devices.i686
: workingThe "temporary" things like the
temporary-package-storage
folder and the blobs inside are only necessary for testing while this is not merged:The large amount of changes to the internal components of termux-docker could introduce unpredictable bugs or unexpected behavior that is not present with the current official termux-docker. For that reason, I hope to learn all of the current intended use cases that termux-docker is officially supposed to be used for, so that I can test my implementation with them and add additional software or fixes if needed.
Known Unique Limitations:
-c
argument oftoybox
-su
is currently non-functional. For the current featureset of termux-docker, both before and after this PR, that does not seem to be a major priority because termux-docker currently only supports theroot
user via theentrypoint_root.sh
and not viasu
ortsu
from within the defaultentrypoint.sh
, i.e. mosttermux-packages
root-packages
cannot currently be conveniently tested using termux-docker anyway. If "proper simulation of a rooted device", so to speak, is desirable in the future, to facilitate more convenient testing ofroot-packages
, that could be investigated and handled by a different issue+PR at a later date.TODO:
temporary-package-storage
folder and all references to it (blocked by thebionic-host
PR)