How to rebuild the Samsung Galaxy S5 GPS NVRAM

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.

Instructions (which assume you use TWRP) in Phase 9 here.

Phase 2: Wipe the phone in TWRP.

  1. Boot into TWRP.
  2. Tap Wipe.
  3. Swipe to wipe using the default settings.

Phase 2: Flash the latest baseband in Odin.

  1. 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.
  2. 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.

Otherwise:

  1. Boot into TWRP.
  2. Tap Restore.
  3. Tap Select Storage.
  4. Select the folder containing the backup.
  5. Swipe to restore.

Phase 4: Rebuild the GPS NVRAM.

  1. Boot into TouchWiz.
  2. Install Shotcut Master (Lite).
  3. Follow these instructions starting from “Open ‘Secret Explorer’ menu” onward onto the 3rd to last sentence.

Phase 3: Wipe the phone in TWRP.

Same process as Phase 2.

Phase 4: Restore the backup you made in Phase 1.

Same process as Phase 3, but with the custom ROM backup instead.

GPS should be back to working now. I have no idea what causes this problem, but so far this is the most involved custom ROM-related fix I’ve had to do.

How to make and flash your own rooted stock Lollipop TouchWiz ROM for the Verizon S5

If you’re reading this, you’re probably trying to solve a frustrating problem. Relax, I’m here to help.

The following are prerequisites for this to work:

  • Rooted Verizon Samsung Galaxy S5 (SM-G900V) with unlocked bootloader.
  • TWRP custom recovery installed.
  • 7-Zip installed on your PC.
  • SuperSU downloaded to the top level directory of a USB flash drive.
  • A USB OTG cable.

Steps:

  1. Download full stock firmware.
  2. From the above archive, extract system.img.ext4, boot.img, modem.bin, NON-HLOS.bin, into a new folder on your PC.
  3. Open 7-Zip.
  4. Navigate to the folder containing the files from Step 2.
  5. Select all files from Step 2.
  6. Click Add.
  7. In the Add to Archive window that pops up, enter a filename and desired path.
  8. Click the Archive Format dropdown.
  9. Click tar.
  10. Click OK to make the files into a .tar archive
  11. Flash the .tar archive from Step 4 in Odin using the AP slot as described here.
  12. Boot into the ROM and set it up as you would a new phone, including updating all the apps on it.
  13. Boot into TWRP.
  14. Connect the USB flash drive containing SuperSU to the S5 using the USB OTG cable.
  15. In TWRP, tap Install.
  16. Tap Select Storage.
  17. Tap USB Storage.
  18. Select the SuperSU .zip file.
  19. 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.

 

(Mini)review of CyanogenMod 13.0 on the Verizon Samsung Galaxy S5

CM 13.0 shows just how bad hardware OEMs are at software.

In my previous post, I showed you how to install CM 13.0. Now here’s a mini review.

The Good:

Responsiveness

CM 13.0 is fast. And not fast* with an asterisk used for phones that only stutter every now and then, but very fast. Even loaded up with apps, this thing screams and is very responsive.

On TouchWiz Lollipop my S5 was routinely outpaced by my Nvidia Shield K1. With CM 13, the K1 doesn’t remotely keep up.

Android Lockscreen Bug Finally Fixed

CM 13 finally fixes a bug that’s plagued every Android device I’ve ever owned: the Motorola Droid 1, Samsung Galaxy Nexus and Galaxy S5, and the Nvidia Shield K1 tablet. Across 3 OEMs every Android version from Froyo to Marshmallow, waking an Android device from the lockscreen has been a major PITA.

First of all, the power button might not wake the screen, or the lock screen may take a while to appear. When it does appear, it may simply not respond to touch input for a while, or be so delayed at doing so it messes up pattern unlock. Finally, the delay between a successful pattern entry and the lockscreen clearing is often multiple seconds. Sometimes the device will fail to wake entirely and has to be rebooted.

CM 13 is the first Android build I’ve used to NOT have this issue. I can’t help but wonder how CM managed to get right but Google, Motorola, Samsung, and Nvidia couldn’t.

No More Lockscreen Privacy Violations

TouchWiz Calendar will plaster your lock screen with event notifications even if you set your lockscreen to not show any notifications. Even worse, the fullscreen notification reveals other app notification icons (thankfully not content).

CM 13, on the other hand, actually respects lockscreen privacy. No notifications means no notifications show up, PERIOD. Which is exactly how it should be.

Pattern Unlock Now Displays Lower on the Screen

Not sure why no other developer thought of this before, but putting pattern unlock smack in the middle of a 5.1″ display was never a good idea. CM 13 mounts the pattern in the lower half of the screen so you no longer have to stretch your thumb or fumble with the phone to reach it.

Seriously, why didn’t anyone consider that before … it’s baffling.

RAM Consumption

About the same or less than TouchWiz Lollipop, but RAM consumption is largely irrelevant on Android anyway.

Storage Consumption

I had 10.54 GB of 16 GB free after CM 13.0 installation and 5.21 GB free after 100+ apps installed. IIRC TouchWiz leaves you with barely 8 GB free and then even that fills up rapidly, probably due to some combination of Samsung’s custom ART implementation and the fact that TouchWiz duplicates apps in the system.

This is isn’t totally surprising; bad things generally happen when hardware OEMs develop software and Samsung is no different. For all of TouchWiz’s great features – most of which have some CM equivalent – its performance on the S5 was never this good.

Adoptable Storage

Samsung (and LG and Sony) lied to us. There is absolutely no slowdown from using adoptable storage IF you move your data to the SD card but keep your apps on eMMC. As shown in the previous section, there’s plenty of space on the latter for at least a couple hundred apps. Used in this manner, adoptable storage is the phone equivalent of keeping your Program Files on an SSD and moving your document libraries to a slower HDD in Windows.

Samsung and every other OEM that denied us adoptable storage for performance and user confusion reasons lied to us.

Excellent Root Implementation

No futzing with SuperSU here. Root in CM 13.0 is managed by a simple, self explanatory toggle in Developer Options. You literally couldn’t ask for a better setup. It makes you wonder how/why the feature isn’t a part of stock Android.

Bluetooth

Word in forum threads is that this is bad, but I’ve had zero problems with it so far. Bluetooth functionality and call quality is excellent.

The Bad:

Bootup Time

Much longer than stock – like “Go make a sandwich” long – though this may be due to me having adoptable storage enabled. The OS also takes a longer time to detect and initialize the SIM card during boot, resulting in a “No SIM card” error being displayed in the notifications. The error goes away once the radio initializes and before startup is complete.

Camera Performance

To put it mildly, if you use your phone primarily as a camera (I don’t, and I rarely take pics) CM 13.0 will be a huge disappointment out of the box. The native Google Camera absolutely mangles pictures and can’t seem to focus on anything properly.

That said, Camera MX takes pics that are pretty close – if not absolutely as good as – stock.

Speaker Volume

Nearly 4.5 years later, audio volume is apparently still an issue with AOSP-based ROMs and Samsung hardware. You can boost the volume in apps that have that feature, such as Player FM, but speakerphone during calls is low enough to make listening outdoors with passing traffic a struggle.

I don’t use my phone for calls much so I don’t find this a dealbreaker, but if you depend on your speakerphone in noisy environments you might.

HD Voice/VoLTE?

It’s unclear as to whether this works, but AFAIK it’s only possible with other Verizon or AT&T users who also had phones supporting the feature. None of the people I talk to frequently fall into that category and call quality is excellent otherwise so I don’t mind its absence.

Display Modes

As far as I know, there’s no way to change the display mode, so you may be stuck in the oversaturated Dynamic mode.

External Downoad Speed

Seems slower. Not enough to make the phone unusable, but definitely enough to be noticed. LAN file transfer speed, however, is unaffected.

Conclusion

CM 13 is worth it for the mindblowing performance upgrade alone. I cannot overemphasize how much faster my S5 is with it compared to TouchWiz. If you were considering replacing your S5 because of the latter, CM might give you a year or more of phone usefulness. The only flagship shipping with an OEM ROM packing features equivalent to CM’s is the nearly $700 HTC 10, so CM will save you quite a chunk of money too.

There’s so much here that makes the OS a joy to use and will make you fall in love with your device all over again. CM is absolutely the best mobile OS I’ve ever encountered. Install it as soon as you can.

How to unlock the bootloader, install and update LineageOS on the Verizon Samsung Galaxy S5

Hi, I’m here to rescue you from forum hell.

NOTE: This guide was originally written for CM 13.0 but is in the process of being updated for LineageOS. Except for OS name and version number, the steps should be exactly the same.

The following should work for rooted (instructions on how to do that) Verizon Samsung Galaxy S5s (SM-G900V, kltevzw) running stock Android 5.0 Lollipop and 15 Samsung eMMCs (see Phase 0 to determine whether your S5 satisfies the eMMC requirement). As of this writing, it does not work for S5s with 11 Toshiba eMMCs. Due to the possibility of the bootloader unlock exploit being patched in the Marshmallow update, I’d highly suggest doing this BEFORE updating to any stock Marshmallow OTA.

The steps below can also be long, hard, and frustrating. They will also wipe your phone (SD card included) except for personal files on internal eMMC storage, so make sure everything you need on the card is backed up. Also ensure this is something you really want to do and/or there’s a phone out there you’d actually feel good about buying in case you brick your S5.

The upside is you’ll be getting the latest version of Android long before the official Verizon update, you’ll no longer be trapped in Verizon’s byzantine update process, and you get adoptable storage.

If you get stuck, hit up any of the forum threads linked to at the end of the post for assistance.

Phase 0: Check to see if your phone is supported.

  1. Install Root Explorer or ES File Exploer/Manager Pro (actually, any file explorer with root access and browsing works).
  2. Launch Root Explorer and grant it root access.
  3. Tap the ROOT tab.
  4. Open the file /sys/block/mmcblk0/device/cid. If the number you see in that file starts with 15, your device is supported and you may continue. If not, you’ll have to wait for a matching exploit.
  5. Charge your S5 to 100% as some steps involve the phone being completely disconnected from USB.

Phase 1: Download everything you need, install some of them.

  1. Download and install Flashfire. If that link doesn’t work for you, opt into the testing channel and then try it again.
  2. Download and install Busybox.
  3. Open Busybox, tap INSTALL and wait for the process to complete.
  4. Download SamsungUnlockerS5.apk to your device, but don’t install it yet.
  5. Download and install the latest Samsung USB drivers on your PC (scroll down to where it says Manuals & Downloads).
  6. Download the latest Odin archive to your PC and decompress the archive.
  7. Download the latest TWRP *.img file.
  8. Download the lastest CyanogenMod 13.0 (CM 13.0) nightly build to your device’s eMMC internal storage.
  9. Download Open GApps:
    1. At the webpage above, check the radio buttons for ARM under Platform, 6.0 under Android, and stock under Variant. Flashing this combination later on will give you the same stock Google apps as a Nexus device.
    2. Click the download icon.
    3. Transfer Open GApps to your S5’s internal eMMC storage.
  10. Download the latest firmware (referred to as “baseband” in Settings -> About Phone) for the S5’s radio. Use the latest *non-hlos file under the “Odin” heading here. If your baseband >= what’s listed there, skip this step. If the files are .tar.md5, you will need to extract the .bin files from them using 7-Zip or some other similar utility.

Do not run BlueStacks or any such emulation/virtualization applications on your PC during the unlocking or installation process as it may interfere with Odin’s functionality.

Though you should’t need it for this process, the entire NCG ROM (baseband, etc.) is here. Some commenters have found it useful, so there it is.

Phase 2: Disable reactivation lock.

I put this in its own phase because it’s that important. If reactivation lock is enabled you won’t be able to wipe and reset the phone as needed for this to work.

Follow the instructions for the S5 here.

Phase 3: Flash the new baseband to the S5 using Odin.

This will ensure your phone can connect properly to Verizon’s network.

  1. Follow Steps 12 to 16 here.
  2. Click the CP button and select the baseband file.
  3. Click Open.
  4. Wait for the messages in the Message window to settle on Added!!!.
  5. Click Start. Odin will update the S5’s baseband and reboot the phone.
  6. Upon rebooting, ensure the baseband installation was successful by checking Settings -> About Phone. The last 3 letters of the version number should match those of the firmware you flashed (e.g. PB1).
  7. You will need to do Steps 1 to 6 above for both modem.bin & NON-HLOS.bin files.

Phase 4: Unlock the bootloader.

This will wipe your SD card. Ensure you’ve backed up anything on it you want to keep before this. It will, however, leave the phone’s eMMC storage untouched.

  1. Disconnect your phone from any USB power or data source. Be sure to do this or the S5 will relock the bootloader upon rebooting.
  2. Install SamsungUnlockerS5.
  3. Launch the above app.
  4. Grant root access when prompted.
  5. Tap the Install SamBootloader Unlocker button.
  6. Grant root access again.
  7. Wait for the terminal to appear (it may take a minute or 2). Do not do anything else on the phone during this wait time except ensure the screen stays alive.
  8. When prompted, type Yes.
  9. Hit Enter and wait for the phone to turn off.
  10. Boot into download mode by pressing Volume Down, Power, and Home buttons simultaneously.
  11. Press Volume Up at the prompt.
  12. To confirm the bootloader is unlocked, ensure the line MODE: DEVELOPER appears on the 3rd to last line in the upper left of the screen. If it doesn’t, repeat steps 1 to 11 again as you probably missed something.
  13. Turn the phone off, then turn it on again to boot back into stock Lollipop.

This Phase can be tricky. If it doesn’t work the first time:

  1. Turn the phone off and ensure it’s disconnected from any USB or other power source.
  2. Remove the battery.
  3. Wait 30 seconds.
  4. Put battery back in.
  5. Turn phone on and boot into stock Android.
  6. Reinstall BusyBox.
  7. Reboot the phone into stock Android.
  8. Install the .apk again.
  9. Run through the unlock process again.

Phase 5: Move necessary files to root of microSD card.

  1. Move the CM 13.0 nightly build and Open GApps archives to the root of your  microSD card. Note that we didn’t move them earlier as the bootloader unlock would have wiped both files.

Phase 6: Flash the custom TWRP build.

  1. Open Flashfire (general documentation).
  2. Tap the floating action button.
  3. Tap Flash firmware package.
  4. Select the *klte.img file from Phase 1 Step 7.
  5. Tap Flash. The S5 will reboot into stock Lollipop.
  6. Turn the phone off.
  7. To check whether the recovery flash was successful, press Volume Up, Power, and Home simultaneously. This should boot the S5 into the new recovery environment (ignore any SEAndroid errors as long as booting into recovery is successful).

Phase 7: Install CM 13.0 AND Open GApps.

  1. Reconnect the phone to a USB power source to ensure there’s no power failure during the installation.
  2. While still in the recovery environment, follow Steps 7 – 9 here.
  3. Select the option to add additional zips/packages and add Open GApps to the list. This is important, as firing up CM 13.0 without Google Apps can be a very bad time.
  4. Swipe to Install both archives as indicated.

And that’s it! After both packages are installed the S5 will then boot into CM 13.0 and you can set it up from there. And because your SIM didn’t change and your baseband is the latest version, you don’t have to worry about reactivating the phone.

Phase 8: Getting started with CM 13.0.

A few pointers to get you up to speed:

  1. CM 13.0 takes significantly longer to boot than stock Lollipop, though this may be due to my having adoptable storage enabled.
  2. Root access is managed neatly from within Developer Options, which you enable by following these steps.
  3. Yes, adoptable storage works beautifully and doesn’t slow the phone down at all.
  4. Google Camera is absolutely terrible on the S5. Use Camera MX instead.
  5. Ignore any SIM card errors you see upon booting up, they usually go away once the radio is initialized, which may take a minute. Just be patient.
  6. You can access the hidden phone info app for troubleshooting by entering *#*#4636#*#* from the dialer.

Phase 9: Backup your CM installation before updating your build.

This is unfortunately tricky due to TWRP’s current tendency to corrupt adoptable storage. Option A below ensures TWRP never (phyiscally) touches your storage  – which should (note the emphasis. It’s possible a dirty flash or backup might cause the OS to “forget” the adopted storage, but so far I haven’t seen that happen) provide 100% protection against corruption – while Option B is significantly less safe but doesn’t involve physically pulling the phone apart.

Option A: Remove the microSD card before doing anything.

  1. Power off the S5.
  2. Remove microSD card.
  3. Boot into TWRP.
  4. Do all the steps below and in Phase 10 with the microSD card omitted.
  5. Power off the S5 again.
  6. Put the microSD card back in.
  7. Reboot into system.

Option B: Follow the below instructions as written instead.

Yes, this is a separate and necessary phase as nightly build bugs can be bad enough to require either restoring a full backup or a clean install to recover from. Seriously. Read the horror story at the link.

CAUTION: There is a semi-known issue with TWRP that it corrupts USB drives if they are connected while the phone is rebooted back to System and corrupts (adopted) SD cards if updates are installed from them.

The workaround for this is to simply avoid doing both: DO NOT install updates directly from the adopted SD card. Install them from Internal Storage only. Do not reboot from TWRP into System with the USB drive connected and/or selected in TWRP or with the SD card selected. ALWAYS reboot to System from TWRP with Internal Storage selected and no USB storage attached.

To backup your phone:

  1. Get a USB 2.0 OTG cable and 16+ GB USB 2.0+ flash drive with nothing else on it.
  2. (ExFAT) format the drive by 1 of:
    1. Using the PC instructions here.
    2. Connecting it to the S5 via the OTG cable and going to Settings -> Storage & USB.
    3. Tap the notification that appears when the drive is connected.
  3. Reboot into recovery.
  4. Connect the OTG cable and drive to the S5.
  5. Tap Backup.
  6. Tap Select Storage.
  7. Tap USB.
  8. Tap OK.
  9. Under the BACKUP tab, ensure BootSystem, and Data are checked.
  10. Under the OPTIONS tab, check Skip MD5 generation during backup.MD5 sounds like a nice idea, but it only checks for and doesn’t fix backup corruption. In other words, if your backup is toast, MD5 won’t actually fix the problem and you’ll find out about the corruption during restoration anyway. Besides, the official OTA updates don’t use it. The last reason not to use MD5 is it nearly doubles backup times compared to not using both it and compression.
  11. Under the BACKUP tab, Swipe to Backup.
  12. When the backup is complete, tab BACK.
    THE NEXT STEPS ARE VERY IMPORTANT TO AVOID CORRUPTION OF THE USB DRIVE. DO NOT SKIP THEM.
  13. Tap Select Storage.
  14. Tap Internal Storage.
  15. Tap OK.
  16. Disconnect the USB drive from the S5.

As an added precaution, connect the USB drive to another Android device or PC to ensure the it hasn’t been corrupted before proceeding with an update.

I don’t advise enabling compression or encryption; backing up my 200+ app installation with them disabled takes around 300 seconds (TWRP gives you time report at the end). With MD5 enabled, that jumps to around 500 seconds. With both MD5 and compression enabled, backups take a whopping 1300 seconds, which isn’t worth it for a daily operation. Just get a sufficiently large drive; they’re inexpensive enough.

Phase 10: Updating CM 13.0 in place with adoptable storage enabled.

If you have adoptable storage enabled want to update your nightly build, do this:

  1. Tap About Phone -> CyanogenMod updates.
  2. Hit the refresh icon and download the build when prompted.
  3. After the download is complete, use an explorer app with root access to move the archive (found in /cmupdater on the microSD card) to /data/Media/0/twrp (you may have to create the latter folder if it doesn’t already exist).
  4. Boot into recovery as in Phase 6 Step 7 and install the update as in Phase 7. None of your apps or data will be affected.
  5. When the update is complete, tap Wipe cache/Dalvik.
  6. Swipe to Wipe and wait for the operation to complete.
  7. Tap Reboot System.

How does it all run? Here’s my review of CM 13.0 on the S5.

Here’s how to get back to a stock rooted ROM (while leaving your unlocked bootloader and custom recovery in place) if you ever need to.

Thanks GeTex (bootloader unlock thread), jrkruse (SamsungUnlockerS5.apk), haggertk (CM 13.0 kltevzw build thread), keysoh2 (how to flash firmware/modem in ODIN), Dees_Troy (TWRP klte build thread) and M1chiel (updating CM 13.0 with adoptable storage enabled) for the methods used in this post.

If you’re having problems, comment or get back to the threads linked to above.

Images slow to load over Wi-Fi on your Android device? Try this.

Poor tech installation = problems.

I recently noticed my Verizon Samsung Galaxy S5 (SM-G900V running Android 4.4.4) was really slow at downloading images on Instagram, Trivia Crack, etc., but only when connected to my ASUS RT-N66U home router. It was very snappy at doing the same on 4G and on Wi-Fi outside of my home. Phone speed test results using my router were excellent: 101 Mb/s up, 10.25 Mb/s down, 21 ms latency, 0% packet loss. Wireless link speed was 300 Mbps. No other wireless client in my home had this issue.

The following fix attempts did nothing to help:

  • Clearing the Android system cache.
  • Clearing Google Play Services data.
  • Router factory settings reset.
  • Toggling router DNS between ISP and OpenDNS.
  • Enabling/disabling QoS on router.
  • Enabling/disabling DoS prevention on router.
  • Renaming SSID.
  • Forgetting SSIDs in Android and reconnecting.
  • Restoring the S5’s hosts file.
  • Fiddling with almost every other router setting imaginable.

This lead me to Google “Instagram slow to download pics over Wi-Fi,” whereupon I discovered this thread. One of the recommended solutions there was to create a guest Wi-Fi network and use that instead. I did so and found that it fixed the image download problem, which meant that the fault was neither with my router nor my phone, but with a device on my regular LAN.

I subscribe to Mediacom triple play service that includes TiVo whole home DVR and VoIP phone service. The TiVo DVR and Mini units are connected to the LAN via an Actiontec ECB2500C MoCA Network Adapter as described here. The VoIP uses an ISP-supplied Cisco DPC3208 VoIP cable modem the Mediacom installer had connected to one of my gigabit switches. Note that the Cisco is separate and distinct from my own Motorola SURFboard SB6120 DOCSIS 3.0 modem that is my true internet gateway.

I started disconnecting devices from the LAN and checking the S5 after each one. Upon disconnecting the VoIP modem from the LAN, I saw a slight improvement. Upon disconnecting the MoCA adapter, the problem went away entirely.

Unfortunately, disconnecting the Actiontec KOed the TiVo service’s internet connection. After connecting the adapter to 1 of my switches instead didn’t work, I put it back where it was. I left the VoIP modem disconnected from my LAN since I could live without VoIP – I use my cellphone for calls anyway – but absolutely needed TiVo to work. Eventually I wound up with nearly everything on my network powered down: the adapter as well as all TiVo devices, PCs, switches, game consoles, and TVs.

I then powered up the devices in the following order: MoCA adapter, cable modem, router, VoIP modem (without reconnecting it to the LAN), TiVo head unit, Tivo Minis (in sequence), and then PCs. That fixed the problem completely.

I suspect the problem was the VoIP modem presented itself as an internet gateway to some apps on my S5, causing them to try – and fail – to use it to download media.

If you’re having the same problem, do the following:

  1. Power down literally all the networking equipment you have, including MoCA adapters, modems, switches, cable/satellite boxes, etc.
  2. If your VoIP modem is separate from the modem your router is connected to, ensure it is NOT connected to your LAN
  3. Power everything back up in the order I specified above.

How to safely move your apps and files to a new microSD card on Android

Need to upgrade your microSD card but don’t want corrupted files? Do this.

There are quite a few horror stories floating around about corrupted files after switching microSD cards, so I wrote this guide so others could avoid that problem. The phone used in this post in the Verizon Samsung Galaxy S5 (SM-G900V), and the PC OS is Windows 8.1. This method will transfer everything (data and apps) from the old card to the new one:

  1. Dismount the old SD card from your phone. (If that doesn’t work, turn the device off completely and remove the card).
  2. Mount the microSD card on your PC.* You’ll probably have to use a microSD adapter for this as most PCs lack native microSD support. DO NOT AT ANY TIME FORMAT ANY microSD CARD THAT YOU INTEND TO USE IN AN ANDROID DEVICE ON YOUR PC.
  3. In File Explorer, click the View tab.
  4. Check the Hidden Items box.
  5. Using File Explorer, copy the contents of the old SD card into a temporary folder on your PC.
  6. Eject the old SD card from your PC.
  7. Mount the new SD card on your Android device.
  8. Format the new SD card on your Android device.
  9. Dismount the new SD card from your Android device.
  10. Mount the new card on your PC as in Step 2.
  11. Copy the contents of the old SD card from the temporary folder in Step 5 to the new card. If you get file path length errors, ignore them for now.
  12. Eject the new SD card from your PC.
  13. Mount the new card on your Android device and ensure it’s working properly.**
  14. If you got file path length errors in Step 11, use BitTorrent Sync to sync the troublesome folders with the full file paths. You can also use FTP for that purpose.

(Optionally, but a good idea for data security) wipe the old SD card by formatting it in your Android device

  1. (Optionally, but a good idea for data security) wipe the old SD card by formatting it in your Android device. Dismount the new card from your Android device.
  2. Remove the new card from your Android device.
  3. Mount the old card on your Android device.
  4. Format the old card on your Android device.
  5. Dismount the old card from your Android device. Note that the card hasn’t been absolutely securely wiped, but this will prevent your files from accidentally showing up on someone else’s device if you give it to them.
  6. Mount the new card on your Android device.

* TouchWiz uses the exFAT file system for microSD cards. I assume this is the case for most Android ROMs as exFAT is the only advanced (read: FAT32+) file system with out of the box read/write support on all major OSes. ** Credit to DopeShow for this method.

The (Verizon) Samsung Galaxy S5 doesn’t support Qualcomm Quick Charge 2.0

Samsung and Qualcomm totally drop the ball.

Despite the Verizon Samsung Galaxy S5 (SM-G900V) CPU (Qualcomm Snapdragon 801) being listed as Quick Charge 2.0 capable on Qualcomm’s site and claims to that effect on various blogs, the phone doesn’t support the charging standard in testing.

Here’s what I tested my S5 with:

No combination of the above worked. I’ve reached out to Samsung Support about when this might change, but got this rather unhelpful reply:

I’ve also started a Verizon support question thread.

In the mean time, I’ll be RMAing the Tenergy. It cost $20.39 and slow charges the S5 on long USB cables, while the OEM charger costs as little as $7.49 without the same drawback. That’s a no-brainer.

How to switch back to Google Voice from Verizon Visual Voicemail

Verizon thinks you’d actually want to use Visual Voicemail instead of the far better – and free – Google Voice. Ha. Nope.

Uh oh, you OTA updated your Verizon Samsung Galaxy S5 (SM-G900V) and now Google Voice doesn’t work. It seems to have been replaced by the plague known as Visual Voicemail. Here’s how to fix that:

  1. First you’ll have to ensure that Google Voice is the default voice mail app in your phone’s settings. In Settings tap Applications.
  2. Tap Call.
  3. Scroll down to the VOICE MAIL heading.
  4. Ensure that Google Voice is listed under Voice Mail service. If it isn’t, tap that option and select it.
  5. Now to disable Visual Voicemail. Launch the app. More than likely you’ll have been pre-enrolled in a free 30-day premium trial, so you’ll have to cancel that. Click the menu icon.
  6. Click End premium trial (or something to that effect).
  7. Confirming the above should dump you out to the Basic Visual Voicemail app screen, which will give you the option to cancel altogether. Cancel.
  8. Go to Google Voice.
  9. Click the Settings icon.
  10. Click Settings.
  11. Click Deactivate voicemail.
  12. Click Activate voicemail.
  13. Follow the instructions in the pop-up exactly. (You may notice, for example, that the number you’re told to dial is different from your voice mail access number.) Your phone should now be back to using Google Voice instead of Visual Voicemail.

The above worked for my phone, which is stock rooted Android version 4.4.4, Build Number KTU84P.G900VVRU1ANI2 (commonly known as the NI2 build).

How to safely update your rooted Verizon Samsung Galaxy S5 to to the NK2 build

Because xda-developers instructions – like most forum guides – are poorly written.

This post assumes you’ll be updating from the NCG (Android 4.4.2) build the Verizon Samsung Galaxy S5 (SM-G900V) was released with. This method will not affect your files or apps on internal storage or the SD card in any way, so don’t worry about your phone being wiped.

  1. Ensure drivers for your phone are installed.
  2. Ensure towelroot is installed so you can easily re-root later.
  3. Ensure the System Updates app, SDM 1.0, is enabled. You’ll need it for the OTA update in a later step.*
  4. Ensure SuperSU is already installed.
  5. In Settings, tap Security.
  6. Under FIND MY MOBILE, uncheck the Reactivation lock box to prevent your SIM card being borked during the process.

    Note: do NOT proceed to Step 7 until Steps 1-6 have been completed.
  7. Download G900V_NK2_Stock_Kernel.tar.
  8. Download G900V_NCG_Stock_Kernel.tar.
  9. Download G900VVRU1ANHA_G900VVZW1ANHA_VZW.zip.
  10. Download ODINv3.10.rar.
  11. Decompress all the above .zip and .rar archives only. Do not decompress the .tar file(s).
  12. Turn off the S5.
  13. Hold Volume Down + Home + Power simultaneously to enter Download Mode.
  14. Press Volume Up to continue as indicated onscreen.
  15. Launch Odin from its decompressed folder.
  16. Connect the S5 to your PC via USB 2.0+ cable. This should result in Odin detecting the phone as below:

    Note the highlighted slot and "Added" message which indicate Odin's detection of the S5
    Note the highlighted slot and “Added” message which indicate Odin’s detection of the S5
  17. In the Odin window in the Files [Download] section, check the AP box.
  18. Click the AP button and select the G900VVRU1ANHA_G900VVZW1ANHA_G900VVRU1ANHA_HOME.tar file, found in the decompressed G900VVRU1ANHA_G900VVZW1ANHA_VZW.zip folder.
  19. Click Start. The S5 will update and boot into to the NHA build.
  20. In the S5’s Settings, tap System Updates.
  21. Tap Check for new software update.
  22. Accept, download, and install the available OTA NK2 update.
  23. When the S5 has successfully rebooted, turn it off.
  24. Put the S5 into Download Mode again as in Step 13.
  25. Repeat Steps 16 to 18 for the G900V_NCG_Stock_Kernel.tar file, with the exception that the S5 will now boot into the NK2 build, albeit running on the *NCG kernel.
  26. Open towelroot.
  27. Tap make it rain and wait for the rooting process to complete.
  28. Reboot the phone if towelroot doesn’t do that automatically.
  29. Open SuperSU and let it update the binary normally if it prompts you to do so.
  30. Repeat Steps 22 to 24 for the G900V_NK2_Stock_Kernel.tar file. The S5 will now boot into the NK2 build with matching kernel and root access.

*If you forget to do this, you won’t be able to OTA update in Step 18. In that case, follow Step 23, boot into the NHA build on the NCG kernel, and then root. Reboot and re-enable SDM 1.0, then continue the process at Step 18.

Credit JTidler & muniz_ri for the above instructions. I wrote this guide as an easier to understand and follow version for users like myself who don’t flash kernels and images as a matter of course.

Which file systems and protocols does the Samsung Galaxy S5 support over USB OTG?

The Samsung Galaxy S5 supports USB OTG, but with only 2 filesystems.

The other day I was trying to find out exactly what file systems of attached USB OTG drives my (Verizon) Samsung Galaxy S5 (SM-G900V) supports, but couldn’t find anything on Google. Therefore, I decided to buy an inexpensive USB 2.0 OTG adapter cable from Monoprice* and do some testing myself.

The drives I used were a SanDisk Cruzer Mini and a Sony Microvault for USB 2.0; and an ADATA DashDrive for USB 3.0.

FAT32 and exFAT formatting were done using Storage -> Disk Management in Computer Management on Windows 8.1 Update 1 Professional 64-bit, while ext4 formatting was done using Linux Mint 17’s USB Stick Formatter.

The results are in, and they’re not that great:

Pretty awful OTG support here.
Pretty awful OTG support here.

Basically the S5 refuses to mount anything that isn’t USB 2.0 AND FAT32 or exFAT.** If you have any comments, counterexamples, or ideas please be sure to share.

*I didn’t buy a USB 3.0 OTG cable as I couldn’t find one online that was guaranteed to even fit the S5. I’ve never encountered that issue with USB before, so I have no idea if the fault is with the cable OEM or Samsung.

Also, part of my motivation for getting an OTG cable is to facilitate Sneakernet file transfers while out of the house. Since very few phones support micro USB 3.0, I decided to go the 2.0 route.

** I don’t own a Mac and so couldn’t try HFS Plus, sorry.