GithubHelp home page GithubHelp logo

desktopecho / pi-hole-for-android Goto Github PK

View Code? Open in Web Editor NEW
338.0 5.0 33.0 72.86 MB

Pi-hole/Unbound Raspbian APK Installer for Android 5.0+ devices (requires root)

Shell 40.80% Python 31.70% Dockerfile 0.62% CSS 5.72% JavaScript 5.52% PHP 15.07% Makefile 0.57%
android pihole pi-hole adblocker adb

pi-hole-for-android's Introduction

Pi-hole for Android APK Installer

IMG_2229

Pi-hole© is a network-level advertisement and Internet tracker blocking application for Linux which acts as a DNS sinkhole intended for use on a private network. It is designed for low-power embedded devices with network capability, focusing on the Raspberry Pi as its 'reference' hardware platform.

Pi-hole for Android is a Debian disk image tuned to work with the Pi-hole installer on Pi Deploy (a fork of Linux Deploy). It can be used on any rooted Android device with an ARMv7 or newer CPU running Android 5.0 (Lolipop) or newer. Form factor is not important; it could be a phone, tablet, HDMI stick or any device running Android. For very old devices running Android 4.x, see the Legacy branch

What's New (December 2023)

  • Updated image to Debian 12 (Bookworm)
  • Pi Deploy image is now 64 bit by default
  • To deploy a 32 bit image, tap Properties and change the Source Path URL from /raspbian.tgz to /raspbian32.tgz
  • To install PIXEL Desktop, run pideploy-gui-install. Next time you login via RDP you will have a full desktop session with audio support.
  • To install Nextcloud 27, run pideploy-nextcloud-install to launch the Nextcloudpi installer patched for Android. Consult the official NextCloud documentation for administration of this powerful collaboration tool.

Requirements:

  • Android device that has been rooted

Note to users running previous version:

  • The APK installer is unchanged (no need to re-install the Pi Deploy APK)
  • If required, use Pi-hole Teleporter to back-up your existing configuration.
  • Login to your existing deployment and run sudo unchroot uname -m. If your device returns armv7or armv8 your device is 32 bit and you need to change the Source Path URL to /raspbian32.tgz

Install

Download the latest Pi Deploy APK and open the app.

  • Tap Allow if asked for permission to access files or run as root.

  • Tap More Options (Three dots at the top right of screen) image

  • Tap New Deployment: image

  • In a few minutes, the Raspbian Pi-hole Image will be downloaded and installed on your device.

  • When deployment is complete, tap [ ▷ START ] to launch the instance.

  • The instance will provide you with a password to login to Pi-hole webadmin or via SSH/RDP (Username: android, see screenshot below)

  • Note: The password appears only once when the image is deployed, make sure you record this information. You can also copy the password text to your clipboard for easier management.


INSTALL COMPLETE     ·     Your Android device is a Debian server running Pi-Hole!


The Android device's IP is shown at the top of the Pi Deploy main window. You can interact with Pi-hole in several ways, the examples below use IP 10.73.0.31

  • Connect via RDP in Windows using mstsc.exe /v:10.73.0.31 or in Linux using xfreerdp /v:10.73.0.31

  • Connect via SSH -> ssh [email protected]

  • Pi-hole administration is accessible from any browser on your network -> http://10.73.0.31/admin

  • If your Android device has a display, you can RDP into the Pi-hole instance (as localhost) by installing the Microsoft Remote Desktop client.

image

image

Screenshot_20221020-013907_Bromite

Pi-hole for Android wiki topics:

Additional Info:

RDP Sessions launch the Openbox window manager with QTerminal in fullscreen mode. To open a new tab hit [Ctrl-Shift-T] and to un-hide the menubar hit [Ctrl-Shift-M]

You can stop the Pi-hole instance by pressing [ ■ STOP ] and waiting a few seconds for all services to stop. Sart the instance by pressing [ ▸ START ]

When a Pi-hole instance starts up, the default configuration is set to automagically configure networking. If you change networks on the Android device simply restart the instance for Pi-hole to pick up the new settings.

Alternatively, set a static assignment by commenting-out two lines in etc/init.d/android-raspbian. After the lines are commented out with a hash "#" you can manually set your IP, subnet and interface name in /etc/pihole/setupVars.conf

image

Added latest release of Unbound 1.17 to provide encrypted DNS by default; no addional configuration is necessary but you may customize to preference.

The Pi-hole instance on Android otherwise behaves like it is running on a 'real' Raspberry-Pi or a standard PC. Consult the extensive documentation online to learn how to fully leverage Pi-hole's functionality.

Adjust QT display scaling: ~/startwm.sh

Change the font size in QTerminal: ~/.config/qterminal.org/qterminal.ini

If your Android device has a battery and was unused for months or years, replace its battery. Old, worn, or abused Li-ion batteries can fail when pushed back into service. Failure appears as a bulge in the battery, or worse a thermal event. A good battery provides UPS protection for your newly-provisioned Pi-hole.

Note: There is no endorsement or partnership between this page and Pi-hole© LLC. They deserve your support if you find this useful.

pi-hole-for-android's People

Contributors

alexfernandez avatar desktopecho avatar tmdwu 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

pi-hole-for-android's Issues

Cannot install pihole image to SD card

I want to deploy a Pihole on a Huawei U8950-1 with Android 4.0.4, which creates some limitations. Firstly, because of the Android version I have to use Linux Deploy 2.5.0. Secondly, because it only has about 1 GB of spare memory, I have to use an SD card (it's an 8GB card formatted to FAT32, if it matters). So I installed the source image to the root of the SD card (/mnt/sdcard2/p4a17.tgz) and set /mnt/sdcard2/linux.img as the installation path, image size is 4000 MB. When installing I get the error "mount: mounting /dev/block/loop0 on /data/local/mnt failed: Device or resource busy". Here is the full log (with debug and trace mode):

Edit: made log collapsible for easier navigation
+ PATH=/data/data/ru.meefik.linuxdeploy/files/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
+ printf >>> deploy

>>> deploy
+ /data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy -d -t deploy
+ config_which linux
+ local 'conf_file=linux'
+ '[' -n linux ]
+ '[' -n linux ]
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/config/linux.conf
+ echo /data/data/ru.meefik.linuxdeploy/files/config/linux.conf
+ CONF_FILE=/data/data/ru.meefik.linuxdeploy/files/config/linux.conf
+ basename /data/data/ru.meefik.linuxdeploy/files/config/linux.conf .conf
+ PROFILE=linux
+ OPTLST=' '
+ params_read /data/data/ru.meefik.linuxdeploy/files/config/linux.conf
+ local 'conf_file=/data/data/ru.meefik.linuxdeploy/files/config/linux.conf'
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/config/linux.conf ]
+ local item key val
+ read item
+ echo 'ARCH="armhf"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=ARCH
+ val='"armhf"'
+ '[' -n ARCH ]
+ eval 'ARCH="armhf"'
+ ARCH=armhf
+ '[' -n ' ' ]
+ OPTLST=' ARCH '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'DESKTOP="lxde"'
+ key=DESKTOP
+ val='"lxde"'
+ '[' -n DESKTOP ]
+ eval 'DESKTOP="lxde"'
+ DESKTOP=lxde
+ '[' -n ' ARCH ' ]
+ OPTLST=' ARCH DESKTOP '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'DISK_SIZE="4000"'
+ key=DISK_SIZE
+ val='"4000"'
+ '[' -n DISK_SIZE ]
+ eval 'DISK_SIZE="4000"'
+ DISK_SIZE=4000
+ '[' -n ' ARCH DESKTOP ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'DISTRIB="rootfs"'
+ key=DISTRIB
+ val='"rootfs"'
+ '[' -n DISTRIB ]
+ eval 'DISTRIB="rootfs"'
+ DISTRIB=rootfs
+ '[' -n ' ARCH DESKTOP DISK_SIZE ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'DNS=""'
+ key=DNS
+ val='""'
+ '[' -n DNS ]
+ eval 'DNS=""'
+ DNS=
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'FB_ARGS="-dpi' 100 -sharevts 'vt0"'
+ key=FB_ARGS
+ val='"-dpi 100 -sharevts vt0"'
+ '[' -n FB_ARGS ]
+ eval 'FB_ARGS="-dpi 100 -sharevts vt0"'
+ FB_ARGS='-dpi 100 -sharevts vt0'
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'FB_DEV="/dev/graphics/fb0"'
+ key=FB_DEV
+ val='"/dev/graphics/fb0"'
+ '[' -n FB_DEV ]
+ eval 'FB_DEV="/dev/graphics/fb0"'
+ FB_DEV=/dev/graphics/fb0
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'FB_DISPLAY="0"'
+ key=FB_DISPLAY
+ val='"0"'
+ '[' -n FB_DISPLAY ]
+ eval 'FB_DISPLAY="0"'
+ FB_DISPLAY=0
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'FB_FREEZE="none"'
+ key=FB_FREEZE
+ val='"none"'
+ '[' -n FB_FREEZE ]
+ eval 'FB_FREEZE="none"'
+ FB_FREEZE=none
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE '
+ read item
+ echo 'FB_INPUT="/dev/input/event0"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=FB_INPUT
+ val='"/dev/input/event0"'
+ '[' -n FB_INPUT ]
+ eval 'FB_INPUT="/dev/input/event0"'
+ FB_INPUT=/dev/input/event0
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'FB_REFRESH="true"'
+ key=FB_REFRESH
+ val='"true"'
+ '[' -n FB_REFRESH ]
+ eval 'FB_REFRESH="true"'
+ FB_REFRESH=true
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'FS_TYPE="ext4"'
+ key=FS_TYPE
+ val='"ext4"'
+ '[' -n FS_TYPE ]
+ eval 'FS_TYPE="ext4"'
+ FS_TYPE=ext4
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'GRAPHICS="vnc"'
+ key=GRAPHICS
+ val='"vnc"'
+ '[' -n GRAPHICS ]
+ eval 'GRAPHICS="vnc"'
+ GRAPHICS=vnc
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'INCLUDE="bootstrap' desktop extra/pulse graphics 'init"'
+ key=INCLUDE
+ val='"bootstrap desktop extra/pulse graphics init"'
+ '[' -n INCLUDE ]
+ eval 'INCLUDE="bootstrap desktop extra/pulse graphics init"'
+ INCLUDE='bootstrap desktop extra/pulse graphics init'
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'INIT="run-parts"'
+ key=INIT
+ val='"run-parts"'
+ '[' -n INIT ]
+ eval 'INIT="run-parts"'
+ INIT=run-parts
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT '
+ read item
+ echo 'INIT_ASYNC="false"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=INIT_ASYNC
+ val='"false"'
+ '[' -n INIT_ASYNC ]
+ eval 'INIT_ASYNC="false"'
+ INIT_ASYNC=false
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'INIT_LEVEL="3"'
+ key=INIT_LEVEL
+ val='"3"'
+ '[' -n INIT_LEVEL ]
+ eval 'INIT_LEVEL="3"'
+ INIT_LEVEL=3
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL '
+ read item
+ echo 'INIT_PATH="/etc/rc.local"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=INIT_PATH
+ val='"/etc/rc.local"'
+ '[' -n INIT_PATH ]
+ eval 'INIT_PATH="/etc/rc.local"'
+ INIT_PATH=/etc/rc.local
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'INIT_USER="root"'
+ key=INIT_USER
+ val='"root"'
+ '[' -n INIT_USER ]
+ eval 'INIT_USER="root"'
+ INIT_USER=root
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'LOCALE="C"'
+ key=LOCALE
+ val='"C"'
+ '[' -n LOCALE ]
+ eval 'LOCALE="C"'
+ LOCALE=C
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE '
+ read item
+ echo 'MOUNTS="/storage/' /system /storage/emulated/0/ /sdcard /sdcard1 '/sdcard"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=MOUNTS
+ val='"/storage/ /system /storage/emulated/0/ /sdcard /sdcard1 /sdcard"'
+ '[' -n MOUNTS ]
+ eval 'MOUNTS="/storage/ /system /storage/emulated/0/ /sdcard /sdcard1 /sdcard"'
+ MOUNTS='/storage/ /system /storage/emulated/0/ /sdcard /sdcard1 /sdcard'
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'NET_TRIGGER=""'
+ key=NET_TRIGGER
+ val='""'
+ '[' -n NET_TRIGGER ]
+ eval 'NET_TRIGGER=""'
+ NET_TRIGGER=
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER '
+ read item
+ echo 'POWER_TRIGGER=""'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=POWER_TRIGGER
+ val='""'
+ '[' -n POWER_TRIGGER ]
+ eval 'POWER_TRIGGER=""'
+ POWER_TRIGGER=
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'PRIVILEGED_USERS="android"'
+ key=PRIVILEGED_USERS
+ val='"android"'
+ '[' -n PRIVILEGED_USERS ]
+ eval 'PRIVILEGED_USERS="android"'
+ PRIVILEGED_USERS=android
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS '
+ read item
+ echo 'PULSE_HOST="127.0.0.1"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=PULSE_HOST
+ val='"127.0.0.1"'
+ '[' -n PULSE_HOST ]
+ eval 'PULSE_HOST="127.0.0.1"'
+ PULSE_HOST=127.0.0.1
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST '
+ read item
+ echo 'PULSE_PORT="4712"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=PULSE_PORT
+ val='"4712"'
+ '[' -n PULSE_PORT ]
+ eval 'PULSE_PORT="4712"'
+ PULSE_PORT=4712
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'SOURCE_PATH="/mnt/sdcard2/p4a17.tgz"'
+ key=SOURCE_PATH
+ val='"/mnt/sdcard2/p4a17.tgz"'
+ '[' -n SOURCE_PATH ]
+ eval 'SOURCE_PATH="/mnt/sdcard2/p4a17.tgz"'
+ SOURCE_PATH=/mnt/sdcard2/p4a17.tgz
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH '
+ read item
+ echo 'SSH_ARGS=""'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=SSH_ARGS
+ val='""'
+ '[' -n SSH_ARGS ]
+ eval 'SSH_ARGS=""'
+ SSH_ARGS=
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS '
+ read item
+ echo 'SSH_PORT="22"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=SSH_PORT
+ val='"22"'
+ '[' -n SSH_PORT ]
+ eval 'SSH_PORT="22"'
+ SSH_PORT=22
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'SUITE="buster"'
+ key=SUITE
+ val='"buster"'
+ '[' -n SUITE ]
+ eval 'SUITE="buster"'
+ SUITE=buster
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'TARGET_PATH="/mnt/sdcard2/linux.img"'
+ key=TARGET_PATH
+ val='"/mnt/sdcard2/linux.img"'
+ '[' -n TARGET_PATH ]
+ eval 'TARGET_PATH="/mnt/sdcard2/linux.img"'
+ TARGET_PATH=/mnt/sdcard2/linux.img
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'TARGET_TYPE="file"'
+ key=TARGET_TYPE
+ val='"file"'
+ '[' -n TARGET_TYPE ]
+ eval 'TARGET_TYPE="file"'
+ TARGET_TYPE=file
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'USER_NAME="android"'
+ key=USER_NAME
+ val='"android"'
+ '[' -n USER_NAME ]
+ eval 'USER_NAME="android"'
+ USER_NAME=android
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'USER_PASSWORD="12345"'
+ key=USER_PASSWORD
+ val='"12345"'
+ '[' -n USER_PASSWORD ]
+ eval 'USER_PASSWORD="12345"'
+ USER_PASSWORD=12345
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'VNC_ARGS=""'
+ key=VNC_ARGS
+ val='""'
+ '[' -n VNC_ARGS ]
+ eval 'VNC_ARGS=""'
+ VNC_ARGS=
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS '
+ read item
+ echo 'VNC_DEPTH="16"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=VNC_DEPTH
+ val='"16"'
+ '[' -n VNC_DEPTH ]
+ eval 'VNC_DEPTH="16"'
+ VNC_DEPTH=16
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'VNC_DISPLAY="0"'
+ key=VNC_DISPLAY
+ val='"0"'
+ '[' -n VNC_DISPLAY ]
+ eval 'VNC_DISPLAY="0"'
+ VNC_DISPLAY=0
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'VNC_DPI="75"'
+ key=VNC_DPI
+ val='"75"'
+ '[' -n VNC_DPI ]
+ eval 'VNC_DPI="75"'
+ VNC_DPI=75
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI '
+ read item
+ echo 'VNC_HEIGHT="540"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=VNC_HEIGHT
+ val='"540"'
+ '[' -n VNC_HEIGHT ]
+ eval 'VNC_HEIGHT="540"'
+ VNC_HEIGHT=540
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'VNC_WIDTH="960"'
+ key=VNC_WIDTH
+ val='"960"'
+ '[' -n VNC_WIDTH ]
+ eval 'VNC_WIDTH="960"'
+ VNC_WIDTH=960
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH '
+ read item
+ echo 'X11_DISPLAY="0"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=X11_DISPLAY
+ val='"0"'
+ '[' -n X11_DISPLAY ]
+ eval 'X11_DISPLAY="0"'
+ X11_DISPLAY=0
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH X11_DISPLAY '
+ read item
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ echo 'X11_HOST="127.0.0.1"'
+ key=X11_HOST
+ val='"127.0.0.1"'
+ '[' -n X11_HOST ]
+ eval 'X11_HOST="127.0.0.1"'
+ X11_HOST=127.0.0.1
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH X11_DISPLAY ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH X11_DISPLAY X11_HOST '
+ read item
+ echo 'X11_SDL="false"'
+ grep -o '^[0-9A-Z_]\{1,32\}'
+ key=X11_SDL
+ val='"false"'
+ '[' -n X11_SDL ]
+ eval 'X11_SDL="false"'
+ X11_SDL=false
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH X11_DISPLAY X11_HOST ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH X11_DISPLAY X11_HOST X11_SDL '
+ read item
+ + echo 'X11_SDL_DELAY="15"'
grep -o '^[0-9A-Z_]\{1,32\}'
+ key=X11_SDL_DELAY
+ val='"15"'
+ '[' -n X11_SDL_DELAY ]
+ eval 'X11_SDL_DELAY="15"'
+ X11_SDL_DELAY=15
+ '[' -n ' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH X11_DISPLAY X11_HOST X11_SDL ' ]
+ OPTLST=' ARCH DESKTOP DISK_SIZE DISTRIB DNS FB_ARGS FB_DEV FB_DISPLAY FB_FREEZE FB_INPUT FB_REFRESH FS_TYPE GRAPHICS INCLUDE INIT INIT_ASYNC INIT_LEVEL INIT_PATH INIT_USER LOCALE MOUNTS NET_TRIGGER POWER_TRIGGER PRIVILEGED_USERS PULSE_HOST PULSE_PORT SOURCE_PATH SSH_ARGS SSH_PORT SUITE TARGET_PATH TARGET_TYPE USER_NAME USER_PASSWORD VNC_ARGS VNC_DEPTH VNC_DISPLAY VNC_DPI VNC_HEIGHT VNC_WIDTH X11_DISPLAY X11_HOST X11_SDL X11_SDL_DELAY '
+ read item
+ WITHOUT_CHECK=false
+ WITHOUT_DEPENDS=false
+ REVERSE_DEPENDS=false
+ EXCLUDE_COMPONENTS=
+ '[' -d /data/data/ru.meefik.linuxdeploy/files/config ]
+ '[' -d /data/data/ru.meefik.linuxdeploy/files/include ]
+ '[' -d /data/data/ru.meefik.linuxdeploy/files/tmp ]
+ '[' -d /data/local/mnt ]
+ OPTCMD=deploy
+ shift
+ DO_ACTION='do_install && do_configure'
+ OPTIND=1
+ getopts :n:mic FLAG
+ shift 0
+ params_parse
+ OPTIND=1
+ '[' 0 -gt 0 ]
+ shift 0
+ '['  '=' true ]
+ '[' 0 -gt 0 ]
+ component_exec 'bootstrap desktop extra/pulse graphics init'
+ local 'components=bootstrap desktop extra/pulse graphics init'
+ '[' false '!=' true ]
+ IGNORE_DEPENDS=' ' component_depends bootstrap desktop extra/pulse graphics init
+ local 'components=bootstrap desktop extra/pulse graphics init'
+ '[' -n 'bootstrap desktop extra/pulse graphics init' ]
+ local component conf_file TARGET DEPENDS
+ component=bootstrap
+ '[' -z ' ' ]
+ IGNORE_DEPENDS=' bootstrap '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/bootstrap/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/deploy.conf
+ eval 'DEPENDS="bootstrap/rootfs' 'bootstrap/${DISTRIB}' 'core"'
+ DEPENDS='bootstrap/rootfs bootstrap/rootfs core'
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends bootstrap/rootfs bootstrap/rootfs core
+ local 'components=bootstrap/rootfs bootstrap/rootfs core'
+ '[' -n 'bootstrap/rootfs bootstrap/rootfs core' ]
+ local component conf_file TARGET DEPENDS
+ component=bootstrap/rootfs
+ '[' -z ' bootstrap ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo bootstrap/rootfs
+ component=bootstrap/rootfs
+ '[' -z  ]
+ continue
+ component=core
+ '[' -z ' bootstrap bootstrap/rootfs ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/deploy.conf
+ eval 'DEPENDS="core/emulator' core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo 'core/unchroot"'
+ DEPENDS='core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot'
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot
+ local 'components=core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot'
+ '[' -n 'core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot' ]
+ local component conf_file TARGET DEPENDS
+ component=core/emulator
+ '[' -z ' bootstrap bootstrap/rootfs core ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/emulator/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/emulator/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/emulator/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/emulator
+ component=core/motd
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/motd/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/motd/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/motd/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/motd
+ component=core/hosts
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/hosts/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/hosts/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/hosts/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/hosts
+ component=core/hostname
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/hostname/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/hostname/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/hostname/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/hostname
+ component=core/mnt
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/mnt/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/mnt/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/mnt/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/mnt
+ component=core/net
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/net/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/net/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/net/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/net
+ component=core/timezone
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/timezone/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/timezone/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/timezone/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/timezone
+ component=core/su
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/su/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/su/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/su/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/su
+ component=core/locale
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/locale/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/locale/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/locale/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/locale
+ component=core/aid
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/aid/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/aid/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/aid/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/aid
+ component=core/profile
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/profile/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/profile/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/profile/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/profile
+ component=core/sudo
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/sudo/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/sudo/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/sudo/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/sudo
+ component=core/unchroot
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/core/unchroot/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/core/unchroot/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/core/unchroot/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends
+ local 'components='
+ '[' -n  ]
+ return 0
+ echo core/unchroot
+ echo core
+ echo bootstrap
+ component=desktop
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/desktop/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/desktop/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/desktop/deploy.conf
+ eval 'DEPENDS="bootstrap' desktop/desktop-base 'desktop/${DESKTOP}"'
+ DEPENDS='bootstrap desktop/desktop-base desktop/lxde'
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends bootstrap desktop/desktop-base desktop/lxde
+ local 'components=bootstrap desktop/desktop-base desktop/lxde'
+ '[' -n 'bootstrap desktop/desktop-base desktop/lxde' ]
+ local component conf_file TARGET DEPENDS
+ component=bootstrap
+ '[' -z  ]
+ continue
+ component=desktop/desktop-base
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/desktop/desktop-base/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/desktop/desktop-base/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/desktop/desktop-base/deploy.conf
+ eval 'DEPENDS="desktop"'
+ DEPENDS=desktop
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends desktop
+ local 'components=desktop'
+ '[' -n desktop ]
+ local component conf_file TARGET DEPENDS
+ component=desktop
+ '[' -z  ]
+ continue
+ echo desktop/desktop-base
+ component=desktop/lxde
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/desktop/lxde/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/desktop/lxde/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/desktop/lxde/deploy.conf
+ eval 'DEPENDS="desktop' 'desktop/dbus"'
+ DEPENDS='desktop desktop/dbus'
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends desktop desktop/dbus
+ local 'components=desktop desktop/dbus'
+ '[' -n 'desktop desktop/dbus' ]
+ local component conf_file TARGET DEPENDS
+ component=desktop
+ '[' -z  ]
+ continue
+ component=desktop/dbus
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/desktop/dbus/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/desktop/dbus/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/desktop/dbus/deploy.conf
+ eval 'DEPENDS="extra"'
+ DEPENDS=extra
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends extra
+ local 'components=extra'
+ '[' -n extra ]
+ local component conf_file TARGET DEPENDS
+ component=extra
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/extra/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/extra/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/extra/deploy.conf
+ eval 'DEPENDS="bootstrap"'
+ DEPENDS=bootstrap
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends bootstrap
+ local 'components=bootstrap'
+ '[' -n bootstrap ]
+ local component conf_file TARGET DEPENDS
+ component=bootstrap
+ '[' -z  ]
+ continue
+ echo extra
+ echo desktop/dbus
+ echo desktop/lxde
+ echo desktop
+ component=extra/pulse
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/extra/pulse/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/extra/pulse/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/extra/pulse/deploy.conf
+ eval
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends bootstrap desktop/desktop-base desktop/lxde
+ local 'components=bootstrap desktop/desktop-base desktop/lxde'
+ '[' -n 'bootstrap desktop/desktop-base desktop/lxde' ]
+ local component conf_file TARGET DEPENDS
+ component=bootstrap
+ '[' -z  ]
+ continue
+ component=desktop/desktop-base
+ '[' -z  ]
+ continue
+ component=desktop/lxde
+ '[' -z  ]
+ continue
+ echo extra/pulse
+ component=graphics
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse graphics '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/graphics/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/graphics/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/graphics/deploy.conf
+ eval 'DEPENDS="bootstrap' 'graphics/${GRAPHICS}"'
+ DEPENDS='bootstrap graphics/vnc'
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends bootstrap graphics/vnc
+ local 'components=bootstrap graphics/vnc'
+ '[' -n 'bootstrap graphics/vnc' ]
+ local component conf_file TARGET DEPENDS
+ component=bootstrap
+ '[' -z  ]
+ continue
+ component=graphics/vnc
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse graphics ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse graphics graphics/vnc '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/graphics/vnc/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/graphics/vnc/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/graphics/vnc/deploy.conf
+ eval 'DEPENDS="graphics"'
+ DEPENDS=graphics
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends graphics
+ local 'components=graphics'
+ '[' -n graphics ]
+ local component conf_file TARGET DEPENDS
+ component=graphics
+ '[' -z  ]
+ continue
+ echo graphics/vnc
+ echo graphics
+ component=init
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse graphics graphics/vnc ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse graphics graphics/vnc init '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/init/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/init/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/init/deploy.conf
+ eval 'DEPENDS="init/${INIT}"'
+ DEPENDS=init/run-parts
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends init/run-parts
+ local 'components=init/run-parts'
+ '[' -n init/run-parts ]
+ local component conf_file TARGET DEPENDS
+ component=init/run-parts
+ '[' -z ' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse graphics graphics/vnc init ' ]
+ IGNORE_DEPENDS=' bootstrap bootstrap/rootfs core core/emulator core/motd core/hosts core/hostname core/mnt core/net core/timezone core/su core/locale core/aid core/profile core/sudo core/unchroot desktop desktop/desktop-base desktop/lxde desktop/dbus extra extra/pulse graphics graphics/vnc init init/run-parts '
+ conf_file=/data/data/ru.meefik.linuxdeploy/files/include/init/run-parts/deploy.conf
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/init/run-parts/deploy.conf ]
+ grep -e '^TARGET=' -e '^DEPENDS=' /data/data/ru.meefik.linuxdeploy/files/include/init/run-parts/deploy.conf
+ eval 'DEPENDS="init"'
+ DEPENDS=init
+ '[' false '!=' true ]
+ component_is_compatible
+ local 'target='
+ '[' -n  ]
+ return 0
+ '[' false '=' true ]
+ component_depends init
+ local 'components=init'
+ '[' -n init ]
+ local component conf_file TARGET DEPENDS
+ component=init
+ '[' -z  ]
+ continue
+ echo init/run-parts
+ echo init
+ components='bootstrap/rootfs
core/emulator
core/motd
core/hosts
core/hostname
core/mnt
core/net
core/timezone
core/su
core/locale
core/aid
core/profile
core/sudo
core/unchroot
core
bootstrap
desktop/desktop-base
extra
desktop/dbus
desktop/lxde
desktop
extra/pulse
graphics/vnc
graphics
init/run-parts
init'
+ '[' -n 'bootstrap/rootfs
core/emulator
core/motd
core/hosts
core/hostname
core/mnt
core/net
core/timezone
core/su
core/locale
core/aid
core/profile
core/sudo
core/unchroot
core
bootstrap
desktop/desktop-base
extra
desktop/dbus
desktop/lxde
desktop
extra/pulse
graphics/vnc
graphics
init/run-parts
init' ]
+ set -e
+ COMPONENT_DIR=/data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs
+ '[' -d /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs ]
+ unset NAME DESC TARGET PARAMS DEPENDS EXTENDS
+ TARGET='*:*:*'
+ . /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.conf
+ NAME=rootfs
+ DESC='Prepare and import RootFS'
+ PARAMS='SOURCE_PATH TARGET_PATH'
+ EXTENDS=bootstrap/rootfs
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.sh ]
+ . /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.sh
+ '[' -n file ]
+ '[' -n ext4 ]
+ '[' -n 4000 ]
+ '[' -e /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.sh ]
+ . /data/data/ru.meefik.linuxdeploy/files/include/bootstrap/rootfs/deploy.sh
+ '[' -n file ]
+ '[' -n ext4 ]
+ '[' -n 4000 ]
+ component_is_exclude bootstrap/rootfs
+ local 'component=bootstrap/rootfs'
+ '[' -n bootstrap/rootfs ]
+ return 1
+ '[' false '!=' true ]
+ params_check SOURCE_PATH TARGET_PATH
+ local 'params_list=SOURCE_PATH TARGET_PATH'
+ local key val params_lost
+ eval 'val=$SOURCE_PATH'
+ val=/mnt/sdcard2/p4a17.tgz
+ '[' -z /mnt/sdcard2/p4a17.tgz ]
+ eval 'val=$TARGET_PATH'
+ val=/mnt/sdcard2/linux.img
+ '[' -z /mnt/sdcard2/linux.img ]
+ '[' -n  ]
+ return 0
+ '[' true '=' true ]
+ msg '## bootstrap/rootfs : do_install && do_configure'
+ echo '## bootstrap/rootfs : do_install && do_configure'
## bootstrap/rootfs : do_install && do_configure
+ set +e
+ eval do_install '&&' do_configure
+ do_install
+ '[' /data/local/mnt '!=' /mnt/sdcard2/linux.img ]
+ container_mounted
+ '[' chroot '=' chroot ]
+ is_mounted /data/local/mnt
+ local 'mount_point=/data/local/mnt'
+ '[' -n /data/local/mnt ]
+ grep -q ' /data/local/mnt ' /proc/mounts
+ 
+ return 1
+ msg ':: Installing bootstrap/rootfs ... '
+ echo ':: Installing bootstrap/rootfs ... '
:: Installing bootstrap/rootfs ... 
+ rootfs_make
+ msg -n 'Checking installation path ... '
+ echo -n 'Checking installation path ... '
Checking installation path ... + '[' -e /mnt/sdcard2/linux.img -a '!' -f /mnt/sdcard2/linux.img ]
+ '[' -n /mnt/sdcard2 -a '!' -e /mnt/sdcard2 ]
+ msg 'done'
+ echo 'done'
done
+ '[' file '=' file ]
+ local 'file_size=0'
+ '[' -f /mnt/sdcard2/linux.img ]
+ stat -c '%s' /mnt/sdcard2/linux.img
+ file_size=4194304000
+ '[' -z 4000 -o 4000 -le 0 ]
+ let 'file_size=4194304000/1048576'
+ '[' 4000 '!=' 4000 ]
+ '[' file '=' file -o file '=' partition ]
+ msg -n 'Making file system (ext4) ... '
+ echo -n 'Making file system (ext4) ... '
Making file system (ext4) ... + losetup -a
+ grep -c /mnt/sdcard2/linux.img
+ local 'loop_exist=0'
+ grep -c /mnt/sdcard2/linux.img /proc/mounts
+ local 'img_mounted=0'
+ '[' 0 -ne 0 -o 0 -ne 0 ]
+ which mke2fs
+ local 'makefs=/data/data/ru.meefik.linuxdeploy/files/bin/mke2fs'
+ '[' -n /data/data/ru.meefik.linuxdeploy/files/bin/mke2fs ]
+ /data/data/ru.meefik.linuxdeploy/files/bin/mke2fs -V
+ makefs='/data/data/ru.meefik.linuxdeploy/files/bin/mke2fs -q -FFF -t ext4'
+ /data/data/ru.meefik.linuxdeploy/files/bin/mke2fs -q -FFF -t ext4 /mnt/sdcard2/linux.img
Warning: could not read block 0: Attempt to read block from filesystem resulted in short read
+ is_ok fail 'done'
+ '[' 0 -eq 0 ]
+ '[' -n 'done' ]
+ msg 'done'
+ echo 'done'
done
+ return 0
+ '[' file '=' directory ]
+ '[' file '=' ram ]
+ return 0
+ container_mount
+ '[' chroot '=' chroot ]
+ '[' 0 -eq 0 ]
+ container_mount root proc sys dev shm pts fd tty tun binfmt_misc
+ '[' chroot '=' chroot ]
+ '[' 10 -eq 0 ]
+ params_check TARGET_PATH
+ local 'params_list=TARGET_PATH'
+ local key val params_lost
+ eval 'val=$TARGET_PATH'
+ val=/mnt/sdcard2/linux.img
+ '[' -z /mnt/sdcard2/linux.img ]
+ '[' -n  ]
+ return 0
+ msg -n 'Checking file system ... '
+ echo -n 'Checking file system ... '
Checking file system ... + fs_check
+ is_mounted /data/local/mnt
+ local 'mount_point=/data/local/mnt'
+ '[' -n /data/local/mnt ]
+ grep -q ' /data/local/mnt ' /proc/mounts
+ 
+ return 1
+ which e2fsck
+ local 'checkfs=/data/data/ru.meefik.linuxdeploy/files/bin/e2fsck'
+ '[' -z /data/data/ru.meefik.linuxdeploy/files/bin/e2fsck ]
+ /data/data/ru.meefik.linuxdeploy/files/bin/e2fsck -p /mnt/sdcard2/linux.img


/mnt/sdcard2/linux.img: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
	(i.e., without -a or -p options)
+ return 0
+ is_ok skip 'done'
+ '[' 0 -eq 0 ]
+ '[' -n 'done' ]
+ msg 'done'
+ echo 'done'
done
+ return 0
+ msg 'Mounting the container: '
+ echo 'Mounting the container: '
Mounting the container: 
+ local item
+ mount_part root
+ msg -n '/ ... '
+ echo -n '/ ... '
/ ... + is_mounted /data/local/mnt
+ local 'mount_point=/data/local/mnt'
+ '[' -n /data/local/mnt ]
+ grep -q ' /data/local/mnt ' /proc/mounts
+ 
+ return 1
+ '[' -d /data/local/mnt ]
+ local mnt_opts
+ '[' -d /mnt/sdcard2/linux.img ]
+ mnt_opts=rw,relatime
+ mount -o rw,relatime /mnt/sdcard2/linux.img /data/local/mnt
mount: mounting /dev/block/loop0 on /data/local/mnt failed: Device or resource busy
+ is_ok fail 'done'
+ '[' 255 -eq 0 ]
+ '[' -n fail ]
+ msg fail
+ echo fail
fail
+ return 1
+ return 1
+ return 1
+ return 1
+ return 1
+ exit 1
+ is_ok
+ '[' 1 -eq 0 ]
+ '[' -n  ]
+ return 1
+ return 1
+ printf <<< deploy

<<< deploy
+ exit 0

Image link broken

Any chance you share the img here on GitHub or maybe on Google drive? Link to website doesn't seem to be working.

Thanks.

Galaxy S5: Read-only file system

Hi there! Thanks for sharing this great app!

I have an old, rooted Galaxy S5 (SM-G901F) running LineageOS 14.1 with Android 7.1.2.

After installing PiDeploy and selecting "New Deployment" I get the following error log:

>>> deploy
## bootstrap/rootfs : do_install && do_configure
:: Installing bootstrap/rootfs ... 
Checking installation path ... mkdir: can't create directory './raspbian': Read-only file system
done
mkdir: can't create directory './raspbian': Read-only file system
Checking file system ... skip
Mounting the container: 
/ ... FUSE exfat 1.2.3
ERROR: failed to open './raspbian': No such file or directory.
mount: mounting ./raspbian on /data/local/raspbian failed: No such file or directory
fail
<<< deploy

Here is the status log given by PiDeploy:

>>> status
Device: SM-G901F
Android: 7.1.2
Architecture: armv7l
Kernel: 3.10.108-g8c8b947
Memory: 239/1766 MB
Swap: 301/437 MB
SELinux: active
Loop devices: yes
Support binfmt_misc: no
Supported FS: exfat ext2 ext3 ext4 f2fs fuseblk msdos vfat 
Installed system: unknown
Status of components: 
## bootstrap/rootfs : do_status
## core/emulator : do_status
## core/motd : do_status
## core/hosts : do_status
## core/hostname : do_status
## core/mnt : do_status
## core/net : do_status
## core/timezone : do_status
## core/su : do_status
## core/locale : do_status
## core/aid : do_status
## core/profile : do_status
## core/sudo : do_status
## core/unchroot : do_status
## core : do_status
## bootstrap : do_status
## init/sysv : do_status
## init : do_status
Mounted parts: 
<<< status

Pihole problem?

I just installed pihole on my phone but when I go to run it it just keeps saying it needs superuser privileges. And in terminal mode, it says it refused to connect to a certain website. Help!

PADD in Fullscreen

I am testing your pihole centOS system image since yesterday.

pihole and unbound are working perfectly.

My only problem is this:
How can i get PADD to show automatically in Fullscreen, without an titlebar or something on an rdp client on the same device?

thanks for your previous work

Support for i386

Unfortunately I only have zenfone 5 t00j phone, which has intel atom as soc. Could u support it by any chance?

image

Not working

Well, a few days ago i followed the same instructions in #47 and it worked i tested it in some ad testers sites, But now i retried the process, and it does show me is enabled, however it won't block any ad
Screenshot_2023-04-12-13-48-26-097_com desktopecho pideploy
Screenshot_2023-04-12-13-49-19-713_com android chrome

DNS service problem

Hi!
Today I tried to install piHole via android but I had a problem: after the installation, when I tapped in the "Start" (Avvia) button, the :"DNS service is NOT running" error appears. And I don't know how to fix this :(
photo_2023-07-05_20-36-04
photo_2023-07-05_20-36-01

Health status of this list is not showing.

Health status of this list: | List was not downloaded so far
-- | --
This list was added to Pi-hole | 7 minutes ago (2022-01-22 15:18:03)
Database entry was last modified | 6 minutes ago (2022-01-22 15:18:32)
The list contents were last updated | a few seconds ago (2022-01-2215:24:22)
Number of domains on this list: | N/A
Number of invalid domains on this list: | N/A
Database ID of this list: | 35

"Health status of this list", "Number of domains on this list", "Number of invalid domains on this list" not showing any info.

While it does actually updates it and working.
This is happening with all the lists in the web UI.
Any idea what might be the issue?

[android@localhost ~]$ pihole -g
  [i] Neutrino emissions detected...
  [✓] Pulling blocklist source list into range

  [✓] Preparing new gravity database
  [i] Using libz compression

  [i] Target: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  [✓] Status: Retrieval successful
  [i] Analyzed 97960 domains
  [i] List stayed unchanged

  [i] Target: https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
  [✓] Status: No changes detected
  [i] Analyzed 34 domains

  [i] Target: https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
  [✓] Status: No changes detected
  [i] Analyzed 2701 domains

  [i] Target: https://dbl.oisd.nl/
  [✓] Status: No changes detected
  [i] Analyzed 1134791 domains

  [i] Target: https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
  [✓] Status: Retrieval successful
  [i] Analyzed 42916 domains
  [i] List stayed unchanged

  [i] Target: https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts
  [✓] Status: Retrieval successful
  [i] Analyzed 57 domains
  [i] List stayed unchanged

  [i] Target: https://v.firebog.net/hosts/static/w3kbl.txt
  [✓] Status: No changes detected
  [i] Analyzed 357 domains

  [i] Target: https://adaway.org/hosts.txt
  [✓] Status: No changes detected
  [i] Analyzed 7525 domains

  [i] Target: https://v.firebog.net/hosts/AdguardDNS.txt
  [✓] Status: No changes detected
  [i] Analyzed 43805 domains

  [i] Target: https://v.firebog.net/hosts/Admiral.txt
  [✓] Status: No changes detected
  [i] Analyzed 636 domains

  [i] Target: https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
  [✓] Status: Retrieval successful
  [i] Analyzed 42292 domains
  [i] List stayed unchanged

  [i] Target: https://v.firebog.net/hosts/Easylist.txt
  [✓] Status: No changes detected
  [i] Analyzed 16300 domains

  [i] Target: https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&amp;showintro=0&amp;mimetype=plaintext
  [✓] Status: Retrieval successful
  [i] Received empty file
  [✗] List download failed: using previously cached list
  [i] Analyzed 3676 domains

  [i] Target: https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts
  [✓] Status: No changes detected
  [i] Analyzed 9 domains

  [i] Target: https://raw.githubusercontent.com/bigdargon/hostsVN/master/hosts
  [✓] Status: Retrieval successful
  [i] Analyzed 15267 domains
  [i] List stayed unchanged

  [i] Target: https://v.firebog.net/hosts/Easyprivacy.txt
  [✓] Status: No changes detected
  [i] Analyzed 12881 domains

  [i] Target: https://v.firebog.net/hosts/Prigent-Ads.txt
  [✓] Status: No changes detected
  [i] Analyzed 3670 domains

  [i] Target: https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.2o7Net/hosts
  [✓] Status: Retrieval successful
  [i] Analyzed 1286 domains
  [i] List stayed unchanged

  [i] Target: https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
  [✓] Status: Retrieval successful
  [i] Analyzed 378 domains
  [i] List stayed unchanged

  [i] Target: https://hostfiles.frogeye.fr/firstparty-trackers-hosts.txt
  [✓] Status: Retrieval successful
  [i] Received empty file
  [✗] List download failed: using previously cached list
  [i] Analyzed 14039 domains

  [i] Target: https://raw.githubusercontent.com/Zelo72/rpi/master/pihole/blocklists/kees1958.txt
  [✓] Status: Retrieval successful
  [i] Analyzed 4826 domains
  [i] List stayed unchanged

  [i] Target: https://raw.githubusercontent.com/DandelionSprout/adfilt/master/Alternate%20versions%20Anti-Malware%20List/AntiMalwareHosts.txt
  [✓] Status: Retrieval successful
  [i] Analyzed 6622 domains
  [i] List stayed unchanged

  [i] Target: https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt
  [✓] Status: Retrieval successful
  [i] Received empty file
  [✗] List download failed: using previously cached list
  [i] Analyzed 1116 domains

  [i] Target: https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt
  [✓] Status: No changes detected
  [i] Analyzed 2735 domains

  [i] Target: https://v.firebog.net/hosts/Prigent-Crypto.txt
  [✓] Status: No changes detected
  [i] Analyzed 14148 domains

  [i] Target: https://bitbucket.org/ethanr/dns-blacklists/raw/8575c9f96e5b4a1308f2f12394abd86d0927a4a0/bad_lists/Mandiant_APT1_Report_Appendix_D.txt
  [✓] Status: No changes detected
  [i] Analyzed 2046 domains

  [i] Target: https://phishing.army/download/phishing_army_blocklist_extended.txt
  [✓] Status: No changes detected
  [i] Analyzed 53981 domains

  [i] Target: https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt
  [✓] Status: Retrieval successful
  [i] Analyzed 325 domains
  [i] List stayed unchanged

  [i] Target: https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt
  [✓] Status: Retrieval successful
  [i] Analyzed 8148 domains
  [i] List stayed unchanged

  [i] Target: https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Risk/hosts
  [✓] Status: Retrieval successful
  [i] Analyzed 2202 domains
  [i] List stayed unchanged

  [i] Target: https://urlhaus.abuse.ch/downloads/hostfile/
  [✗] Status: Connection Refused
  [✗] List download failed: using previously cached list
  [i] Analyzed 1315 domains

  [i] Target: https://zerodot1.gitlab.io/CoinBlockerLists/hosts_browser
  [✓] Status: No changes detected
  [i] Analyzed 3496 domains

  [i] Target: https://raw.githubusercontent.com/llacb47/mischosts/master/tiktok-hosts
  [✓] Status: Retrieval successful
  [i] Analyzed 184 domains
  [i] List stayed unchanged

  [✓] Storing downloaded domains in new gravity database
  [✓] Building tree
  [✓] Swapping databases
  [✓] The old database remains available.

Update to Realtime clock solution

i tested this project with a TVbox android,
when i lock the entire network DNS via Pi-hole
After power loss
The Clock servers wont connect before the pi-hole start to work, thanks to unbound.
so Unbound returns SERVFAIL for all queries because time error

to recovery from that i need to
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

i think the DNS encripted protocol can't run without realtime device....
How we can inprove that, for non Realtime battery Devices?
can we patch it?

Pihole causing connectivity issues on other Android devices

Hello dear developer and everyone reading,
installing this fork of Linuxdeploy made my life definitely easier setting all of this up but there is one really strange issue that I haven't seen here or in other places on the internet.

First things first:
My setup is an old Xiaomi note 4 (mido) with a Syberia Android 10 custom rom and root with SELinux by default set to permissive.

When I installed the app and set up the pihole the usual installation flow was almost instantly interrupted for a short moment with the error: "wget: write error: broken pipe" (two times)
But I did not care, since it worked out and I could start sucessfully.
I can access the site and also ssh without issues, but every time I restart the Pihole I get a message saying: "yes: standard output: Broken pipe" followed by the normal as it should startup.
The Pihole is also working and does its job but from time to time there is something strange happening.

My other Android devices in the home (MAC adresses set to static) lose their connection every second and try to reconnect in a loop.
I found out that I can solve this by double tapping the device with Pihole and going into the app, but doing this every hour is going to drive everyone insane.
This issue is not affecting the Laptop, TV (not Android), Vaccuum and so on.

I thought that this is happening because of power saving features of the Note 4, so I disabled everything possible but this did not help at all unfortunately. The settings in the Pideploy app are also still activated so the CPU has work to do when the screen is off.

Also there is one more thing and I guess it is directly related to the issue above.
From time to time the log in the Pideploy app gets a bit larger and it is always the same messages:

>>> stop
## core/net : do_stop
<<< stop
>>> start
## core/net : do_start
<<< start 
(and so on)

Error on start

Hello, i was reinstalling Pi-Hole on my Samsung Galaxy S8 (Stock) with A2N Kernel (Permissive) and i get this error :

Status

Any idea or solution ?

Thanks.

Temp sensor not found

Hello, i got the pi hole to run however on the dashboard it saids “temp sensor not found”. Also I see a message saying the pi hole is out of date. How can I update this? When I try to I get an error. Thank you

Web interface not working

Hi, I'm running the app on the Mi 9T Pro and so far it works well and the adblocking works, I can also connect through ssh no problem, but the webserver doesn't seem to be working, it just keeps saying 'refused to connect' on any device I try.

Here's some screenshots of the status:
Screenshot_20230411-165751_Pi Deploy
Screenshot 2023-04-11 at 4 57 36 PM

And when I tried pihole -d, it gave me this error:
Screenshot 2023-04-11 at 5 00 24 PM

I already tried #3, but after restarting lighttpd and making sure it's running and everything it still doesn't work. I wonder if there's anything else I should try?

Start procedure not displaying all terminal messages

I managed to install on my PIXEL 4a 5g with LineageOS 19.
Deploying worked, but when I hit start, the terminal messages stop after ":: Starting init/sysv: android-raspbian ..."
The system seems to start up normaly otherwise, since I can connect to pi-hole via Browser.
BUT: I can not fetch the generated Password, since it is not displayed, the terminal messages are not shown.
Once I hit Stop terminal messages appear again, but that is of no use regarding the Password.
Can you help?
Kind regards,
Thiemo.

"pihole -up" not updating to latest version (only FTL was updated)

[android@localhost ~]$ pihole -v
Pi-hole version is v5.8.1 (Latest: v5.9)
AdminLTE version is v5.10.1 (Latest: v5.11)
FTL version is v5.14 (Latest: v5.14)

[android@localhost ~]$ pihole -up
[✓] Checking for git
[✓] Checking for iproute
[✓] Checking for newt
[✓] Checking for procps-ng
[✓] Checking for which
[✓] Checking for chkconfig
[✓] Checking for ca-certificates
[i] Checking for updates...
[i] Pi-hole Core: up to date
[i] Web Interface: up to date
[i] FTL: up to date
[✓] Everything is up to date!

Linux deploy gives me a Error after start

Hey Linux deploy gives me a Error after start "rc.local..... fail"

How can i fix it ?

00:09:41] >>> start
[00:09:41] Checking file system ... skip
[00:09:41] Mounting the container:
[00:09:41] / ... skip
[00:09:41] /proc ... skip
[00:09:41] /sys ... skip
[00:09:41] /dev ... skip
[00:09:41] /dev/shm ... skip
[00:09:41] /dev/pts ... skip
[00:09:41] :: Starting core/emulator ... skip
[00:09:41] :: Configuring core/mnt ...
[00:09:41] :: Configuring core/net ...
[00:09:41] :: Starting init/run-parts:
[00:09:41] rc.local ... fail
[00:09:41] <<< start

Long-term load (15min avg) larger than number of processors: 13.1 > 1

First of all--thanks for the release.

I am new to Pi-hole and don't have a Pi, but do have this old phone.

I noticed straight after the install that the loads are very high.

Linux Deploy is installed on the system's storage, but the 'Source path' and 'Installation path' are on an SD card.

Active Temp: 32.0 °C
Load: 12.37 12.23 12.27
Memory usage: 64.4 %

Phone Specs:
<<< System >>>

Device Model: Motorola Moto G 4G
Device Type: Phone
Manufacturer: motorola
Model: XT1039
Brand: motorola
Board: MSM8226
Device: peregrine
Hardware: qcom
Platform: msm8226
Product: peregrine_retgb
Serial: TA98602CII
Installed RAM: 1 GB LPDDR2
Total Memory: 873 MB
Available Memory: 186 MB
Internal Storage Total Space: 5653 MB
Internal Storage Free Space: 1651 MB
External Storage Total Space: 7493 MB
External Storage Free Space: 5103 MB

<<< CPU >>>

SoC Model: Qualcomm Snapdragon 400 (MSM8926)
Core Architecture: 4x ARM Cortex-A7 @ 1190 MHz
Manufacturing Process: 28 nm
Instruction Set: 32-bit ARMv7
CPU Revision: r0p3
CPU Cores: 4
CPU Clock Range: 300 - 1190 MHz
Core 1 Clock: 1190 MHz
Core 2 Clock: 1190 MHz
Core 3 Clock: 1190 MHz
Core 4 Clock: 1190 MHz
CPU Utilization: 66 %
Scaling Governor: interactive
Supported ABIs: armeabi-v7a, armeabi
Supported 32-bit ABIs: armeabi-v7a, armeabi
AES: Not Supported
NEON: Supported
PMULL: Not Supported
SHA1: Not Supported
SHA2: Not Supported

Full AIDA64 Info:
AIDA64 for Android v1.85 Report1.txt

Everything works like a charm, except of SSH

Hey,
First of all, you earned a great round of applause. That project is astonishing. My pi hole works with no excuses. But, I cannot authenticate to SSH connection. No matter if I set my password for android user, or leave that blank (then it is generated automatically), it does not work. I can use dns, I can ping, I simply cannot connect via SSH. RDP also works -> I see login panel, but password is incorrect.

Maybe it's a trivial question, but could you please help ? :)

PiHole keep disconnecting

Whenever Router tries to reboot, it assigns new IP to each other devices. So Pihole gets new IP and internet is disconnected cause router has specific ip of older pihole ip. So had to enable new IP in Router. Anyway to assign static IP to pihole to resolve the issue.

How to make unbound work without forward zone?

Hi! I noticed that in the default unbound configuration file (pihole.conf) that it is forwarding to quad9 and cloudflare servers.
When i try to use the unbound configuration from pihole website, unbound doesn't work.

Pihole unbound configuration:

server:
    # If no logfile is specified, syslog is used
    # logfile: "/var/log/unbound/unbound.log"
    verbosity: 0

    interface: 127.0.0.1
    port: 5335
    do-ip4: yes
    do-udp: yes
    do-tcp: yes

    # May be set to yes if you have IPv6 connectivity
    do-ip6: no

    # You want to leave this to no unless you have *native* IPv6. With 6to4 and
    # Terredo tunnels your web browser should favor IPv4 for the same reasons
    prefer-ip6: no

    # Use this only when you downloaded the list of primary root servers!
    # If you use the default dns-root-data package, unbound will find it automatically
    #root-hints: "/var/lib/unbound/root.hints"

    # Trust glue only if it is within the server's authority
    harden-glue: yes

    # Require DNSSEC data for trust-anchored zones, if such data is absent, the zone becomes BOGUS
    harden-dnssec-stripped: yes

    # Don't use Capitalization randomization as it known to cause DNSSEC issues sometimes
    # see https://discourse.pi-hole.net/t/unbound-stubby-or-dnscrypt-proxy/9378 for further details
    use-caps-for-id: no

    # Reduce EDNS reassembly buffer size.
    # IP fragmentation is unreliable on the Internet today, and can cause
    # transmission failures when large DNS messages are sent via UDP. Even
    # when fragmentation does work, it may not be secure; it is theoretically
    # possible to spoof parts of a fragmented DNS message, without easy
    # detection at the receiving end. Recently, there was an excellent study
    # >>> Defragmenting DNS - Determining the optimal maximum UDP response size for DNS <<<
    # by Axel Koolhaas, and Tjeerd Slokker (https://indico.dns-oarc.net/event/36/contributions/776/)
    # in collaboration with NLnet Labs explored DNS using real world data from the
    # the RIPE Atlas probes and the researchers suggested different values for
    # IPv4 and IPv6 and in different scenarios. They advise that servers should
    # be configured to limit DNS messages sent over UDP to a size that will not
    # trigger fragmentation on typical network links. DNS servers can switch
    # from UDP to TCP when a DNS response is too big to fit in this limited
    # buffer size. This value has also been suggested in DNS Flag Day 2020.
    edns-buffer-size: 1232

    # Perform prefetching of close to expired message cache entries
    # This only applies to domains that have been frequently queried
    prefetch: yes

    # One thread should be sufficient, can be increased on beefy machines. In reality for most users running on small networks or on a single machine, it should be unnecessary to seek performance enhancement by increasing num-threads above 1.
    num-threads: 1

    # Ensure kernel buffer is large enough to not lose messages in traffic spikes
    so-rcvbuf: 1m

    # Ensure privacy of local IP ranges
    private-address: 192.168.0.0/16
    private-address: 169.254.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
    private-address: fd00::/8
    private-address: fe80::/10

default config:

server:
        access-control: 127.0.0.0/8 allow
        cache-max-ttl: 14400
        cache-min-ttl: 600
        do-tcp: yes
        hide-identity: yes
        hide-version: yes
        interface: 127.0.0.1
        minimal-responses: yes
        prefetch: yes
        qname-minimisation: yes
        rrset-roundrobin: yes
        ssl-upstream: yes
        use-caps-for-id: yes
        verbosity: 1
        port: 5335

forward-zone:
        name: "."
        forward-addr: 9.9.9.9@853 # quad9.net primary
        forward-addr: 1.1.1.1@853 # cloudflare primary
        forward-addr: 149.112.112.112@853 # quad9.net secondary
        forward-addr: 1.0.0.1@853 # cloudflare secondary

I also tried using the root hints file, still doesn't work

Is there any way to make unbound work without forwarding to quad9 and cloudflare or any other dns server?

Samsung Tab S2 - cannot deactivate SELinux Enforce because Inkernel SeLinux

Hello Here are i'm again^^ Ok i got finally Rooted my Samsung Tab 2 SM-T 813 (after 3 Failures and 1 Brick i was able to Root the Stock Samsung OS from 2016) and followed your Steps Carefully. Ok now next Huge Problem, when i try to install the Script in the Linux deplolyer it says permission denied on mass. I looked in the Internet and it is caused by the INKERNEL integrated SELinux Enforce mode (Knox) (yes i tried to delete the App but it gets instant installed from the Inkernel. And no LinuxSeSwitcher dont work, it says permissive is sent to system but in systeminfo it stays enforced AND after reboot to. I Even installed that Busybox thingy. ^^

So i have to search for a Custom ROM. But... my Nerves are Momentarly at zero lol. I need Guidance pls lol, just as i sayd in my previous post on the Windows 10 Pi-Hole Thread that i'm not so good at Programming things, i just want to get that Pi-Hole worked on android, so that i can relax. ^^ But when it's too complicated i will stick to the Brave Browser lol.

I say already thanks for Reading this.

Can't change any pihole settings

Hi, I've encountered an odd issue. I'd like to manually select the upstream DNS servers in the pihole web interface, but for some reason when change any settings, once I click save nothing changes. Any ideas why that could be? I've tested it on my pi zero, and everything seems to work fine...

Say I'd like to enable google DNS:
image

Once I click save, the settings return to the original values...
image

Deployment error on Nexus player & other 64-bit only ARM CPUs

Hi there
20221229_141419
20221229_141415

Thank you so much for your hard work in putting this together.

I tried deploying raspian OS onto my Asus Google Nexus
![20221229_141630](https://user-
20221229_141423
images.githubusercontent.com/121622603/210003654-8e859b7c-95ac-4586-85e0-182f715da982.jpg)
20221229_141447
player on Android 8.0

However I have run into the following problems.

I was wondering if you have any tips for me ?

Thank You in advance.

Change Installation size

the change installation size is greyed out and set to 2048 mb.. i would like to atleast set 4gb

Pi-Hole not working

Hi, The web interface work but the pi-hole doesn't block ads.

Status

Any idea ?
Thanks.

Questions about new feature and apk updates ?

Is there a chance that a new apk file will be released with the latest components with the ability to synchronize between devices with this app installed, eg using gravity sync and possibly with the option to change or remove the password for easier integration with various services like home assistant?

Number of cpu cores not recognized, resulting in numerous high load notifications

My setup:
Samsung Galaxy S4 (GT-I9505) (Snapdragon 600, quadcore SoC)
crDroid 7.21 (LOS 18.1/Android 11)
Magisk 25.2
Linux Deploy 2.60
BusyBox (meefik) 1.34.1

Pi-hole is set up and running, resolving & blocking, all good so far.

The only thing that's a bit frustrating is the constantly popping up "high load" notifications.

It seems that Pi-hole (or one of its sub-systems) doesn't recognize all usable cores provided by the device, like 1 cpu/4 cores, instead sees just 1 cpu/1 core but the load values indicate that all cores are indeed used, but somehow Pi-hole doesn't understand this and panics because the 1 cpu/1 core it sees is always on ~4x load.

Any ideas how to change this behaviour? I don't have that on a RPi running Pi-hole.

Thank you for your time and effort!

Screenshot_20220913-072904_Vivaldi Browser

UDP status "not working" but seems to be working actually

This is an issue which happened on one of my devices (Kernel 3.4.0) after an update to pihole v5.8 (and higher).

  [✓] FTL is listening on port 53
     [✗] UDP (IPv4)
     [✓] TCP (IPv4)
     [✗] UDP (IPv6)
     [✓] TCP (IPv6)

  [✓] Pi-hole blocking is enabled

It is also something which is not particularly unique to my device but I'm a bit lost as to why it happens since a month.
Here's a few people having the issue on reddit as well: https://www.reddit.com/r/pihole/comments/rxg75n/udp_not_working_after_581_update/?sort=new

I have another device with an even older kernel v3.0.8 and status is fine there. I'm unsure as to why it may be an issue on newer kernel since the p4a image is same on both devices?

Any idea how can do RCA on this?

Thanks!

Unable to access admin console after installing

Hi,
I have successfully installed this on a MotoZ2 force running lineage 18.1, and everything seems fine except I can't access the admin console. I can do SSH and RDP access.

Please see the screenshots:
Screenshot_20220114-140348_Trebuchet
Screenshot 2022-01-14 140828

Ever increasing Size of /dev/block/loop0

I have done -

  1. Removing db file
  2. Removing log file
  3. Installed NCDU, removed large files from /var/log

Still, when I do df -h, size is increasing for this block.

Android 4.x ONLY - FTL not updating to v5.19.2 after "p4a-install"

[✓] Update complete!

/etc/pihole/versions: line 14: invalid: command not found
/etc/pihole/versions: line 15: Command:: command not found
/etc/pihole/versions: line 16: Try: command not found

Cloning into 'FTL'...sion is v5.14.1
remote: Enumerating objects: 295, done.
remote: Counting objects: 100% (295/295), done.
remote: Compressing objects: 100% (279/279), done.
remote: Total 295 (delta 25), reused 105 (delta 12), pack-reused 0
Receiving objects: 100% (295/295), 3.38 MiB | 104.00 KiB/s, done.
Resolving deltas: 100% (25/25), done.

Building pihole-FTL from source. This will take a few minutes...

/etc/pihole/versions: line 14: invalid: command not found
/etc/pihole/versions: line 15: Command:: command not found
/etc/pihole/versions: line 16: Try: command not found

Pi-hole version is v5.14.1 (Latest: v5.14.1)
AdminLTE version is v5.17 (Latest: v5.17)
FTL version is v5.16.3 (Latest: v5.19.2)
[✓] FTL is listening on port 53
[✓] UDP (IPv4)
[✓] TCP (IPv4)
[✓] UDP (IPv6)
[✓] TCP (IPv6)

[✓] Pi-hole blocking is enabled

Update

Hi.
Can You update pihole to latest version v5.13?

Can't install PIXEL Desktop

Hi, i tried to install pixel desktop using the command pideploy-gui-install and this is what i got:

Hit [Enter] to install Raspbian PIXEL Desktop environment, CTRL-C to exit
Hit:1 http://archive.raspberrypi.org/debian bullseye InRelease
Get:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease [15.0 kB]
Fetched 15.0 kB in 4s (4,027 B/s)
Reading package lists... Done
Reading package lists... Done
E: Unsupported file ./libgnome-keyring-common_3.12.0-1_all.deb given on commandline
E: Unsupported file ./libgnome-keyring0_3.12.0-1+b2_armhf.deb given on commandline
E: Unsupported file ./gksu_2.0.2-9+b1_armhf.deb given on commandline
E: Unsupported file ./libgksu2-0_2.0.13~pre1-9+b1_armhf.deb given on commandline
E: Unsupported file ./libgtop-2.0-10_2.34.2-1_armhf.deb given on commandline
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
rpi-chromium-mods is already the newest version (20220711).
0 upgraded, 0 newly installed, 0 to remove and 63 not upgraded.
mv: cannot stat '/usr/bin/lxpolkit': No such file or directory
/usr/local/bin/pideploy-gui-install: line 38: gconftool: command not found

is there a solution to this? Thanks:)

Steps to get root access over ssh in legacy devices(specifically samsung)

Updating pi hole adlist can be done in two ways,

1. Through web browser

2. Through ssh or remote desktop connection.

But in my case I was not able update adlist by any of them. When I perform a update command pihole -g I was getting error sudo: PERM_ROOT: setresuid(0, -1, -1): Permission denied.

It can be solved by setting the username -> root and password -> toor before starting installation.

ssh using ssh [email protected] and password as toor can give root access to update adlist. (here 192.168.0.111 was my local ip assigned for deivce on which pi hole was installed, so change it accordingly.).

Error: Kernel Too Old

Today, I tried out the newer PiDeploy version on my Super Old Xperia U (Cm12.1) got the below errors.

While Installation:
Screenshot_2022-11-05-10-56-38

When I Clicked on Start after Installation was complete (got the above error during installation but still showed deployment is completed)
Screenshot_2022-11-05-10-56-48

Here's my Kernel Version for reference:
Screenshot_2022-11-05-10-57-03

Before getting the above error, I got mount error but resolved it by changing Installation Type from File to Directory as suggested here

I was using the legacy version earlier on CM11, but since last 2 months FTL updates were not getting installed. So, tried this newer version.

Hope there's some workaround available for this issue.

Anyways, Thanks a ton for this project.

move app/data to external sdcard

Can the app or data be moved.to external sdcard? I'm asking because I'm trying to load it on a very old android tv stick that I got laying there, but it's internat storage is only 4G. So I want to know if someone has tried to move it to external sdcard, I've tried with AppMgrII and no luck. My device is rooted.

[Fixed in 3.6.6] PADD not working

Hello, I successfully installed pihole on my android device all thanks to you. I sshed to my android device on windows using putty but when I type the "padd" nothing happens.

Unable to reach pihole on any device but the phone itself

Hello, I've been trying to get pihole to be accessible to the router and other devices on the local network to no avail, lighttpd is running and I tried reatarting to dodgy results. Ports are correctly used by lighttpd (port 80) and I can access the pihole from the device itself, but none other, either via web interface, ssh or rdp, the phone is a rooted Samsung Galaxy J1 2016 running unofficial LineageOS 14.1 (Android 7.1.2)

unbound not installed

good day, I yried installing the android apk version, but it seems like that unbound is not getting installed with my instance… i tried set it up as my dns for my phone and on the web interface, the reply keeps getting posted as ‘N/A’ but when i untick the custom dns server (127.0.0.1) and tick 8.8.8.8, the internet works…

i’m not sure if this is relevant, but when i type ‘unbound’ as a command on the ssh it says that it is an unknown command, conversely, on the legacy version, typing in the same command replies what seems to be a log(?)

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.