Giter VIP home page Giter VIP logo

droid-native's Introduction

Droid Native

Next Generation Anbox Style Android x86 Desktop - Anbox, Lineage, WayDroid, BlissOS, Dock-Droid

Based on waydroid's anbox halium for x86 (Desktop & Arch)

Requirements

sudo pacman -Syu lxc dhcp

Credits for WayDroid via https://github.com/waydroid/anbox-halium https://github.com/erfanoabdi!

Credits for native_bridge install via Redroid https://github.com/zhouziyang!

https://github.com/remote-android/redroid-doc/tree/master/native_bridge

This project was created for use in:

  • Next Generation Anbox Style LXC:

https://github.com/sickcodes/droid-native

  • Android in a Docker using BlissOS:

https://github.com/sickcodes/dock-droid

  • binder(fs) and ashmem for use in anbox related 5.7+ Kernel distribuitons (soon to be all):

https://github.com/sickcodes/anbox-modules-dkms

  • WayDroid:

https://github.com/waydroid/waydroid

Arch Linux Install Bleeding Edge Kernel

# KERNEL_MAINLINE="$(curl https://www.kernel.org \
#         | grep -Po '(?<=https\:\/\/git\.kernel\.org\/torvalds\/\w\/linux\-)(.+?)(?=\.tar\.xz)')"

KERNEL_MAINLINE="$(curl https://www.kernel.org/feeds/kdist.xml \
    | grep -m1 -Po '(?<=kernel.org,stable,)(.+?)(?=,20\d\d\-)')"

echo "${KERNEL_MAINLINE}"

RC="${KERNEL_MAINLINE//\-/}"
cd ~
sudo pacman -Rns linux-git --noconfirm
yay linux-git --getpkgbuild --force
cd ~/linux-git


# remove html docs
sed -i -e 's/\"\$pkgbase-docs\"//' PKGBUILD
sed -i -e 's/rm\ -r\ \"\$builddir\/Documentation\"//' PKGBUILD
sed -i -e 's/make\ htmldocs//' PKGBUILD
# sed -i -e 's/make\ /make\ -j'${N}'\ /g' PKGBUILD
sed -i -e 's/^pkgver\=.*/pkgver\='${RC}'/' PKGBUILD
sed -i -e 's/^pkgver\=.*/pkgver\='${RC}'/' PKGBUILD

# MANUALLY EDIT OUT THE SKIP SHASUMS TO SKIP

sed -i -e s/^sha256sums/old_sha256sums/g PKGBUILD

perl -i -p -e s/old_sha256sums/sha256sums\=\(\'SKIP\'\ \'SKIP\'\)\\nold_sha256sums/g PKGBUILD

zcat /proc/config.gz  > config

tee -a config <<EOF
CONFIG_ASHMEM=y
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
CONFIG_SW_SYNC=y
CONFIG_UHID=m
EOF

makepkg -si --noconfirm

Add to /boot/syslinux or boot with kernel arguments:

binder.devices=binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder

Wipe existing WayDroid/Lineage/Bliss Data # Droid-Native

#!/bin/bash
# Author:       atmouse-, sickcodes
# Contact:      https://github.com/atmouse-, https://github.com/sickcodes
# Copyright:    sickcodes (C) 2021
# License:      GPLv3+

sudo systemctl enable --now systemd-networkd.service
sudo systemctl restart lxc lxc-net lxcfs lxc-auto

sudo su

sudo modprobe binder_linux
sudo modprobe ashmem_linux

sudo mkdir -p /dev/binderfs
sudo mount -t binder binder /dev/binderfs
HEIGHT=720
WIDTH=405
# HEIGHT=1440
# WIDTH=810
# HEIGHT=720
# WIDTH=1280

WAYLAND_DISPLAY=wayland-1
# BRIDGE=anbox0
BRIDGE=lxcbr0
DATA_FOLDER=/var/lib/lxc/anbox/data
IMAGE_ZIP_URL="https://build.lolinet.com/file/lineage/waydroid_x86_64/latest-raw-images.zip"
# IMAGE_ZIP_URL="https://build.lolinet.com/file/lineage/anbox_arm64/latest-raw-images.zip"
# IMAGE_ZIP_URL="https://build.lolinet.com/file/lineage/anbox_x86_64/lineage-17.1-20210523-1509-anbox_x86_64-521.zip"
# IMAGE_ZIP_URL="${IMAGE_ZIP_URL:="file:///home/${USER}/images.zip"}"

EXTRACTED_SYSTEM_IMG=waydroid_x86_64_system.img
EXTRACTED_VENDOR_IMG=waydroid_x86_64_vendor.img
BIND_PROP=/var/lib/lxc/anbox/rootfs/vendor/waydroid.prop

DOWNLOAD=true
# DOWNLOAD=
# WIPE_EXISTING=
# WIPE_EXISTING=/var/lib/lxc/anbox/data

# if [[ "${WIPE_EXISTING}" ]]; then
#     sudo rm -rf /var/lib/lxc/anbox/data
# fi

# zip up your system and vendor raw images, or use lineage latest

# stat /var/lib/lxc || { echo "lxc is not installed" ; exit 1} 

sudo mkdir -p /var/lib/lxc/anbox/rootfs \
    /var/lib/lxc/anbox/data

sudo touch /var/lib/lxc/anbox/anbox.prop \
    /var/lib/lxc/anbox/bootstrap.sh \
    /var/lib/lxc/anbox/config \
    /etc/dhcpd.anbox.conf

sudo tee /var/lib/lxc/anbox/anbox.prop <<EOF
anbox.display_height=${HEIGHT}
anbox.display_width=${WIDTH}
ro.hardware.gralloc=gbm
ro.hardware.egl=mesa
debug.stagefright.ccodec=0
ro.sf.lcd_density=160
anbox.xdg_runtime_dir=/run/user/1000
anbox.wayland_display=wayland-1
anbox.stub_sensors_hal=1
#anbox.use_subsurface=false
persist.anbox.multi_windows=false
anbox.active_apps=full
persist.waydroid.invert_colors=true
EOF




# far too permissive

sudo tee /var/lib/lxc/anbox/bootstrap.sh <<EOF
#!/bin/sh
sudo modprobe binder_linux
sudo modprobe ashmem_linux
export XDG_RUNTIME_DIR=/run/user/1000
export XDG_SESSION_TYPE=wayland
export WAYLAND_DISPLAY=wayland-1
chmod 777 /sys/kernel/debug/sync/sw_sync
chmod 777 -R /run/user/1000
chmod -R 777 /dev/binderfs/*
chmod -R 777 /dev/fb0
chmod -R 777 /dev/dri/
chmod -R 777 /dev/uhid
chmod -R 777 /dev/zero
chmod -R 777 /dev/full
chmod -R 777 /dev/null
chmod -R 777 /dev/ashmem
chmod -R 777 /dev/fuse
chmod -R 777 /dev/char
EOF

sudo tee /var/lib/lxc/anbox/config <<EOF
# Anbox LXC Config

lxc.rootfs.path = dir:/var/lib/lxc/anbox/rootfs
lxc.uts.name = anbox
lxc.arch = x86_64
lxc.autodev = 0
lxc.apparmor.profile = unconfined

lxc.init.cmd = /init

lxc.mount.auto = cgroup:rw sys:ro proc

lxc.net.0.type = veth
lxc.net.0.flags = up
lxc.net.0.link = ${BRIDGE}
lxc.net.0.name = eth0
lxc.net.0.hwaddr = 00:16:3e:f9:d3:03
lxc.net.0.mtu = 1500

# Necessary dev nodes
lxc.mount.entry = tmpfs dev tmpfs nosuid 0 0
lxc.mount.entry = /dev/zero dev/zero none bind,create=file,optional 0 0
lxc.mount.entry = /dev/full dev/full none bind,create=file,optional 0 0
lxc.mount.entry = /dev/null dev/null none bind,create=file,optional 0 0
lxc.mount.entry = /dev/ashmem dev/ashmem none bind,create=file,optional 0 0
lxc.mount.entry = /dev/fuse dev/fuse none bind,create=file,optional 0 0

####lxc.mount.entry = /dev/ion dev/ion none bind,create=file,optional 0 0
lxc.mount.entry = /dev/char dev/char none bind,create=dir,optional 0 0

##### Graphic dev nodes
lxc.mount.entry = /dev/fb0 dev/fb0 none bind,create=file,optional 0 0
lxc.mount.entry = /dev/dri dev/dri none bind,create=dir,optional 0 0

##### Binder dev nodes
lxc.mount.entry = /dev/binderfs/anbox-binder dev/binder none bind,create=file 0 0
lxc.mount.entry = /dev/binderfs/anbox-vndbinder dev/vndbinder none bind,create=file 0 0
lxc.mount.entry = /dev/binderfs/anbox-hwbinder dev/hwbinder none bind,create=file 0 0

# Necessary device nodes for adb
lxc.mount.entry = none dev/pts devpts defaults,mode=644,ptmxmode=666,create=dir 0 0
lxc.mount.entry = /dev/uhid dev/uhid none bind,create=file,defaults,optional 0 0

# Mount /data
lxc.mount.entry = tmpfs mnt tmpfs mode=0755,uid=0,gid=1000
lxc.mount.entry = ${DATA_FOLDER} data none bind 0 0

# Recursive mount /run to provide necessary host sockets
lxc.mount.entry = /run run none rbind,create=dir 0 0

# Necessary sw_sync node for HWC
lxc.mount.entry = /sys/kernel/debug sys/kernel/debug none rbind,create=dir,optional 0 0

lxc.hook.post-stop = /dev/null
EOF

# sudo tee /etc/dhcpd.anbox.conf <<EOF
# option domain-name-servers 8.8.8.8;
# option subnet-mask 255.255.255.0;
# option routers 192.168.250.1;
# subnet 192.168.250.0 netmask 255.255.255.0 {
#     range 192.168.250.150 192.168.250.250;
# }
# EOF

sudo chmod +x /var/lib/lxc/anbox/bootstrap.sh

cd /var/lib/lxc/anbox

if [[ "${DOWNLOAD}" ]]; then
    DOWNLOAD_FILE_NAME="$(basename "${IMAGE_ZIP_URL}")"
    sudo wget -O "${DOWNLOAD_FILE_NAME}" "${IMAGE_ZIP_URL}"
    sudo unzip ${DOWNLOAD_FILE_NAME}
    # simg2img system.img "${EXTRACTED_SYSTEM_IMG}"
    # simg2img vendor.img "${EXTRACTED_VENDOR_IMG}"
fi

Run script

Run the Android image natively:

wayfire &
sudo mount -o rw    "/var/lib/lxc/anbox/${EXTRACTED_SYSTEM_IMG}"  /var/lib/lxc/anbox/rootfs
sudo mount -o rw    "/var/lib/lxc/anbox/${EXTRACTED_VENDOR_IMG}"  /var/lib/lxc/anbox/rootfs/vendor
sudo mount -o bind  /var/lib/lxc/anbox/anbox.prop                "${BIND_PROP}"
sudo mkdir -p /dev/binderfs
sudo mount -t binder binder /dev/binderfs

libndk native bridge installation lineageos waydroid anbox halium

# warning, this will extract overwriting /etc/system/... so make sure you're in /var/lib/lxc/anbox/rootfs
cd /var/lib/lxc/anbox/rootfs \
    && sudo wget https://github.com/sickcodes/dock-droid/raw/master/native-bridge.tar.gz \
    && sudo tar -xzvf native-bridge.tar.gz \
    && sudo rm native-bridge.tar.gz \
    && sudo cp /var/lib/lxc/anbox/nativebridge.rc /var/lib/lxc/anbox/rootfs/vendor/etc/init/nativebridge.rc \
    && sudo rm /var/lib/lxc/anbox/nativebridge.rc \
    && cd ..

# setprop gralloc.gbm.device /dev/dri/renderD128
sudo tee /var/lib/lxc/anbox/nativebridge.rc <<EOF
on early-init
    setprop ro.product.cpu.abilist x86_64,arm64-v8a,x86,armeabi-v7a,armeabi
    setprop ro.product.cpu.abilist64 x86_64,arm64-v8a
    setprop ro.product.cpu.abilist32 x86,armeabi-v7a,armeabi
    setprop ro.dalvik.vm.isa.arm x86
    setprop ro.dalvik.vm.isa.arm64 x86_64
    setprop ro.enable.native.bridge.exec 1
    setprop ro.dalvik.vm.native.bridge libndk_translation.so
    setprop ro.ndk_translation.version 0.2.2
EOF

sudo sed -i -e 's/native.bridge=0/native.bridge=1/' /var/lib/lxc/anbox/rootfs/system/etc/prop.default rootfs/vendor/odm/etc/build.prop

sudo sed -i -e "s/x86_64,x86/x86_64,arm64-v8a,x86,armeabi-v7a,armeabi/g" \
    /var/lib/lxc/anbox/rootfs/system/build.prop \
    /var/lib/lxc/anbox/rootfs/vendor/odm/etc/build.prop \
    /var/lib/lxc/anbox/rootfs/vendor/build.prop

# sudo system/etc/prop.default

sudo tee -a /var/lib/lxc/anbox/rootfs/system/build.prop \
    -a /var/lib/lxc/anbox/rootfs/vendor/odm/etc/build.prop \
    -a /var/lib/lxc/anbox/rootfs/vendor/build.prop <<EOF
ro.product.cpu.abilist64=x86_64,arm64-v8a
ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.dalvik.vm.isa.arm=x86
ro.dalvik.vm.isa.arm64=x86_64
ro.enable.native.bridge.exec=1
ro.dalvik.vm.native.bridge=libndk_translation.so
EOF

Opengapps installation lineageos waydroid anbox halium

Do not run, work in progress

# # gapps installation code via Maintainer: Jack Chen <[email protected]>
# # Based on https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=anbox-image-gapps-rooted

# _gapps_list=(
#   'gsfcore-all'
#   'gsflogin-all'
#   'gmscore-x86_64'
#   'vending-x86_64'
# )

# ANDROID_VERSION=11.0
# GAPPS_VARIANT=nano
# GAPPS_RELEASE="$(curl -s -L https://api.opengapps.org/list | sed -r "s/.*-x86_64-${ANDROID_VERSION}-${GAPPS_VARIANT}-([0-9]+).zip\".*/\1/")"

# mkdir -p /tmp/opengapps
# cd /tmp/opengapps
# wget https://downloads.sourceforge.net/project/opengapps/x86_64/${GAPPS_RELEASE}/open_gapps-x86_64-${ANDROID_VERSION}-${GAPPS_VARIANT}-${GAPPS_RELEASE}.zip
# unzip open_gapps-x86_64-${ANDROID_VERSION}-${GAPPS_VARIANT}-${GAPPS_RELEASE}.zip



# tar --lzip -xvf /tmp/opengapps/Core/*.tar.lz


#       # install media codecs
# cp media_codec*.xml /var/lib/lxc/anbox/rootfs/system/etc/
# cd /tmp/opengapps/Core/
# for i in /tmp/opengapps/Core/*; do
#     tar --lzip -xvf "${i}"
#     sudo cp -r "${i//\.tar\.lz/}/nodpi/priv-app/"* /var/lib/lxc/anbox/rootfs/system/priv-app/
# done

Root Android x86

Do not run, work in progress

# cd /tmp
# wget https://supersuroot.org/downloads/SuperSU-v2.82-201705271822.zip
#     unzip SuperSU-v2.82-201705271822.zip

# sudo su <<EOF
# mkdir -p /var/lib/lxc/anbox/rootfs/system/app/SuperSU
# chmod 755 /var/lib/lxc/anbox/rootfs/system/app/SuperSU
# install -Dm 644 /tmp/common/Superuser.apk /var/lib/lxc/anbox/rootfs/system/app/SuperSU/Superuser.apk

# rm /var/lib/lxc/anbox/rootfs/system/bin/app_process
# ln -s /system/xbin/daemonsu /var/lib/lxc/anbox/rootfs/system/bin/app_process
# mv /var/lib/lxc/anbox/rootfs/system/bin/app_process64 /var/lib/lxc/anbox/rootfs/system/bin/app_process64_original
# ln -s /system/xbin/daemonsu /var/lib/lxc/anbox/rootfs/system/bin/app_process64
# cp /var/lib/lxc/anbox/rootfs/system/bin/app_process64_original /var/lib/lxc/anbox/rootfs/system/bin/app_process_init
# EOF

# nohup /system/xbin/daemonsu --auto-daemon &

# # chmod +w ./system/etc/init.goldfish.sh
# # echo '/system/xbin/daemonsu --auto-daemon &' >> ./system/etc/init.goldfish.sh
# # chmod -w ./system/etc/init.goldfish.sh
# # echo 1 > ./system/etc/.installed_su_daemon

# # # install media codecs
# # cp media_codec*.xml ./system/etc/


####??

# cd /var/lib/lxc/anbox/rootfs \
#     && sudo wget https://mirrorbits.lineageos.org/su/addonsu-14.1-x86-signed.zip \
#     && sudo unzip addonsu-14.1-x86-signed.zip \
#     && sudo rm addonsu-14.1-x86-signed.zip \
#     && cd -
dhcpd -4 -q -cf /etc/dhcpd.anbox.conf --no-pid anbox0

export DISPLAY=:1
cd /var/lib/lxc/anbox
sudo bash /var/lib/lxc/anbox/bootstrap.sh
ip link add name anbox0 type bridge
ip link set dev anbox0 up
# sudo ip link add name ${BRIDGE} type bridge
sudo ip link set dev ${BRIDGE} up
# sudo dhcpd -4 -q -cf /etc/dhcpd.anbox.conf --no-pid anbox0
sudo lxc-start -n anbox -F -- /init
wayfire
tee -a ~/start-waydroid.sh <<EOF
#!/bin/bash
sudo mkdir -p /dev/binderfs
sudo mount -t binder binder /dev/binderfs
sudo systemctl enable --now systemd-networkd.service
sudo killall dnsmasq
sudo systemctl restart lxc lxc-net lxcfs lxc-auto
sudo bash /var/lib/lxc/anbox/bootstrap.sh
sudo ip link add name anbox0 type bridge
sudo ip link set dev anbox0 up
sudo dhcpd -4 -q -cf /etc/dhcpd.anbox.conf --no-pid anbox0
sudo DISPLAY=:1 lxc-start -n anbox -F -- /init
EOF

sudo DISPLAY=:1 bash ~/start-waydroid.sh

sudo DISPLAY=:1 bash ~/start-waydroid.sh

If DISPLAY=:1 does not work, open a terminal in wayfire and echo ${DISPLAY} and edit as appropriate.

Stop or Destory Container anbox container after use

sudo umount "${BIND_PROP}"
sudo umount /var/lib/lxc/anbox/rootfs/vendor
sudo umount /var/lib/lxc/anbox/rootfs
# umount the devices in this important order
sudo umount /var/lib/lxc/anbox/rootfs/vendor/anbox.prop \
    || sudo umount /var/lib/lxc/anbox/rootfs/vendor/waydroid.prop
sudo umount /var/lib/lxc/anbox/rootfs/vendor
sudo umount /var/lib/lxc/anbox/rootfs
sudo lxc-destroy anbox

droid-native's People

Contributors

sickcodes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

droid-native's Issues

libndk_translation issues

Following your guide in README.MD I could get waydroid working properly and install 32-bit apks, but when click these 32-bit apks, they remains crashing.

Could you please figure out how to make libndk_translation working properly? Thanks in advance.

:/data # pm install MobileAssistant_1.apk
Success
:/data # pm install Coolapk-11.3-2108051-coolapk-app-sign.apk
Success
:/data # pm install firefox-91-3-1.apk
Success

Crash log from logcat(via logcat -b crash:

08-29 20:00:51.666  2102  2102 E AndroidRuntime: FATAL EXCEPTION: main
08-29 20:00:51.666  2102  2102 E AndroidRuntime: Process: com.coolapk.market, PID: 2102
08-29 20:00:51.666  2102  2102 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.coolapk.market/.jiagu/libjiagu.so" is 32-bit instead of 64-bit
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at java.lang.Runtime.load0(Runtime.java:938)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at java.lang.System.load(System.java:1631)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at com.stub.StubApp.attachBaseContext(SourceFile:184)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.app.Application.attach(Application.java:351)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.app.Instrumentation.newApplication(Instrumentation.java:1156)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.app.LoadedApk.makeApplication(LoadedApk.java:1223)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.app.ActivityThread.access$1300(ActivityThread.java:219)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:107)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:214)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7356)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
08-29 20:00:51.666  2102  2102 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: FATAL EXCEPTION: main
08-29 20:00:56.749  2127  2127 E AndroidRuntime: Process: org.mozilla.firefox, PID: 2127
08-29 20:00:56.749  2127  2127 E AndroidRuntime: java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/android-x86/libjnidispatch.so) not found in resource path (.)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:14)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:35)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at com.sun.jna.Native.<clinit>(Native.java:12)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at com.sun.jna.StringArray.<init>(StringArray.java:5)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at com.sun.jna.StringArray.<init>(StringArray.java:3)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at mozilla.telemetry.glean.private.CounterMetricType.<init>(CounterMetricType.kt:5)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at org.mozilla.fenix.GleanMetrics.PerfStartup.<clinit>(PerfStartup.kt:18)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at org.mozilla.fenix.FenixApplication.onCreate(FenixApplication.kt:1)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1189)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6460)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at android.app.ActivityThread.access$1300(ActivityThread.java:219)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:107)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:214)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7356)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
08-29 20:00:56.749  2127  2127 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)

Please create a simple interactive .sh script to automate installtion

It would be nice and easier to have a simple .sh script that would install the required kernel with all binders
Then check if waydroid and its image is installed , if yes then skip if no then install
and install all the remaining things .
So as a newbie user just has to run the script and get working waydroid on arch or arch based systems
In worst case , system will not boot which can be restored using timeshift or any other backup

Is there an android 11 image compatible with waydroid?

Trying to get libndk_translation working with waydroid but looks like the default lineageos 17.1 art vm doesn't support nativebridge stuff, apps crash with

10-05 18:35:04.787  1300  1300 E AndroidRuntime: Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/org.chromium.chrome.stable-TrbAMrrDArLnLOYDlEFc4A==/base.apk!/lib/arm64-v8a/crazy.libchrome.so" is for EM_AARCH64 (183) instead of EM_X86_64 (62)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.