Sometimes the best SBC is the one already gathering dust in your desk drawer • Debian APK installer, fully deployed in 5 minutes [root] reddit / selfhosted ---------------------------------------------------------------------- desktopecho · 2023-12-26 23:14 [Project page](https://github.com/DesktopECHO/Pi-hole-for-Android) on GitHub [Up and running on a Amazon Fire HD 8 \(2017\)](https://preview.redd.i t/jm8psiazlp8c1.png?width=912&format=png&auto=webp&s=0dcbbdd64c212cfde eb046e1d08194b43f3901f8) Pi Deploy is a fork of Linux Deploy and disk image tuned for server duty on Android devices. It can be used on **any** rooted Android device with an **ARMv7 or AArch64 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](https://github.com/DesktopECHO/Pi-hole-for- Android/tree/legacy) # [Installer walk-thru](https://www.youtube.com/watch?v=sdDkKvaRvOs) on YouTube ## 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 last bit of the **Source Path** URL from `/raspbian.tgz` to `/raspbian32.tgz` * The [Pi-Hole ad-blocking DNS server](https://docs.pi-hole.net/) is installed by default. * 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: * Any ARM-based Android 5.0+ device (Jellybean or newer) that has been rooted ## Download/Install the latest [Pi Deploy APK](https://github.com/DesktopECHO/Pi-hole-for- Android/releases/latest/download/pideploy.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) [More Options](https://preview.redd.it/toxm3pe9zp8c1.png?width=1020&fo rmat=png&auto=webp&s=45b26ae18996ad8200ea5080cb4de978aeea4cc6) * Tap **New Deployment** [New Deployment](https://preview.redd.it/v0e496kbzp8c1.png?width=1020& format=png&auto=webp&s=c0a7cf45f203cf36406f0b67309ca762760d837b) * In a few minutes, the container 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*) * **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! [Android browser accessing Pi hole Web Admin](https://preview.redd.it/ 2ww7dmcezp8c1.png?width=1280&format=png&auto=webp&s=cbe190e130b7e054cd 4addc5acf8e89e465f84b6) The Android device's IP is shown at the top of the Pi Deploy main window. You can interact with the Linux instance 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 android@10.73.0.31` * 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](h ttps://play.google.com/store/apps/details?id=com.microsoft.rdc.android x) client or [aRDP](https://play.google.com/store/apps/details?id=com. iiordanov.freeaRDP&hl=en&gl=US). **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. 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` [RDP Connection to Debian Linux, hosted on an Amazon Fire HD 8 \(2017\ )](https://preview.redd.it/g62jtsdhzp8c1.png?width=1392&format=png&aut o=webp&s=e5a968aa35827f6e29b758eac74fe3764a848ad7) ***\*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***](https://www.u rbandictionary.com/define.php?term=unexpected+thermal+event). A good battery provides [UPS](https://en.wikipedia.org/wiki/Uninterruptible_power_supply) protection for your newly provisioned microsever. **Note:** There is no endorsement or partnership between this page and [Pi-hole© LLC](https://pi-hole.net/). They deserve [your support](https://pi-hole.net/donate/) if you find this useful. ---------------------------------------------------------------------- gamechiefx · 2023-12-27 00:35 I'm trying to understand what I'm looking at here: Will this allow me to host containers on my rooted mobile? ---------------------------------------------------------------------- Bagel42 · 2023-12-27 01:48 I think so ---------------------------------------------------------------------- desktopecho · 2023-12-27 01:49 Just one container running Debian 12. It's actually better described as a porous chroot. Debian and Android share the same running kernel. The Debian instance has access to all the system/hardware interfaces that Android sees (`/dev`, `/proc`, others). Another example - If you login to Debian and run `top` as root, you'll see Android processes runnning alongside ones spawned by the Debian instance. There are challenges though. Android has no concept of `systemd`. Pi Deploy manages services with SysV Init. By baking-in a `systemctl` shim, services start and stop with familiar syntax, avoiding the need to patch scripts that target a normal Linux machine. There are also shims for rights escalation in remote GUI sessions (`gksudo`) and fixes to address Android-*isms* in other areas. All the configs are up on the GitHub repo. Edit: Also worth pointing out the Android display stack and the one used by vanilla Linux are totally different, so the Debian instance can't use the Android display natively. This isn't a problem if you want a headless Linux server that reachable over RDP or SSH, like this use-case. ---------------------------------------------------------------------- daYMAN007 · 2023-12-27 06:56 Wouldn't it be possible to use something like the old WSL hacks before Microsoft implemented systemd support? [https://github.com/nullpo-head/wsl- distrod](https://github.com/nullpo-head/wsl-distrod) ---------------------------------------------------------------------- fmillion · 2023-12-27 08:43 Too bad many of my older phones collecting dust can't be rooted (well one can be rooted with KingRoot but...)