The following is directed at Samsung Galaxy S5s running custom ROMs and custom recovery environments only. The Galaxy S5’s internal storage has multiple partitions, each with its own separate image. For the sake of this discussion, we’ll divide the partitions into 2 groups: customized and stock.

Customized partitions are the ones you’ve put a custom image onto. For most devices running custom ROMs, that’s the /recovery – this is where TWRP, CWM, etc. live – and /system – where the actual (custom) Android phone OS lives – partitions.

Stock partitions are the partitions with unmodified OEM images. For most devices running custom ROMs, that’s every partition except/recovery and /system. Because some of these partitions contain firmware for the phone’s hardware components and said firmware was developed for a particular version of Android, it’s important to keep them updated. It isn’t too hard to see how, for example, pairing firmware designed for Android 4.4.2 with a custom Android 7.1.1 ROM could cause problems.

This guide will show you how to update as many of the stock partitions as possible without touching the customized partitions:

Download the latest stock firmware (where “firmware” in this sense means an archive containing images for all partitions) from SamMobile.You’ll need to search by your phone’s model number at that page.

Decompress the archive from the above step. If you find it contains a .tar.md5 file; decompress that too.

If you’re reading this, you probably already know what Odin (or Odin3? Because that’s what the window title bar says) is and what it does. For the unitiated: Odin is a Samsung-internal Windows graphical utility that allows you to update Samsung Android phone storage partitions using image files from your PC. Samsung Kies does almost the same thing, but it downloads official files from Samsung only, while Odin allows the use of any image files compatible with the phone. It’s basically ADB for Samsung, but with a GUI.

Because it’s an internal tool, there’s no Samsung-official download site for it. However, you should always be able to find the latest version at XDA here. Odin is a portable .exe, so you can run it from anywhere.

Like this:

Of course you want to return to TouchWiz to fix a problem. Ha, no you don’t.

Advertisements

Note: if you’re not running a custom ROM – i.e. you’re running stock TouchWiz – and need to do this, see Phase 4 only. You’ll need to be rooted.

If you’re running a custom ROM on your S5 and GPS can’t get a fix despite rebooting, battery pulling, flashing new builds, and using all of GPS Status & Toolbox‘s tricks, chances are you’ll need to do rebuild the GPS NVRAM. Here’s how.

Phase 1: Backup your current custom ROM installation.

Phase 2: Wipe the phone in TWRP.

Phase 2: Flash the latest baseband in Odin.

Find the latest baseband under the “Odin” heading here. If the files there are .tar archives, you’ll need to extract the .bin baseband files (usually called modem.bin and/or NON-HLOS.bin) from them.

Flash it using instructions in Phase 3 here. You will need to do perform this for modem.bin and NON-HLOS.bin separately as ODIN reboots the phone after each individual flash.

Phase 3: Restore your rooted TouchWiz ROM.

If you don’t already have one of those, here’s how to get one. If you’re setting up a rooted TouchWiz ROM for the 1st time then you don’t have to restore anything because it’ll already be running, so you can proceed to the next phase.

From the above archive, extract system.img.ext4, boot.img, modem.bin, NON-HLOS.bin, into a new folder on your PC.

Open 7-Zip.

Navigate to the folder containing the files from Step 2.

Select all files from Step 2.

Click Add.

In the Add to Archive window that pops up, enter a filename and desired path.

Click the Archive Format dropdown.

Click tar.

Click OK to make the files into a .tar archive

Flash the .tar archive from Step 4 in Odin using the AP slot as described here.

Boot into the ROM and set it up as you would a new phone, including updating all the apps on it.

Boot into TWRP.

Connect the USB flash drive containing SuperSU to the S5 using the USB OTG cable.

In TWRP, tap Install.

Tap Select Storage.

Tap USB Storage.

Select the SuperSU .zip file.

Swipe to flash SuperSU.

And that’s it. This will give you a fully stock, rooted Lollipop ROM you can boot right into.

If you run custom ROMs, the stock ROM is pretty useful to keep handy as some troubleshooting methods (especially advanced ones involving the baseband) work on it only. As such, it’s a pretty good idea to back it up so you can restore it as needed. Instructions found in Phase 9 here.

Radio logcats are useful for troubleshooting network connectivity, especially on modded (rooted &/or custom ROM) devices. If you’re reporting such an issue it’s often useful to provide the radio logcat in addition to the regular logcat to help the developer resolve the problem.

That “123456” isn’t supposed to happen; my network provider’s name should be there instead. This is a situation in which a radio logcat would be useful.

Using the terminal on your device

Follow these instructions to set Terminal Emulator to start with root permissions.

Start Terminal Emulator.

Enter logcat -b radio > /sdcard/radio_logcat.txt – This dumps the logcat file radio_logcat.txt at the root of your SD card. logcat -b radio works too, but I have no idea where it puts the file and have never tried it myself.

Reproduce this issue you’re getting the logcat for.

When you’re done with Step 5, close Terminal Emulator.

Navigate to the root of your SD card to find the file there.

Using ADB on your PC

While I know this method exists, I’ve never used it. The command to enter is adb logcat -b radio, and adb logcat -b radio > /sdcard/radio_logcat.txt probably works too.

Unfortunately the article’s premise works only if Allo ships pre-installed on devices. Even if Google does that for Android, Apple would never allow it for iOS. This would leave Allo with the same need for manual installation as other 3rd party messengers, except those other messengers are already far more successful.

There’s an existing case of this: Hangouts. Hangouts was preinstalled on Android devices and worked automagically via Android’s Gmail account prerequisite. Yet it never took off on any other platform (except perhaps the desktop) and isn’t even in the top 5 messaging apps.

Facebook handled this challenge in a completely different manner: they simply opened up Facebook Messenger to use by anyone with a phone number. BOOM: Messenger is now the world’s #2 messaging app despite needing manual installation on all platforms.

I think it’s hilarious how every Android (fan)blog conveniently ignores that iMessage also has a desktop component that Allo doesn’t. So does Facebook Messenger and Whatsapp, which are available on all platforms, thus enabling them to span form factors.

Another mistake here is the extreme iMessage tunnelvision. iMessage may be big in the US where iOS rules, but Android rules the rest of the world. If Allo is indeed the anti-iMessage, that would make it a narrow and incomplete solution that addresses only one market.

Even Microsoft haven’t been as disingenuos as Google. Say what you will about Skype, but at least Microsoft haven’t pushed a completely incompatible service that no one has any real reason to use.

The market failure of Google Talk, Google Voice (as a messaging solution), and Hangouts shows that Google still doesn’t fundamentally get how people actually communicate. They think they can sell every feature/application solely on ideological purism. That doesn’t work in the real world.

NOTE: If you run CyanogenMod 13+ Nightly, you probably don’t need to do this.

Although Google has done a great job maintaining some Android features as standalone apps, fonts – which contain emoji – are still delivered via OTA updates. Android’s well documented slow (carrier device) OTA update rollout process is frustrating for those who want to use the latest emoji, ergo here’s how to do the latter.

*An alternative method of updating emoji is to manually replace the corresponding system file. However, this requires both root access and manually setting the correct permissions for the new .ttf file, and the device still has to be rebooted afterwards. Flashing a .zip as described here is far simpler and there’s less that can go wrong.

*I suspect the main reason for this is Android doesn’t handle user/administrator/root accounts in the same manner desktop Linux does. On Android every app is a user in Linux parlance, while Android users are something else entirely.