Since I already blogged about getting a new phone, I figured I would blog a bit about getting it working. I ended up staying up until 5AM Friday night to get the phone switched over to CyanogenMod and mostly configured. Here is a photo of a happy new Nexus 5X booting CyanogenMod (note the cute cyan robot logo):

It actually was quite a bit more work than expected. I already mentioned about the USB-C connector it comes with, and the charge cable is USB-C to USB-C.

This is quite a big deal for me since the reason I buy Nexus phones is because they are designed to let you flash other OS firmwares besides the stock Google ones. I run CyanogenMod as my phone OS. (It is a “cleaned up and more control to the user” variant of Android.) And the only way I’ve ever flashed another OS on an Android phone requires a computer.

As much to remind myself as anything else, here are the basic steps:

  1. Boot to “fastboot mode” on the phone. (Power button on while holding the down volume on both the Nexus 5 and Nexus 5X.)
  2. Unlock bootloader from computer using “sudo fastboot oem unlock” command.
  3. Flash new recovery firmware from computer using “fastboot” command. (I use TWRP.)
  4. Boot to TWRP recovery on phone.
  5. Download CyanogenMod image and flash it using recovery. (For Nexus 5X, I downloaded from here. Note that these are all “nightlies” because the Nexus 5X is new enough that they don’t have a more stable “milestone” release yet.)
  6. I believe you need to boot into CyanogenMod once before the next step, and then boot back into recovery again.
  7. Download OpenGAPPS to get the Google playstore functional. It is worth noting that the Nexus 5X uses an ARM64 CPU unlock every other phone I’ve ever owned (which were all ARM 32-bit based.) So I downloaded an ARM64 Android 6.0 “nano” image.
  8. Flash OpenGAPPS image from TWRP.
  9. Install all of the apps that you want and configure them.
There might be a way to do all of this without a computer, but the computer way seems simpler and safer. If something goes wrong flashing the recovery image, etc., you can always use the computer to flash it again.
So in order to use the computer, I needed a cable like this one from Belkin. Unfortunately, Thailand appears not to have begun stocking these kinds of cables. At least the shops at Central Rama 2 haven’t. I did find a USB2.0 version of this Belkin cable available for order from an online retailer here in Thailand, and I did order it. But I wasn’t going to wait around for a week or more before I get my new phone working. (It might be worth mentioning that my old phone has a problem with the power button and doesn’t always boot up, so I wanted to get everything transferred over before it is completely dead.)
So I noticed that some Apple MacBooks use USB-C as their primary connector on the laptop, and Apple is pretty popular in Thailand. So I was able to buy one of these from an Apple store. Now came the next hurdle. These are designed with a male USB-C connector and a female USB-A connector. I need a male USB-A connector and either male or female USB-C connector. (The phone came with a male-to-male USB-C.) And they don’t sell male to male USB-A cables. This is when pommm proposed to cut up two USB-A cables and solder them together for me. Yay pommm! 
So here is the Apple adaptor connected to the homebrew USB-A male-to-male cable:
(In the center of the picture is just the box for the MacBook cable. I wanted to show it off since it might be the first Apple product I ever owned since my parents got an Apple 2e when I was a kid.)
Note that I am effectively using the Apple adaptor backwards. The USB-C side was intended to be plugged into the computer and the USB-A side heading towards the device. But apparently it works fine either way since it worked splendidly.
As a final note, here are a few more “gotchas” that I encountered along the way that are worth remembering. 
I use Titanium Backup to backup my phones. I was really hoping I could backup my old Nexus 5 using Titanium Backup and then restore the backup on my Nexus 5X and have all of the apps and configuration working just like that. Well the catch is the ARM vs ARM64 change. So none of the backups could be restored on the new phone as-is. It wasn’t a complete loss though… once I went to the Google play store and installed all of the apps I use there (there are only about 20-30 of them and it took less than 10 minutes), then Titanium Backup would allow me to “restore data” on those apps so that my apps such as K-9 mail and Conversations didn’t need to be reconfigured. It even came with all of the cached messages, etc. Not perfect, but still pretty good.
The next gotcha which took me almost a day to solve was that the camera and bluetooth didn’t work at all. The camera app just complained about not being able to connect to camera, and the bluetooth just froze the phone entirely when I tried to scan for devices. Eventually, I found this post on the CyanogenMod forums and tried downloading the official “vendor.img” and flashing it as recommended. And sure enough, everything worked.
The last gotcha was that Google Hangouts wasn’t showing any notifications until I opened the app. This clearly defeats the purpose of notifications. But the problem appears to have gone away after going to Settings->Apps->Hangouts and clearing both cache and data. Hopefully it doesn’t come back. As an interesting note for anyone reading this who has the same problem, the most common cause of this problem I found while Googling was that timesync was off on the phone. This is fixed by turning on “network time sync” or something similar under the date & time settings. I already had it on, so it wasn’t my problem, but it is worth remembering.
Other than the usual hurdles of getting a fancy new phone setup, I am pretty happy with the new phone. It has a bigger and sharper screen, a much higher resolution camera, and a cool fingerprint sensor for unlocking the phone. The bigger screen alone has allowed me to reduce from 3 panels on my home screen to 2 because each screen fits more icons and widgets. 
The next thing I want to test more thoroughly is the video. It claims to be able to be able to record 4K resolution video at 30fps. That sounds pretty amazing!