- Unihertz Titan (Android 9 stock ROM). My video: https://www.youtube.com/watch?v=OqFHivcPIRM
- Samsung Galaxy Fold2 (Android 10 stock ROM).
- Rooted Android device.
- Termux (app from fDroid store).
- "XSDL XServer" app.
- ARM64 Maemo Leste image. This tutorial use maemo-leste-1.0-arm64-raspi3-20200114.tar.gz , the last image downloaded from https://maedevu.maemo.org/images/arm64-generic/
- Open Termux.
-
termux-setup-storage
-
pkg install -y wget
-
cd /sdcard
-
wget https://maedevu.maemo.org/images/arm64-generic/20200114/maemo-leste-1.0-arm64-raspi3-20200114.tar.gz #wget https://maedevu.maemo.org/images/arm64-generic/20230819/arm64-generic.tar.gz
-
wget https://raw.githubusercontent.com/diejuse/chroot_Maemo-leste_on_Android/main/chrootMaemo.sh
-
su
-
mkdir /data/local/leste
-
tar xvzf /sdcard/maemo-leste-1.0-arm64-raspi3-20200114.tar.gz -C /data/local/leste #tar xvzf /sdcard/arm64-generic.tar.gz -C /data/local/leste
-
cd /data/local/leste
- If you want to mount the internal memory of Android (warning: it is not recommended), you can: mkdir sdcard
-
mv /sdcard/chrootMaemo.sh /data/local/leste
-
sh chrootMaemo.sh
-
echo nameserver 8.8.8.8 > /etc/resolv.conf ; echo 127.0.0.1 localhost > /etc/hosts ; echo aid_inet:x:3003:user,root,_apt >> /etc/group ; echo aid_net_raw:x:3004:user,root,_apt >> /etc/group ; echo aid_admin:x:3005:user,root,_apt >> /etc/group ; groupadd -g 1003 aid_graphics ; usermod -g 3003 _apt
-
exit
-
sh chrootMaemo.sh
-
rm -R /etc/apt/sources.list.d ; echo deb http://pkgmaster.devuan.org/merged beowulf main contrib non-free > /etc/apt/sources.list ; echo deb http://pkgmaster.devuan.org/merged beowulf-updates main contrib non-free >> /etc/apt/sources.list ; echo deb http://pkgmaster.devuan.org/merged beowulf-security main contrib non-free >> /etc/apt/sources.list ; echo deb http://maedevu.maemo.org/leste beowulf main contrib non-free >> /etc/apt/sources.list ; echo deb http://maedevu.maemo.org/extras beowulf main contrib non-free >> /etc/apt/sources.list
-
apt update -y ; apt upgrade -y
- Choose keyboard => English.
- Restart services [...] => choose "Yes"
-
wget -O - https://maedevu.maemo.org/testing-key.asc | sudo apt-key add -
-
apt update -y ; apt upgrade -y
- We got an error: “unmet dependencies” related with “theme-default-settings-mr0”. To solve:
-
dpkg -r --force-depends theme-default-settings-mr0
-
-
apt --fix-broken install
- Type: Yes, do as I say!
-
apt update -y ; apt upgrade -y
- It is possible Internet not working after upgrading. To solve, again:
-
echo nameserver 8.8.8.8 > /etc/resolv.conf
-
-
rm -R /etc/apt/sources.list.d
-
apt update -y ; apt upgrade -y ; apt dist-upgrade -y
- You get "alarmd" error:
-
rm /var/lib/dpkg/info/alarmd*
-
dpkg --configure -D 777 alarmd
-
apt -f install
-
-
apt dist-upgrade -y
- Choose "N" when you are asked.
-
rm /etc/resolv.conf ; echo nameserver 8.8.8.8 > /etc/resolv.conf
-
apt update -y ; apt upgrade -y
-
#apt autoremove
- No more errors should be displayed. We ensure that some necessary applications are installed:
-
#apt install clock-ui alarmd applet-datetime hildon-base hildon-desktop hildon-home hildon-input-meta hildon-input-method hildon-im-fkb hildon-control-panel-personalisation osso-applet-textinput gtk2-engines-pixbuf hildon-application-manageron+onboard.sh
-
- Remove the old Desktop Command Executionon+onboard.sh
- Remove the old Desktop Command Execution clipboard-manager hildon-plugins-notify-sv osso-systemui hildon-theme-maemo-org hildon-theme-tools liri-files live-wallpaper mihphoto msid ofono osso-abook-home-applet osso-thumbnail qalendar qshot qsigstoped sfed sphone shermans-aquarium surf2 telepathy-tank syncevolution sync-time-now-widget sync-ui
-
#apt install hostapd hostapd-dbgsym iphbd libd3dadapter9-mesa libosmesa6 libscconf0 libsdbus-c++0 libwayland-egl1-mesa libsyncevo-dbus0 maefat maemosec-certman-applet maemosec-certman-tools maemo-statusmenu-volume maemo-system-services maeotp mesa-common-dev rmtfs
-
apt install osso-systemui-tklock hildon-meta libmatchbox2 osso-systemui-modechange-dev osso-games-startup hildon-application-manager-dbgsym atinout osso-systemui-devlock osso-systemui-dbus-dev osso-af-settings python-hildondesktop python-osso python-hildon libicd-network-usb icd2-osso-ic-dev mpi mce-dev atinout
-
-
wget https://raw.githubusercontent.com/diejuse/chroot_Maemo-leste_on_Android/main/launchMaemo.sh /
- Open "XSDL XServer" Android app in landscape mode (doesn't work on portrait mode). Screen width must be greater than height screen.
-
sh /launchMaemo.sh
- Maemo is started. Now you can open and install apps using osso-xterm. Audio should work too. You can install chromium or firefox-esr, browse to youtube and check if audio works.
- From osso-xterm:
-
apt install libicd-network-dummy ; gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/type DUMMY ; gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/name 'Dummy network' ; gconftool-2 -s -t boolean /system/osso/connectivity/IAP/DUMMY/autoconnect true ; /etc/init.d/icd2 start -D
-
- Restart Maemo Leste (repeat this steps every time you can restart Maemo Leste).
- Close "XSDL XServer" app.
- From terminal of Android: exit sh chrootMaemo.sh
- Open "XSDL XServer" app.
- From terminal of Android: sh /launchMaemo.sh
- Go to settings > internet connections > connections. Check "Dummy network" is there.
- Select the "Dummy network" connection. Go to time (top left of the screen) > Internet connection > Dummy network. 5- Now you can install apps using Hildon Application Manager.
- "Apt update" may freeze during installing "gconf2". The reason is that XSDL Xserver is open. You must close the application and the update will continue.
- Increase DPI in apps:
-
echo export GDK_DPI_SCALE=1.4 >> /root/.bashrc
-
echo export QT_SCALE_FACTOR=1.5 >> /root/.bashrc
-
- Add path to installed games:
-
echo export PATH=/usr/games:$PATH >> /root/.bashrc
-
- Install "Desktop Command Execution Widget" app.
-
sudo apt install desktop-cmd-exec
-
- Make a folder for my scripts and download my script orientation.sh
-
mkdir /diejuse_scripts # if not exists
-
wget -P /diejuse_scripts https://raw.githubusercontent.com/diejuse/chroot_Maemo-leste_on_Android/main/orientation.sh
-
- Add the script like a Desktop Command Execution widget:
3.1. "Add cmd" button:
-> Title -> "Orientation:"
-> Command: /diejuse_scripts/orientation.sh
3.2. Check this options: "Update on Boot", "Update when clicked", "Update when switched to the desktop"
3.3. Save. - After the boot, Maemo will maintain the initial orientation. When you want a specific orientation go to the desktop home, rotate the smartphone to the orientation you want and tap on your widget. Your widget will update to the new orientation.
Demo video in my Youtube channel: https://youtu.be/0rS_sP_NXAo
Features:
- Floating icon correctly repositioned on the screen in both portrait and landscape orientation.
- Repositioning of the virtual keyboard adjusted to the bottom of the screen, in both orientations.
- Added a custom transparent theme, keyboard layout and gamepad layout.
Copy and paste in any terminal you use in Maemo Leste to install:
mkdir /diejuse_scripts ; wget -P /diejuse_scripts https://raw.githubusercontent.com/diejuse/chroot_Maemo-leste_on_Android/main/install_diejuse_onboard.sh ; sh /diejuse_scripts/install_diejuse_onboard.sh
Run this command every time you want to use onboard virtual keyboard in your current screen orientation. You will have to run the command every time you change orientation.
/diejuse_scripts/orientation+onboard.sh
If you want a fast way to execute this script from Hildon home:
- Install "Desktop Command Execution Widget" app (sudo apt install desktop-cmd-exec)
- "Add cmd" button:
-> Title -> "Orientation:"
-> Command: /diejuse_scripts/orientation+onboard.sh - Check only the "Update when clicked" option and uncheck "Update on Boot" and "Update when switched to the desktop" options.
- "Save"
- "Add cmd" button:
WARNINGS TO USE ONBOARD PROPERLY:
- You can change layout and theme executing onboard-settings.
- Don't open onboard using the desktop icon or you will lose the right configuration.
- Hildon-input-methos creates a conflict many times and breaks the vertical orientation mode of the screen. It occurs when you press the space bar key in vertical mode with the onboard keyboard. Solution: killall hildon-input-method.
Features:
-
Switch the y position of the diejuse_phone layout to prevent the content at the bottom of the screen from being covered.
-
Quickly switch from diejuse_phone layout to diejuse_gamepad layout and vice versa.
-
Automatic keyboard orientation change so you don't have to run it manually every time you change screen orientation.