Where to find the latest version of Odin

Is it Odin or Odin3? 🤔

Advertisements

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.

Mythbusting adoptable storage

Samsung, LG, and Sony are lying to us.

Time to clear the air on a couple adoptable storage myths propagated mostly by Samsung and LG as excuses for why the feature is absent from their ROMs as shipped.

I have 2 devices with adoptable storage enabled: an Nvidia Shield K1 running stock Shield software and a Samsung SM-G900V (Verizon Samsung Galaxy S5) running CM 13.0 nightly. Both OSes are based on Android 6.0.1. The feature works perfectly on both with no slowdowns or delays.

Sadly, much of the confusion about the feature stems from Google’s poor communication about it to begin with. The fact that the most extensive technical writeup on the feature is a Reddit post – some of which I disagree with based on my own experience – is quite damning.

Let’s start with what adoptable storage actually does. The best analog of adoptable storage in its default implementation is moving your personal files to a slower hard drive on your PC while keeping your apps on a fast SSD. That’s what adoptable storage does by default. It just changes the location of your personal files to the microSD card and reserves your phone’s eMMC or UFS storage for apps.

Myth: Adoptable storage slows your phone down.

Relative to keeping all your data on internal storage, this is correct. But when flagships ship with only 32 GB of storage in 2016 when even $600 laptops ship with 1TB, the assumption that users would only ever use the phone’s internal storage is anachronistic at best.

Once the portable storage use case enters the picture, the speed argument falls flat because both portable storage and adoptable storage fetch user data from microSD while running apps on internal storage. Oh, and local storage will always be faster, more accessible, and  more reliable than cloud storage, so comparing adoptable storage to pulling files from the cloud is also nonsensical.

Significant slowdowns happen ONLY if you move your apps to the SD card also, which doesn’t happen by default on the devices on which I have it enabled. Or at least, it doesn’t seem to happen on devices with >= 16 GB of built-in storage (Then again, implementation seems to have been left up to ROM developers). Unless you run TouchWiz or play a lot of games, Android apps are very space efficient. Here’s the storage on my S5 runniung CM 13 with 101 apps (not counting the Open GApps package) installed from the Play Store:

Screenshot_20160417-172235
Apps take up very little space on stock Android

Myth: You lose access to your internal storage.

Wrong. Rooted users can still read and write to internal storage using apps like Root Explorer, but other non-privileged apps won’t be able to do the same.

Myth: You need portable storage to transfer files to PCs, and adoptable storage ruins that.

How, in 2016, “experts” are recommending sneakernet for file transfer is beyond me. Popping a microSD card out of your phone to put files onto a PC makes as much sense as pulling the PC’s user data hard drive to transfer files onto another PC.

The easiest way to transfer files to a PC from a phone are apps like Send Anywhere, FTP, SAMBA, or BitTorrent Sync, or hardware features such as USB OTG. There’s absolutely zero reason to insert your microSD card into your PC, especially since doing so can cause other problems.

Myth: There’s no advantage to adoptable storage over portable storage.

The only real disadvantage is fast(er) eMMC/UFS internal storage is no longer accessible for personal data use, but this is relevant only to users who have very small media libraries. Once your library exceeds the paltry free storage available on current 32 GB flagships, adoptable storage is the best route.

Adoptable storage gives the rest of us with GBs of documents and media a gigantic (relative to internal) block of storage that any app can read or write to. Compare that to portable storage, where App A can’t modify App B’s microSD files. It also blows cloud storage out of the water in terms of speed, availability, subscription cost, and mobile data usage.

Myth: microSD cards are unreliable.

Adoptable storage SD cards aren’t any more or less reliable than portable storage ones. You get what you pay for. Cheap, off-brand, and low spec cards will be awful. Ensure you’re using U3 rated card at the very least. I recommend Samsung, SanDisk, and Kingston cards, in that order.

I’ve had a great experience with the Samsung Micro SD Pro+ 128GB. Get it.

How to update your Verizon S5 from KitKat to Lollipop without losing root or your apps

As usual, everything that would be routine on the desktop is infinitely harder and hacky on mobile.

As with previous guides, this one is more detailed version/composite of forum posts, which are linked to. The aim here is to make the process easily understandable for those who aren’t used to flashing or rooting. It applies to the Samsung SM-G900V only.

Phase -1 (OPTIONAL, for adventurous rooted KitKat users): Take the Lollipop OTA update

Yes, you will lose root in the process. But you’ll also get your apps and data updated in-place to Lollipop and ART, thus possibly reducing the odds of CPU/battery life/heat problems later. I haven’t tried this myself, but it’s an idea. Remember to unfreeze/restore any apps you may have disabled or frozen via Titanium Backup first, or the OTA may fail.

Phase 0: Back up all your apps and data

  1. Ensure you have a 32+ GB microSD card installed. The entire update process relies on external storage, and the last thing you want is run out of space.
  2. Back up your apps and data. This guide uses Titanium Backup Pro (TBP), which is the most widely used and thus has the most community support. Unfortunately, it requires root in the first place, which means unrooted users on Lollipop will have to try an alternative such as Helium.* The basic process should still be the same, however: backup your apps and data initially, then restore your data only (if coming from KitKat, to avoid ART & Dalvik conflicts) afterwards.
    1. Install TBP.
    2. Open TBP.
    3. Set the location of the backup folder:
      1. Tap MENU.
      2. Tap Preferences …
      3. Ensure Auto-sync TB settings is checked.
      4. Under Backup settings, tap Backup folder location.
      5. Select (or create if one doesn’t already exist) a folder on your SD card.
      6. Tap Use the current folder to save your setting.
    4. Return to the app’s front page and tap the batch âś” icon to the left of MENU.
    5. Under Backup, tap RUN for Backup all user apps.
    6. Tap SELECT ALL. If you have Microsoft Office installed, uncheck it. For some reason TBP chokes when attempting to restore data for it, so just omit it.
    7. Ensure the Pause active apps radio button is engaged. This will ensure all your apps get backed up even if they’re currently running.
    8. Tap the âś” icon and wait for the backup process to complete. It may take a while depending on how many apps you have, so be patient. When that process completes, head to Phase 1.

Phase 1: Download the rooted Lollipop ROM and the recovery environment needed to install it

  1. Download G900V_OC4_100%_Stock_Rooted_ROM.zip to the top level directory of your SD card. A top level location makes the file easier to find in Safestrap, whose UI is extremely basic.
  2. Download Safestrap-G900V-3.75-KitKat.apk to your SD card.
  3. If you’re on Lollipop, proceed to Phase 2. If you’re on KitKat, proceed to Phase 3.

Phase 2 (unrooted Lollipop only): Downgrade to the KitKat NK2 build

  1. Follow the steps here.
  2. Proceed to Phase 3.

Phase 3: Install Safestrap

  1. Follow the HOW DO I INSTALL SAFESTRAP? instructions here.

Phase 4: Update to the rooted Lollipop ROM

  1. Follow the instructions here.
  2. Upon booting into Lollipop, the OS will ask if you’d like to restore your apps from your previous device. Accept the offer. Note that this will NOT restore the data associated with these apps, despite the prompt’s claim. You’ll do actual data restoration in a later phase. If you’re on a metered data plan, be sure to connect to Wi-Fi as soon as you can to prevent your data being used for app downloads. Wait for the reinstallation process to complete.

Phase 5: Restore your app data

  1. Reinstall TBP.
  2. Set TBP’s backup folder to be the same one you selected in Phase 0 above. This should load not only the backups you made but your previous settings also.
  3. Return to the app’s front page and tap the batch âś” icon to the left of MENU.
  4. Under Restore, tap RUN for Restore all apps with data.
  5. Tap SELECT ALL.
  6. Ensure the Data only radio button is engaged.
  7. Ensure Exclude system APKs is checked.
  8. Tap the âś” icon and wait for the restore process to complete. Note that some system apps, such as Smart Remote, won’t be restored and so you’ll have to set them up from scratch instead. If you are coming from rooted KitKat originally, I would not suggest you try to restore them either as they could have been under the hood changes that may not play well with the restored data.

Phase 6 (Optional): Wipe your system cache

  1. This isn’t absolutely necessary, but it’s useful in case you have CPU usage/battery drain/heat issues after the update. Follow these instructions.

* Having never used Helium before, I can’t provide or verify any instructions for it. Sorry.

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.

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.

Samsung Galaxy Nexus doesn’t support 20/40 MHz Wi-Fi channel bandwidth

Stick to 20, kids
Stick to 20, kids

Learned this the hard way over the past few days after I switched my ASUS RT-N66U‘s channel bandwidth setting from 20 MHz to 20/40 MHz. For what it’s worth, here’s what ASUS’ official documentation says on the setting (emphasis mine):

802.11n can combine two 20 MHz channels to form an effective bandwidth of 40 MHz. 40 MHz enables higher data transmission rates to be achieved as compared to 20 MHz. When you select 20/40 MHz mode, the router decide to use 20 or 40 MHz based on the interference/contention the router detected. Care should be taken when using 40MHz mode, the legacy client may not be connected to the router.
However, when using a wider channel bandwidth, there are fewer channels available for other devices, making more interference/contention with neighboring WLANs due to increasing overlap. In order to avoid excessive interference, the Wi-Fi Alliance develops an advice: setting 20 MHz in 2.4GHz as default. 40MHz is still appropriate for some situations, e.g. in a warehouse, but we do not recommend that using 40MHz in the 2.4GHz band for dense residential areas.

I enabled it anyway, and noticed my Galaxy Nexus frequently being unable to access the internet despite being connected to the router. Switching back to 20 MHz solved the problem. Given the Galaxy Nexus’ release date, apparently “legacy” for ASUS means anything from late 2011 or preceding. For the record, the phone’s Wi-Fi radio is the Broadcom BCM4330XB2KFFBG. Broadcom radios have been suspect recently, so this isn’t surprising.

And yes, I know ASUS recommends 20/40 MHz not be used for residential settings, but my Dell Precision M4600, Amazon Kindle Paperwhite, and Sony Vaio Fit 15 E all handled it without complaint.

UPDATE: Also, disable “b/g protection” for 2.4 GHz frequency. Then, forget the network on the Galaxy Nexus and then reconnect to it.