111 lines
4.7 KiB
Plaintext
111 lines
4.7 KiB
Plaintext
- create overlayfs for system img (as root)
|
|
mkdir /tmp/from
|
|
mkdir /tmp/to
|
|
mkdir /tmp/work
|
|
mount /opt/alien/system.img /tmp/from
|
|
# if for some reason mount didn't work, go with this (and skip the mount -t overlay)
|
|
unsquashfs /opt/alien/system.img
|
|
mv squashfs-root/ /opt/alien/rootfs
|
|
|
|
mount -t overlay -o lowerdir=/tmp/from,upperdir=/tmp/to,workdir=/tmp/work overlay /opt/alien/rootfs
|
|
|
|
- edit init file in rootfs to comment out memfd override
|
|
nano /opt/alien/rootfs/system/etc/init/hw/init.rc
|
|
# comment out this line
|
|
setprop sys.use_memfd false
|
|
|
|
- chmod device files (as root)
|
|
# TODO: if there's no binder devices, either create using binder_linux
|
|
modprobe binder_linux devices=
|
|
# or binderfs module (and link whatever devices are available)
|
|
mkdir /dev/binderfs
|
|
mount -t binder binder /dev/binderfs
|
|
ln -s /dev/binderfs/anbox-binder /dev/binder
|
|
ln -s /dev/binderfs/anbox-hwbinder /dev/hwbinder
|
|
ln -s /dev/binderfs/anbox-vndbinder /dev/vndbinder
|
|
chmod 777 /dev/binder
|
|
chmod 777 /dev/hwbinder
|
|
chmod 777 /dev/vndbinder
|
|
chmod 777 /dev/dri/card0
|
|
|
|
- chmod wayland socket
|
|
chown YOUR_USER:appsupport-wayland /run/user/YOUR_UID/wayland-0
|
|
chmod 775 /run/user/YOUR_UID/wayland-0
|
|
|
|
- setup the waydroid vendor blob with another overlayfs (as root)
|
|
mkdir /tmp/from2
|
|
mkdir /tmp/to2
|
|
mkdir /tmp/work2
|
|
mkdir /tmp/waydroid-vendor
|
|
mount waydroid/vendor.img /tmp/from2
|
|
mount -t overlay -o lowerdir=/tmp/from2,upperdir=/tmp/to2,workdir=/tmp/work2 overlay /tmp/waydroid-vendor
|
|
# remove gatekeeper, that seems to be the only HAL that's loaded (and it also crashes)
|
|
rm /tmp/waydroid-vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so
|
|
rm /tmp/waydroid-vendor/lib/hw/android.hardware.gatekeeper@1.0-impl.so
|
|
|
|
- replace webview with waydroid one
|
|
mkdir /tmp/waydroid-system
|
|
mount waydroid/system.img /tmp/waydroid-system
|
|
cp /tmp/waydroid-system/system/product/app/webview/webview.apk /opt/alien/rootfs/system/app/webview/webview.apk
|
|
|
|
- optional: copy overlay for gesture navigation from waydroid into alien (as root)
|
|
cp -r /tmp/waydroid-system/system/product/overlay /opt/alien/rootfs/product/
|
|
|
|
- set data dir in LXC config
|
|
nano /tmp/appsupport/aliendalvik/10-bsp_config
|
|
# set __DATA_DIR__ to /opt/alien/data
|
|
|
|
- set UID in LXC config
|
|
nano /tmp/appsupport/aliendalvik/10-bsp_config
|
|
# set __UID__ to your UID in this line
|
|
lxc.mount.entry = /run/user/__UID__/wayland-0 run/display/wayland-0 none bind,nodev,nosuid,create=file 0 0
|
|
|
|
nano /tmp/appsupport/aliendalvik/20-privilege_config
|
|
# set __UID__ to your UID (this maps your UID to UID 100000 inside the container)
|
|
lxc.idmap = u 100000 __UID__ 1
|
|
lxc.idmap = g 100000 __UID__ 1
|
|
|
|
- setup networking for container
|
|
/usr/lib/lxc/lxc-net start
|
|
|
|
- now check if lxc wants to startup
|
|
/usr/bin/lxc-start --rcfile=/tmp/appsupport/aliendalvik/config --lxcpath=/tmp/appsupport/aliendalvik -n aliendalvik -F
|
|
# shouldn't error out immediately, but should crash after like 30 seconds
|
|
# there should be stuff in /opt/alien/data now, and logs in /opt/alien/data/logcats/log
|
|
# if you got to this point, you're very close :)
|
|
|
|
- setup at least 7 ssh sessions on the device to run all the daemons
|
|
|
|
- get connman shim up and running (as root)
|
|
gjs shimming/connman/mock.js
|
|
|
|
- get maliit shim up and running (as user)
|
|
WAYLAND_DEBUG=1 python shimming/maliit/maliit-shim.py
|
|
|
|
- start the systemd service that runs the container (as root)
|
|
systemctl start aliendalvik
|
|
|
|
- right after that start integration daemons (as user)
|
|
alienaudioservice -d /dev/binder -n /dev/vndbinder -w /dev/hwbinder -p pulseaudio --verbose
|
|
QT_DEBUG_PLUGINS=1 QTCONTACTS_MANAGER_OVERRIDE=folks QT_LOGGING_RULES="*.debug=true" apkd-bridge
|
|
QT_LOGGING_RULES="*.debug=true" apkd-bridge-user
|
|
QDBUS_DEBUG=1 alienkeyboardservice
|
|
|
|
- things are running now, android settings app should appear on your app grid
|
|
if it doesn't, but you can see it in .local/share/applications/, relogin for shell to pick it up
|
|
|
|
- can now install fdroid via (as user)
|
|
wget https://f-droid.org/F-Droid.apk
|
|
apkd-install F-Droid.apk
|
|
|
|
- optional: run commands inside the android container from alien-post-startup.sh script
|
|
|
|
- optional: use gesture navigation in android to have swipe-back gesture
|
|
# go into container and disable -> enable the overlay
|
|
lxc-attach --name=aliendalvik --lxcpath=/tmp/appsupport -- /system/bin/sh
|
|
cmd overlay disable com.android.internal.systemui.navbar.gestural
|
|
cmd overlay enable com.android.internal.systemui.navbar.gestural
|
|
|
|
notes:
|
|
- when apps don't draw after startup, touch the screen to trigger the app to start drawing
|