https://wiki.termux.com/wiki/Differences_from_LinuxTermux uses Bionic libc
To have best compatibility with Android OS and remove the need of maintaining custom toolchains we compile all our packages with Android NDK. Resulting binaries are linked against Bionic libc (files libc.so, libm.so, libdl.so from /system/lib or /system/lib64).
Usage of libc provided by Android and FHS incompatibility disables ability to execute native packages copied from Linux distributions:
Dynamically linked programs will not run due to linker expected in nonexistent location (/lib) and libc ABI mismatch.
Statically linked programs (only networking ones) will not be able to resolve DNS names. GNU libc normally doesn't allow static linking with resolver. Also, the file /etc/resolv.conf is not exist on Android.
On non-rooted Android 8 or newer, statically linked programs will not run due to issues with seccomp filter.
However, these restrictions can be bypassed with proot.
https://wiki.termux.com/wiki/Package_ManagementManual installation of *.deb files
If you have a *.deb package file, you can install it with dpkg. Note that packages downloaded from Ubuntu or from repositories of other Linux distributions will not work due to incompatible libc ABI, however statically compiled binaries may work.
If one wants puppy to run alongside android then the binaries must be built with "Bionic C" and this is probably easiest to do with the android development kit. However, if puppy is to replace android then we don't have to worry about building with "bionic c" and can use regular deb files.
I saw a video where someone has claimed to have done this on their phone with tahrpup. The problem is that there might be hardware on the phone which has no open source hardware driver.
https://www.cnx-software.com/2013/04/08 ... -in-linux/There are two ways to solve this issue:
Open Source GPU drivers. This would be the ideal solution, as you would just be able to cross-compile the drivers for the proper, as well as fix bugs without having to ask the silicon manufacturer to fix the driver for you.
Bionic to Glibc library. Such library acts like libdl, and allows to load Bionic library and overrides some symbols from bionic with glibc based ones. This is exactly what libhybris does.
Android drives can be used on linux by using a compatibility midleware called libhybris. Some instruction for porting the android drivers to linux (using libhbris) can be found on the asteroids site:
https://asteroidos.org/wiki/porting-guide/
AsteroidOS is an opern source operating system used in smart watches. One interesting thing about it is that it uses OpenEmbeded, which BarryK also used in one version of easyOS. Another operating system which uses libhybris is Ubuntu Touch.
AsteroidOS and UbuntuTouch are two operating system which could be used as a basis for a version of puppylinux that is built for mobile devices. I'm not in any rush for a libhybris version of puppy but I wanted to start the discussion in case this idea inspires someone and also to help me remember this info in case I wanted to use it in the future. Also since such an operating system have simmilar CPU architecture with an arm based version of puppy, there could be some repo sharing between arm based versions of puppy with libhbris based versions.