I’ve had two ageing Samsung devices knocking about: a Galaxy Tab A from 2016 and an old Galaxy S7 which I’m sure I got on release day. Both are far too sluggish on stock Samsung software to be worth using day to day, but both are still perfectly good bits of hardware underneath. Rather than let them gather dust in a drawer, I’ve turned them into dashboard tablets for the Home Assistant setup. The way I got there was by stripping out Samsung’s own software entirely and putting LineageOS on instead.
LineageOS is a free, community-built version of Android with none of the manufacturer bloat. Crucially for an old device, it’s often still being actively updated long after Samsung has walked away and stopped issuing security patches. It breathes real life back into hardware that would otherwise be heading for the recycling bin.
I’m not going to pretend this is a five-minute job. It isn’t. But it’s also not black magic, and if you follow the steps in order and don’t skip the warnings, there’s no reason a careful first-timer can’t get through it. I hit nearly every error mentioned in the troubleshooting section below myself, so consider this the guide I wish I’d had.
The two devices I converted
- Samsung Galaxy Tab A (2016), model SM-T580: codename
gtaxlwifi - Samsung Galaxy S7, model SM-G930F: codename
herolte(the Exynos version only — more on that below)
Everything from here on follows the same basic process for both. Where something is specific to one device, I’ve said so.
Before you start: this process completely wipes the device. Photos, apps, everything. If there’s anything on there you care about, back it up properly first: copy it off to a PC or cloud storage, don’t just assume it’ll be fine.
A quick word glossary
A few terms come up constantly in this guide, so here they are once, plainly:
- ODIN: Samsung’s own PC tool for flashing files onto the phone or tablet at a low level. This is how we replace the recovery software.
- TWRP: a replacement “recovery” menu, which is the tool we actually use to install LineageOS itself.
- ADB: Android Debug Bridge, a command-line tool that lets a PC talk to the device. Also called “platform-tools.”
- Download Mode and Recovery Mode: two different special boot screens, entered by holding different button combinations while the device is off.
- Codename: every Samsung device has an internal project name (like
herolteorgtaxlwifi). You’ll need to know yours, because every download you grab must match it exactly.
What you’ll need
- A Windows PC with a spare USB port: ideally an older USB 2.0 port, as USB 3.0 ports are a surprisingly common cause of ODIN simply not seeing the device
- A USB cable you know can transfer data, not just charge: test it first if unsure
- ODIN, downloaded from a trustworthy source (search for the version number people are currently recommending on XDA Forums for your device; avoid random download sites)
- Samsung USB drivers, and ADB/platform-tools, both installed on the PC
- The correct TWRP build for your exact device codename
- The correct LineageOS build for your exact device codename
- Your device charged to at least 50%: TWRP will often simply refuse to flash anything on low battery, and it took me an embarrassingly long time to twig that was the actual problem one time
Step 1 — Check exactly which model you have
Go to Settings → About phone (or tablet) → Model number and write down exactly what it says.
This step matters more than it sounds like it should. The Galaxy S7 in particular was sold in two completely different internal versions:
- SM-G930F / FD (the standard UK and international version), plus the Korean and Canadian variants: these use an Exynos chip and can be flashed. This guide is written for these.
- SM-G930A / T / V / P / U (US carrier versions): these use a Qualcomm Snapdragon chip with a bootloader that Samsung permanently locked. There is no workaround. If this is your phone, I’m sorry, but this guide (and pretty much anyone else’s) genuinely cannot help you.
A UK-bought S7 will almost always be the SM-G930F. Its codename is herolte. If you’ve got the larger S7 Edge, that’s hero2lte, and the process is identical, just with hero2lte-named files.
The Tab A (2016) SM-T580 doesn’t have this trap: it’s gtaxlwifi across the board. But the lesson still applies generally: always match your downloads to your exact model number, not just “Galaxy S7” or “Tab A.”
Step 2 — Find the right TWRP and LineageOS builds (and make sure they match)
This is, honestly, where most of the pain lives, and it’s worth slowing down for.
For the S7, you’re in relatively good hands: there’s an actively maintained set of builds from a developer called Ivan Meler, with an official TWRP available too. For the Tab A (2016), support comes from a long-running community thread on XDA Forums, and the build you need depends on which Android version you’re aiming for.
The single biggest mistake I made was assuming any TWRP build would do. It won’t. The TWRP recovery and the LineageOS build need to come from the same source and be intended for each other: mismatch them and you’ll hit an error that stops the flash dead (more on that in troubleshooting). If the page you’re downloading LineageOS from also links a specific TWRP build, use that one, not a generic version you found elsewhere.
A rough version guide, based on what actually worked for me:
- Tab A (2016) SM-T580: LineageOS 19.1 (Android 12) was the stable choice. I tried LineageOS 21.0 first and it bootlooped endlessly: the hardware just isn’t happy with it.
- Galaxy S7 SM-G930F: LineageOS 20.0 (Android 13) is the current sweet spot for actively maintained builds with recent security patches, though 19.1 is more mature if you’d rather prioritise stability.
Download both the TWRP file and the LineageOS zip now, and keep them somewhere obvious.
Step 3 — Boot into Download Mode
With the device fully powered off, hold:
Volume Down + Home + Power
together until a warning screen appears, then press Volume Up to confirm. You should land on a mostly black screen with a small Android figure: this is Download Mode, and it’s the only state ODIN can actually talk to.
If TWRP is already installed on the device from a previous attempt, you can also get here via TWRP → Reboot → Download Mode, which is more reliable than the button combo.
Step 4 — Flash TWRP using ODIN
- Open ODIN: right-click it and choose Run as administrator
- Connect the device via USB
- Wait for a blue box to appear in ODIN’s top-left corner (something like
0:[COM3]): this confirms it’s connected properly - Click the AP button and select your TWRP .tar file (not the .img: ODIN needs the tar)
- In the Options tab, make sure Auto Reboot is unchecked: this is the step I got wrong first time round, so don’t skip it
- Click Start
You’re looking for a green PASS! message. It only takes a few seconds.
If ODIN never shows that blue connection box, work through these in order: they cover the vast majority of connection failures. Try a USB 2.0 port specifically, try a different (known-good data) cable, confirm the Samsung USB drivers are actually installed, and check Device Manager on the PC while the device sits in Download Mode: a yellow warning triangle there means a driver problem, not a cable problem.
Step 5 — Boot straight into TWRP
Because Auto Reboot was unchecked, the device will just sit on the download screen doing nothing after the PASS message: that’s expected, not a fault.
Force it off with Power + Volume Down, and the instant the screen goes black, switch immediately to holding:
Volume Up + Home + Power
Don’t let it boot normally in between: if the stock Samsung system starts up first, it can silently overwrite the new recovery you just flashed, and you’ll be back at square one.
You should land in TWRP itself: a menu-driven recovery screen, quite different from normal Android.
Step 6 — Wipe the device
In TWRP, go to Wipe → Format Data, and type “yes” to confirm when asked. This is more thorough than the standard wipe option and clears up most of the “failed to mount” errors that come from Samsung’s own partition encryption.
Then go back and do a standard wipe of Cache and Dalvik/ART Cache as well.
This is the point of no return for anything left on the device, so hopefully you backed up in Step 0 like I told you to.
Step 7 — Get the LineageOS zip onto the device
You’ve got a few options here, roughly in order of how comfortable I’d suggest for a first attempt:
- microSD card (if your device has a slot, like the S7 does): just copy the zip onto the card on your PC, slot it in, and it’ll show up as separate storage inside TWRP. No cables, no drivers, no ADB. Honestly the least fiddly method going.
- USB storage transfer: in TWRP, go to Mount and enable internal storage, then the device should appear as a plain USB drive on your PC. Drag the zip across in File Explorer like any other file.
ADB push: from a command prompt on the PC, with the device connected:
adb push C:path\tolineageos.zip /sdcard/
ADB sideload: in TWRP, go to Advanced → ADB Sideload, swipe to start it, then immediately run on the PC:
adb sideload C:path\tolineageos.zip
This one transfers and flashes in a single step, but the timing window to run the command is short: a couple of seconds. It’s the method I’d leave until you’re comfortable with the others.
Step 8 — Flash LineageOS
Back in TWRP’s main menu, tap Install, browse to wherever you put the zip, select it, and swipe the confirmation slider to flash.
A successful flash ends with a message reading something like “Script succeeded: result was [1.000000]”. That’s your cue that it’s worked.
Step 9 — First boot
Tap Reboot → System. First boot genuinely takes a few minutes: the LineageOS animation will loop round several times before anything else happens. That’s completely normal, so resist the urge to interrupt it.
If instead the device settles into a proper bootloop: repeatedly flashing the Samsung logo and restarting: the most likely cause is that the LineageOS version you flashed doesn’t suit that specific device (this is exactly what happened with LineageOS 21.0 on my Tab A). Wipe again and reflash with an older, more established version instead.
Once it settles, you’ll get the ordinary Android first-time setup wizard: work through that as normal.
Step 10 — Turn on Developer Options and file transfer
To copy any further files or APKs across later:
- Settings → About phone → tap Build Number seven times until you see “You are now a developer”
- Settings → System → Developer Options → enable USB Debugging
- Plug in the USB cable, pull down the notification shade, and change the connection mode from “Charging” to File Transfer (MTP)
Step 11 — Install a kiosk/dashboard app without Google Play
Because this whole exercise started with wanting a lean dashboard tablet, I skipped Google’s apps (GApps) entirely. There’s no need for them if you’re not planning to use the Play Store for anything else, and it keeps the install leaner. Instead:
- Download the Fully Kiosk Browser APK directly from its own site, or grab the minimal Home Assistant companion app from F-Droid
- Transfer the APK across via the USB File Transfer mode you just enabled
- On the device, go to Settings → Apps → Special App Access → Install Unknown Apps, and enable it for your file manager
- Open the file manager, find the APK, tap it, and install
- Launch the app and point it at your Home Assistant address
That’s it: a genuinely fast, clutter-free Android running on hardware Samsung gave up on years ago.
Troubleshooting — the things that actually went wrong for me
- ODIN won’t recognise the device at all: try a USB 2.0 port, try a different cable, run ODIN as administrator, and check Device Manager for a yellow warning triangle while the device is in Download Mode.
- “There is no PIT partition” in ODIN: this generally means ODIN simply can’t flash that particular file this way. If you’re already inside TWRP from an earlier attempt, it’s often easier to push the new recovery image via ADB instead and flash it from within TWRP directly, rather than fighting ODIN further.
- Download Mode button combo does nothing, and it just boots into TWRP instead: use TWRP → Reboot → Download Mode rather than the physical buttons.
- An E1001 “failed to update system image” error during the LineageOS flash: this is almost always a mismatched TWRP and LineageOS pairing. Go back to the same source you got LineageOS from and grab the specific TWRP build it recommends, not a generic one.
- Bootloop after flashing: wrong LineageOS version for that specific device’s hardware. Wipe and try an older, more established release.
- Install screen in TWRP just bounces straight back to the home menu: almost certainly low battery. Charge to at least 50% and try again.
- Files you had on the device have vanished: Format Data wipes internal storage completely: this is expected, not a bug. Re-copy anything you need afterwards, or use the microSD method next time, which isn’t affected.
- You want to give up and go back to stock Samsung software: it’s genuinely difficult to permanently brick these devices: Download Mode almost always survives. Search for the stock firmware for your exact model number and flash the full firmware package via ODIN’s AP slot, this time with Auto Reboot switched back on.
Was it worth it?
Both devices now boot in a fraction of the time they used to, run a current, secure version of Android instead of one Samsung abandoned years ago, and are quietly doing a proper job as dashboard tablets for the Home Assistant setup rather than sitting in a drawer. If you’ve got an old Samsung doing nothing useful, it’s well worth the afternoon it takes.