Pi-hole for ARMv7 (2011 and newer) Android devices.
[ Preface: I have successfully deployed this to several ARMv7 and ARMv8 devices, but looking for additional test devices to ensure the scripts are robust enough to detect the many various device configurations out there, especially interested in RockChip and Allwinner-based Android HDMI sticks. Please give it a spin and report your results - Thanks! ]
Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole intended for use on a private network. It is designed for low-power embedded devices with network capability, most well-known being the Raspberry Pi.
This customized Linux Deploy image works on any rooted Android device with an ARMv7 (or newer) class CPU. This typically includes anything made in the past 10 years. Form factor is not important; it could be a phone, tablet, HDMI stick or any device running Android.
Requirements:
· Android device, rooted
· Developer Options -> Root Access -> Enabled for Apps
Instructions:
· Open browser on device and download+install the Linux Deploy APK below. You can also download it from the Play Store if you prefer:
· Download the Pi-hole for Android disk image: (v1.5 / January 16, 2022)
· Restart Phone (This is REQUIRED)
· Open Linux Deploy
· Go back to main window, click Options Menu (Three dots, top right of screen) and click "Install"
· Open Hamburger Menu (Top Left) and touch "Settings"
Touch the [ -> START ] button and confirm when prompted.
Pi-hole is now installed and running!
Your Android device's IP is shown at the top of the Linux Deploy main window. You can interact with the Pi-hole instance in three ways:
Open a web browser to the Android device's IP address. Example:
http://10.13.12.11/admin
SSH to the instance on port 22. Example:
ssh [email protected]
RDP to the device's IP address to open an XTerm. Example:
mstsc.exe /v:10.13.12.11
Additional Info
You can restart (or "bounce") the Pi-hole instance in Linux Deploy by pressing [ ■ STOP ] and waiting a few seconds for the instance to indicate all services are stopped. Restart the instance by pressing [ ▸ START ]
When a Pi-hole instance starts up, the default setting is to let it 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/rc.local (You will see which ones when you open the file in an editor.) After the lines are commented out with a hash "#" you can manually add your IP, subnet and interface name to /etc/pihole/setupVars.conf
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, "thermal event" or worse. A new battery makes an excellent UPS for the tiny Linux box you just provisioned!
[ Preface: I have successfully deployed this to several ARMv7 and ARMv8 devices, but looking for additional test devices to ensure the scripts are robust enough to detect the many various device configurations out there, especially interested in RockChip and Allwinner-based Android HDMI sticks. Please give it a spin and report your results - Thanks! ]
Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole intended for use on a private network. It is designed for low-power embedded devices with network capability, most well-known being the Raspberry Pi.
This customized Linux Deploy image works on any rooted Android device with an ARMv7 (or newer) class CPU. This typically includes anything made in the past 10 years. Form factor is not important; it could be a phone, tablet, HDMI stick or any device running Android.
Requirements:
· Android device, rooted
· Developer Options -> Root Access -> Enabled for Apps
Instructions:
· Open browser on device and download+install the Linux Deploy APK below. You can also download it from the Play Store if you prefer:
· Download the Pi-hole for Android disk image: (v1.5 / January 16, 2022)
· http://desktopecho.com/p4a15.tar.gz (MD5: f20ce97741a56fc599739bf830f53be9)
· Restart Phone (This is REQUIRED)
· Open Linux Deploy
· Open Properties Menu (Bottom Right)
· Distribution: rootfs.tar
· Source Path - This varies depending on the device, ie: ${EXTERNAL_STORAGE}/Download/p4a15.tar.gz
· Set password for user "android"
· Init -> Enable
· Go back to main window, click Options Menu (Three dots, top right of screen) and click "Install"
· Wait a few minutes for the disk image to install.
· Allow the install to complete before proceeding to next steps.
· When install is complete, the Linux Deploy console window will show the following:
Code:
[HH:mm:ss] >>> :: Configuring core/launchroot ...
[HH:mm:ss] >>> deploy
· Open Hamburger Menu (Top Left) and touch "Settings"
· Place check mark on Lock Wi-Fi
· Place check mark on Autostart
Touch the [ -> START ] button and confirm when prompted.
Pi-hole is now installed and running!
Your Android device's IP is shown at the top of the Linux Deploy main window. You can interact with the Pi-hole instance in three ways:
Open a web browser to the Android device's IP address. Example:
http://10.13.12.11/admin
SSH to the instance on port 22. Example:
ssh [email protected]
RDP to the device's IP address to open an XTerm. Example:
mstsc.exe /v:10.13.12.11
Additional Info
You can restart (or "bounce") the Pi-hole instance in Linux Deploy by pressing [ ■ STOP ] and waiting a few seconds for the instance to indicate all services are stopped. Restart the instance by pressing [ ▸ START ]
When a Pi-hole instance starts up, the default setting is to let it 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/rc.local (You will see which ones when you open the file in an editor.) After the lines are commented out with a hash "#" you can manually add your IP, subnet and interface name to /etc/pihole/setupVars.conf
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, "thermal event" or worse. A new battery makes an excellent UPS for the tiny Linux box you just provisioned!
Last edited: