-
Notifications
You must be signed in to change notification settings - Fork 0
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
API 29 example #2
Comments
Android prohibits usage of native code where it can be modified. This restriction is enforced for all applications targeting at Android SDK level 29. Currently Termux targets on SDK 28 and therefore it is not affeced, but will be once we bump used SDK version.
No. It has to be in To place binary into /system you need root.
Assume that binary can be executed only from Nothing dependent on specific Android versions. Just native code must be placed at paths where it should be. The closest implementation to one that will be used for Termux is https://github.com/xeffyr/alpine-term/tree/master/alpine-term-app - this one has 100% Android 10 compatibility (qemu/socat binaries in jni lib dir and data in dynamic $PREFIX).
Such script is not exist. This approach will be the lowest priority target for Termux as soon as proot can be used. |
In my example 400Mb created in
A: This does not apply if the APK already contains everything or? |
Right.
Application cannot modify the system partition which is created by manufacturer and is read-only. User applications are installed only to /data partition.
It will just append a file to APK, which in fact just a zip archive. Then it will be signed with Steps will look like these:
You will need to install termux-bin-wrapper.apk and open it by clicking on icon to start service exposed to Termux. Then
Neither wrapper or script are available or being developed now. That method of executing user binaries has some cons and will never replace proot or direct binary execution. |
Ok, I understood. Probably it will never be developed because you consider the "proot solution" to be "future proof" or should |
Yes, it is.
alpine-term's parts can be used to execute single binaries https://github.com/xeffyr/alpine-term/blob/master/alpine-term-app/app/src/main/java/alpine/term/TerminalService.java#L319 but whole application cannot. |
Stupid question about Q/10/SDK 29: If I wanted to update my Gigaset is missing the "manufacturer update" and in my Huawei the termux app would not work (many others may not) - right?
Ok thanks - so there's no need to adapt termux to the restictions as SDK<29 apps will also work in future releases. So it's just about hypothetical extensions. My example contains only one single binary |
Can you explain what exactly you want to achieve:
Solutions for these 2 cases are different and not comparable. |
Obviously my idea of the SDK=29 adjustment was wrong, since termux works without the binary restiktionen as before on Q-devices. The problem only occurs when the APK-built-process with version 29 is done - right? So comparable to the android-5 branch, this only becomes relevant when the android-7-9 branch is discontinued or if Q extensions are to be used by Termux. Both are not urgent, especially since a termux-sdk=29-version (maybe 1.00) does not exist yet and Q-Update is not yet possible. Also wrong was my idea of the PATH to native lib. If not
All in all, be compatible with future devices and apps, and second, if possible, fix any current issues with it. I do not know if one of your two solution suggestions can fix the bug - probably not - and which of the two would be used in termux-1.00? |
Right.
Nothing to do with packages ! Android 7 branch will be used for Android 10. Problem comes from https://github.com/termux/termux-app/blob/master/app/build.gradle#L18 being set to 29. We will have to do this, otherwise Google will delete app from Play market. Post termux/termux-app#1072 (comment) has the most clear explanation about the problem.
See https://github.com/termux/termux-packages/wiki/Termux-and-Android-10. Embedding in apk has 2 unsolved problems. Until these problems will not be solved, no work on porting Termux to Android 10 will be done. |
Thanks, my own APK are not affected because they are not offered by google play. On the native lib:
I could not access also proot (with termux-chroot to the mpv-x bug I have in dev still made a further test. |
This directory is owned by |
Yes there is Embedding |
No. But I expected that. The normal Android way of obtaining that path is from java code only.
No. |
From the dev team chat yesterday, I understood that the ./lib - way is currently not- tracked but proot. You have created an apk, which I install after re-signing: You could save the 64 Mb in Github - I did not succeed because of the 25 Mb limitation! PID1 ( ReviewI test with the full script s, (packages in ~/u and
Questions about t84 and proot
|
From my tests proot'ed Termux appears to work without issues on Android 10. There maybe problems with things like Termux:API but they will be solved later. Performance is slower under proot by 30-40 % (mostly affects only I/O operations). You will not see differences in usage experience, binaries can be executed in $HOME in same way as pre-Q Android versions.
Nothing. Proot acts as executable loader.
Not a problem while proot is being used.
I don't know. This needs testing. But note that proot may not be stable on some devices.
No. Proot uses You should not execute |
Pleased I discovered @twaik back in dev dialog with fresh ideas.
I understood your answer as saying that proot process libproot.so ( With 30-40% loss, I would have no problem. Now I have the command:
Remains a loss factor of 2 to 3 compared to 7 sec. I have described this as justifiable but have not made any more extensive tests and you said the plugins could be a problem. I want to do that below. Navigator, plugins: widget, API and two X11 (Xwayland)All scripts are included in
ssh seems only possible if The pstree problem above seems to be more complicated. by replacement with Are you interested in further tests? |
Many ideas that's great. There only one problem - who will implement & maintain that ? So far I haven't seen any working proof-of-concept. I'd rather go with lower performance (qemu-system or proot) than with regressions (which may take ages to be solved) bringing Termux back to its early stages.
That's SELinux. Since Android SDK does not mention
Not an error. Just different implementation.
libproot.so is the $PPID now. Proot can't be safely terminated as immediately destroys all child processes. |
Thanks @xeffyr for your answer, a few questions are still open.
API loss factor of 6 times of t82 is a bit too much - can this be improved? I agree with you to avoid regression. So pstree in busybox is a working alternative (like ps before). If @twaik had a working test environment in a manageable time with his ideas, I would like to test them as well.
Unfortunately in my test t84 often came in a mode that only allows restart termux and services. So I've included |
No. Proot intercepts all system calls and changes their arguments, that is core functionality.
My APK is just example with using proot to launch shell. I'm not aware about any compatibility with plugins. I maybe will submit newer version soon, but it will contain other changes needed for Android 10 including dropped shared storage support. |
Now you are: API works slowly, X11 as before (same bugs) and Widget does not work as expected.
That's good - please let me know when the time comes? Once again to one widget (.shortcut):
--- before Addendum to (s)ftp: The ending of the sftp session (Connection closed) does not take place with only-ftp (tcpsvd). However, if process 31767 (above) is ended, a connection can no longer be established. sshd (31842) and tcpsvd are then "zombie processes" and must also be killed and restarted so that a connection is possible again. |
I did a few tests with Ubuntu to possibly fix / work around some of the Xserver bugs. I first installed the packages xterm and nedit there. With the DISPLAY of my PC (Xserver) these also worked fine.
What should the command uu in t84 and its parameters look like here and how could I use the X11/server (PID2+3=Xwayland) there (proot2)? |
This should be done to call proot with different parameters. Proot in my APK is not meant for just
Normally parameters should be same.
Probably |
Thank you @xeffyr - I still have a few questions(?) to be successful.In order to use my make loops in uu (see below), several development packages have to be installed. That takes about 800Mb in For t82, I was able to start the make loop
The two versions (termux, ubuntu) are processed in parallel. The processes are common, but for me they are only visible in termux
All packages (
If I also want to try
I had already tested and excluded the proot start from t84 above - or mean you something else?
All packages must be installed twice (package update pu) if proot is done with uu*). *) abbreviation uu=ubuntu (double u) another possibility would be triple u (so many u's contain this linux variant) is used as alias and path, because this can be easily entered on the on-screen KB. |
@xeffyr test for termux/ubuntu on aarch64 (t84 with proot2):
The t84 behavior is unacceptable and I gave up starting an ubuntu Xserver there. With t82 X11 server does not work and I could not use the Xvnc server (PID3 = 13094 from OTS with tigervnc in termux) in ubuntu. If I kill the process before uu, four new processes will be created with vncserver, but they will be killed when RealVNC starts - You can see why? Processes and log:
|
Xvnc in proot/ubuntu@xeffyr Your log handles pu in ubuntu and PID3=vncserver from OTS. Not recognizable are the four processes there (16393 ff above). Here at Xvnc (:1) PID2=RealVNC-App can be called before or after PID3 start (only if it does not yet exist). t64.apk instead of t84.apkI gave up the test of your proot2.apk due to serious defects (no widget and loss factor of 80 times at proot) and replace t84 by your apk above (my-t64 with apksigner) and describe your suggestions in README. tu and symlinks in sd pathsThe easiest thing would be to completely save the termux/ubuntu data in sd (there I have space for t64 35Gb). The first hurdle is the symlinks in sd (which is not a problem from termux), which |
Yes, Termux will have target SDK level 28 and be published on F-Droid (v0.102+).
Primary benefit is to be able publish Termux updates on Play Store and also to avoid possibility of delisting application as "deprecated" by Google from this installation source. Benefits of in-APK packaging are:
|
Thanks @xeffyr for the feedback. You repeated the benefits because I didn't ask about limits that led to the development being canceled - OK so far - but "in-APK packaging" should be able to work in 28-Termux as well as in 29+. The almost daily updates of the package servers would then have to be done also in apks or only there if not two Termux versions are exist in parallel and all developers adhere to them - is that realistic? |
Device (Pad) with PiP (Picture-in-Picture) and floating OnScr-KB
If PiP+Split+navigation functions on the Galaxy Tab S6:Almost all apps (VNC viewer not) can work in-picture/split. Termux/X11 is allowed with PiP. This includes over the start/task screen and transparency. The pictures behave similarly to Windows (can be moved and scaled) and the apps for this reduce the display size to the picture. Question: does this apply to all Android 10 devices? Examples: Shot1 Termux+X11 via VNC (landscape with aterm+pcmanfm+openbox) and Shot2 via the start screen (portait with widget). The floating keyboard is used in both apps. |
Thanks @xeffyr! The googled PiP documentation does not contain any reference to general valid PiP administration (for almost all Apps), but only for a small list of Google apps with a focus on youtube. My four (Q/R) emulations do not allow PiP for Termux & Co. The management of the PiP list takes place on my Galaxy device in the task list. In addition to the three pictures from my Doc, I've added camera and gallery here. |
My current idea is to keep the apt/pkg updates in
|
Backups and distros.Termux backup ( Create/Restore process of Backups (
|
check of termux with
|
Install APK
What happens if my
t*.apk
will installed on a Q/10 device and opened (bash) or is it not possible:type bash
is non-native(~/u)? Four shots to install and use of example check see README:The action is simple with Android 9. To do the same in 10/API-29 would have to be u/bin u/lib (
ln -s ~/../usr ~/u
) and ~/check.exe ($s) in native /system.@xeffyr said Yes to Could the APK solution be tested on Andriod-9? How does it work?
Github has a limit that my-t77.apk (63Mb) can not be saved - is also here and created with apksigner. There are also the versions 0.73 (smaller but needs package update) and 0.82 to find. An exchange of the 'my-t*.apk` (same signing) has no restriction of the check function to follow.
@fornwall made a (proot less) suggestion in dev - where do I find (and how to use) the
'termux-package-binary' and do you've an example of a script?
The text was updated successfully, but these errors were encountered: