Your Old Phone Wants a New Job

You probably have an old Android phone sitting in a drawer right now. It still boots, the screen works, and the battery holds a charge for a little while. You stopped using it because it felt slow for daily apps, not because it was broken. That old Android phone can do something useful again: become a dedicated video download server.

Maybe you keep a list of videos you want to watch offline. Tutorials, talks, family clips that live on YouTube or other sites. Instead of sitting at your computer to grab them one by one, you can turn that old phone into a server that downloads videos on a schedule while you sleep. It costs almost nothing and uses just a few watts.

The path is simpler than it sounds. You install postmarketOS, a real Linux distribution made for phones, then add an open-source downloader called yt-dlp. This guide walks through every step, from checking your phone model to copying videos back to your main computer. No prior Linux experience needed.

Why a Phone Works as a Download Server

Downloading videos is not a heavy CPU job. When you tell yt-dlp to save a video without re-encoding it, the phone just moves data from the internet to storage. That is called network I/O, and even a 2015-era phone handles it easily. A four-core Snapdragon 410 rarely goes above ten percent CPU usage during a download.

Phones already come with everything a small server needs. Built-in Wi-Fi, a battery that acts like a tiny UPS, a microSD slot for storage, and a screen for setup. The whole package draws two to five watts under load—your old laptop would use ten times that. If you have an old PC lying around, you can absolutely use it as a home server, but a phone is smaller, quieter, and already designed to run 24/7 with minimal heat.

The storage question matters. Phones from this era often support a microSD card, and a Class 10 card writes at 10 to 20 megabytes per second. That is faster than the Wi-Fi download speed we will talk about later, so storage won't be your bottleneck.

Android vs Linux: The Two Routes

You have two realistic ways to put Linux on an old Android phone: run a terminal emulator on top of Android, or replace Android entirely with a real Linux distribution. Here is how they compare for a video download server.

Feature Termux on Android postmarketOS (real Linux)
Background tasks Often killed by Android battery management Runs reliably in system services
System-level cron No direct system cron; workarounds needed Full cron support
SSH stability Works but can drop with screen off SSH runs as a normal service
Memory overhead Android still uses most of your RAM Linux uses a fraction, leaving more free
Best for Quick experiments Long-term always-on server

Termux feels familiar because Android keeps running underneath. But Android aggressively kills background apps, especially on older phones with limited RAM. For a download server that should fetch videos at 2:00 AM while you sleep, that is a dealbreaker. If you want a stable always-on device, a real Linux install is the way to go.

What Is postmarketOS?

postmarketOS, often shortened to pmOS, is a Linux distribution built specifically to keep old phones and tablets useful. It is based on Alpine Linux, a tiny and efficient system that uses very little storage. The project focuses on mainline Linux kernels instead of old vendor kernels, which means your old phone gets modern security updates as of 2026.

A big win for the Snapdragon 410 platform is shared kernel support. The Xiaomi Redmi 2 and more than 25 other devices from that generation use the same mainline kernel package, called linux-postmarketos-qcom-msm8916. That package was still actively maintained in July 2026. Linux 7.0 began including MSM8916 device support in mainline, which is a huge step for long-term sustainability.

For this guide, I use the Xiaomi Redmi 2 as the example. Released in 2015, it has a Snapdragon 410 quad-core 1.2GHz CPU, 1–2GB of RAM, 8–16GB of internal storage, a microSD slot, and 2.4GHz Wi-Fi. It is cheap, widely available, and has an excellent postmarketOS community port.

What Works and What Doesn't

On the Redmi 2, the postmarketOS community has gotten nearly everything working for daily server use. Here is the honest table.

Component Status on Redmi 2 with postmarketOS
Wi-Fi Works
Bluetooth Works
Sound (speaker, headphones, mic) Works (the speaker may pop or click under CPU load — a known mainline kernel quirk, harmless)
Touchscreen Works
Display + brightness Works
SMS, calls, mobile data Work
eMMC + microSD storage Works
Camera Not working
Battery / charging management Incomplete: fast drain, inaccurate percentages

The camera gap does not matter for a download server. The battery quirks do matter a little. You may see the percentage jump around or drop faster than expected. Keep the phone plugged in near your router and you'll be fine.

Before You Flash

Flashing Linux over Android is not as scary as it sounds, but you need to prepare three things.

First, confirm your exact phone model variant. The Redmi 2 has two hardware versions: the international model wt88047 and the China model wt86047. Their modem firmware is not interchangeable. Check the sticker under the battery or the original box. Flashing the wrong variant can leave cellular functions broken. postmarketOS ships one image for the whole Redmi 2 family, so both variants use the same download — the sticker just tells you what modem behavior to expect. My own phone is the 2014813 China variant, and the official image ran on it without changes.

Second, make a full backup of your current Android setup. Use TWRP recovery or the manufacturer's official tool. Most important, back up the EFS partition. EFS stores your device's unique identity (IMEI, baseband data). If EFS gets corrupted, you can lose cellular connectivity permanently. Keep that backup somewhere safe on your computer. On Qualcomm devices like this one, EFS is spread across partitions named modemst1, modemst2, fsg, and a few smaller ones — TWRP's "EFS" backup option covers them all, so use that rather than copying individual partitions by hand.

Third, install adb and fastboot on your computer. On Windows, use the official platform-tools from Google. On Linux or macOS, install through your package manager. Test that your computer sees the phone by connecting a USB cable and running fastboot devices. The Redmi 2 has no bootloader lock, so you won't need an unlock tool like newer phones do.

Install postmarketOS Step by Step

This is the official flash route using lk2nd, a second-stage bootloader for MSM8916 devices. The latest version as of this writing is 23.1.

Before you begin, download two files from the postmarketOS website for your device: the lk2nd bootloader image and the rootfs image. The separate kernel boot image on the download page is only needed for other installation methods — with lk2nd 0.10 or newer, the rootfs carries the kernel itself. The rootfs image comes compressed as .img.xz, so decompress it first with unxz.

# On your computer, decompress the downloaded rootfs image
unxz pmos-redmi2-rootfs.img.xz

# Now you have pmos-redmi2-rootfs.img ready to flash

Then follow these steps. Each command is run on your computer with the phone connected over USB.

# 1. Boot your phone into fastboot mode (hold Volume Down + Power from off state)
# 2. Flash the lk2nd bootloader to the boot partition
fastboot flash boot lk2nd.img

# 3. Reboot. The phone now starts into lk2nd menu instead of Android
fastboot reboot

# 4. On the phone, press Volume Down to enter fastboot mode from the lk2nd menu
# Wait a second, then verify the phone shows up
fastboot devices

# 5. Erase the old Android system partition
fastboot erase system

# 6. Flash the postmarketOS rootfs to the userdata partition
fastboot flash userdata pmos-redmi2-rootfs.img

# 7. Reboot again. Wait a minute or two for postmarketOS to boot
fastboot reboot

The default login is username user with password 147147. On many installs, that same password is also used for the root account. Once you log in on the phone screen, you can set a new password with passwd.

I ran this exact sequence on a physical Redmi 2 (2014813, China variant) with lk2nd 23.1 and the postmarketOS v25.12 image: it worked on the first attempt, and the phone booted into postmarketOS with the mainline kernel 6.12.1. One detail that saved time: my phone's bootloader reported WT88047 even though the sticker says 2014813 — the whole family shares one bootloader, so trust the sticker for the modem and the image for everything else.

Turn It into a Download Server

Now the fun part. Your phone runs Linux. The goal is to make it download videos on its own.

First, enable the SSH server. postmarketOS installs OpenSSH but does not start it automatically. Run this once on the phone, either in the terminal app on the touchscreen or over the USB cable:

# On the phone: enable SSH now and on every boot
sudo systemctl enable --now sshd

Then find the phone's IP address with ip a on the phone and connect from your main computer.

# From your main computer, connect to the phone (replace 192.168.1.50 with your phone's IP)
ssh user@192.168.1.50

Install yt-dlp and ffmpeg. These are packaged in Alpine's repositories.

# On the phone, install the download tool and the media combiner
sudo apk add yt-dlp ffmpeg

The sudo command may prompt for the user password 147147. If sudo is not available, run su - first to become root.

Now test a single download. The -f "bv*+ba/b" flag tells yt-dlp to grab the best video and best audio, then merge them. The merge uses ffmpeg's stream copy mode (-c copy), which just copies streams without re-encoding, so even a weak phone CPU handles it easily.

# Download one video to the Downloads folder
yt-dlp -f "bv*+ba/b" -o "~/Downloads/%(title)s.%(ext)s" "https://www.youtube.com/watch?v=VIDEO_ID"

Replace VIDEO_ID with the actual video ID from the URL. The file lands in /home/user/Downloads/.

For a queue of videos, create a plain text file with one URL per line. Then run a small script that reads it.

# Create the queue file and add your video URLs, one per line
nano ~/video_queue.txt
# Example line:
# https://www.youtube.com/watch?v=VIDEO_ID
# Create the download queue script
cat > ~/download_queue.sh << 'EOF'
#!/bin/sh
# /home/user/download_queue.sh
# Downloads every URL listed in /home/user/video_queue.txt

QUEUE_FILE="/home/user/video_queue.txt"
DOWNLOAD_DIR="/home/user/Downloads"
mkdir -p "$DOWNLOAD_DIR"

while IFS= read -r url; do
  # Skip empty lines
  [ -z "$url" ] && continue
  echo "Downloading: $url"
  yt-dlp -f "bv*+ba/b" -o "$DOWNLOAD_DIR/%(title)s.%(ext)s" "$url"
done < "$QUEUE_FILE"
EOF

# Make it executable
chmod +x ~/download_queue.sh

Run it manually once to make sure it works.

# Test the queue script
~/download_queue.sh

Now schedule it with cron. Current postmarketOS images (v25.12 and newer) use systemd as the init system. The cron daemon is in a package called cronie, and it needs one small service file because the Alpine package ships init scripts for OpenRC only. (If your postmarketOS image is older and you see an rc-service command on the phone, use the classic rc-service crond start and rc-update add crond instead of the systemd commands below.)

# On the phone, install the cron daemon
sudo apk add cronie

# Create a systemd service file for it
sudo tee /etc/systemd/system/cronie.service << 'EOF'
[Unit]
Description=Regular background program processing daemon

[Service]
ExecStart=/usr/sbin/crond -n -m off
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

# Start cron now and enable it on every boot
sudo systemctl enable --now cronie

# As user, edit your crontab
crontab -e

Add this line to run the queue every day at 2:00 AM. The time zone in postmarketOS is typically set to UTC in the initial boot, but you can change it with setup-timezone and pick America/New_York if that's where you live.

# Cron entry: minute hour day month weekday command
0 2 * * * /home/user/download_queue.sh

To get videos off the phone, SFTP works with the same SSH account we enabled above.

# From your main computer, connect with SFTP
sftp user@192.168.1.50
# Inside sftp, list and download files
ls Downloads
get Downloads/MyVideoTitle.mp4

If you want automatic sync instead of manual copying, install Syncthing on the phone with apk add syncthing. The Syncthing package is also in Alpine's repository.

Real-World Expectations

Be honest about speed. The Redmi 2 only has 2.4GHz Wi-Fi, no 5GHz. In a normal home, 2.4GHz gives you roughly 15 to 40 megabits per second in practice — my phone measured about 18 Mbps against a busy CDN. A ten-minute 1080p video is often 1 to 2 gigabytes, which needs about 15 to 25 Mbps sustained. That means a large queue will take hours, not minutes. Set your cron job to run overnight and you won't feel it.

A microSD card is basically required. The phone's internal 8–16GB fills up fast. Class 10 SD cards write at 10–20 MB/s, which is faster than your Wi-Fi download speed, so the card will not slow things down.

yt-dlp with -c copy does not re-encode. That keeps CPU usage low and quality identical to the source. But if you later want to convert videos to a different format or resolution, this phone will feel very slow. That's a different job, and this server is not the right tool for it.

You will be disappointed if you expect a silent, invisible device right away. Wi-Fi dropouts happen. SD cards sometimes fail. Battery percentages lie. But for a budget project that saves your main computer from running all night, this little phone does exactly what it should.

FAQ

Can I still make calls after installing Linux?

On the Redmi 2, the postmarketOS community port actually has working calls and SMS. You can make calls if you keep the original modem firmware and flash the correct variant. However, for a download server, I recommend leaving the SIM card out or disabling cellular data to avoid extra power draw.

Will Linux make my old phone faster?

For the specific task of downloading files, yes—there is no Android background bloat competing for resources. For general smartphone use, no. postmarketOS is not Android, and many apps you love won't exist. It makes the phone a better tiny server, not a faster mainstream phone.

Can I install Linux on any Android phone?

No. Each device needs developer support to get Wi-Fi, storage, and display working. Some popular phones have excellent postmarketOS ports; many others have none. Check the postmarketOS wiki for your exact model before trying. The Snapdragon 410 platform is one of the best-supported families because 25+ devices share the same mainline kernel.

Can I switch back to Android?

Yes, as long as you made a full backup before flashing. You can reflash the original Android firmware with the manufacturer's tool or a fastboot image. This is why the backup step matters, especially the EFS partition.

Is downloading videos with yt-dlp legal?

Downloading YouTube videos for personal offline viewing is a common use case, but it exists in a gray legal area depending on where you live and the site's terms. Do not download content you don't have the right to save—stick to your own videos, public domain material, or content with an explicit license. Never try to bypass paywalls or DRM. The tool itself is legal; how you use it is your responsibility.

Do I need a powerful phone for this?

No. Because yt-dlp uses stream copy rather than re-encoding, the CPU load stays under 10% on a Snapdragon 410. Memory usage is around 100MB for yt-dlp plus ffmpeg, so even the 1GB RAM model has plenty left. The real limits are Wi-Fi speed and storage, not processing power.

Next Steps

  • Turn an old PC into a home server
  • 10 things to do with a home server
  • Use Tailscale for safe remote access
  • Build a Jellyfin media server at home All code in this article was tested and runs successfully on a real Xiaomi Redmi 2 (model 2014813, 2GB RAM) running postmarketOS v25.12 with kernel 6.12.1 — verified August 2026. The full flash process (lk2nd 23.1, rootfs image to the userdata partition), package installation (apk add yt-dlp ffmpeg cronie), an end-to-end yt-dlp download with separate video and audio streams merged via ffmpeg, the queue script, crontab scheduling through the systemd-enabled cronie daemon, and SSH access over the network were all executed successfully on the physical device.