How to recover IMEI on a Moto G5 Plus

Need help to recover the IMEI on a Moto G5 Plus after reflashing the stock ROM? If your IMEI is showing as zero and you need help fixing it keep reading.

I recently purchased a Moto G5 Plus XT1687 64GB / 4GB used phone to replace my Galaxy S5. Without making an EFS backup, I flashed various Potter custom Android ROMs to the device which failed to work with the MVNO I use (Tello) on the Sprint network. After several frustrating hours, I followed the instructions here: and ended up without a cell signal. A quick look at the IMEI number showed it was zero from the Android “Settings->About phone->Status->IMEI Information” menu. This is a well known problem although the solution isn’t well documented.

Here is how I fixed the empty IMEI number on my G5 Plus and restored service on Sprint MVNO Tello network.

IMPORTANT: this guide is for a US based phone. There are different FW images for non-US phones. Only proceed with a US based unlocked retail (non-Amazon ad) phone.
DISCLAIMER – Proceed at your own risk and peril – don’t blame me if you brick your device.

1) First follow this guide to restore stock ROM
2) If you have service, just stop here and be glad. You are done. If you don’t have service, continue on.
3) Check your IMEI by navigating as follows: Settings->About phone->Status->IMEI Information
4) If your IMEI isn’t zero, then stop and start googling for another solution, what follows won’t help you.
5) If you have a backup of your EFS partition from when things worked, congrats, you just saved yourself a bunch of work and can skip down to step 12
6) You’ll need to flash the potter pixel image over the stock ROM. XDA Potter Pixel Experience ROM
7) With potter experience, you will likely not have service, but you’ll have an IMEI. Check it now to make sure it isn’t zero and continue.
7) Also flash TWRP recovery TWRP Potter Official Download page
8) From power off state, boot into the recovery image (TWRP) by holding down volume and power until fastboot menu appears. Then choose Recovery to get into TWRP.
9) Make a backup of your EFS partition from within TWRP.
10) Use ADB to copy it from your phone to your PC (adb pull)
11) Now reinstall the stock Moto G5 Android image again. You should be back to where you were at step 1, but now with a good EFS backup.
12) You’ll probably need to reflash TWRP (see step 7) again since stock reflash wipes that out.
13) Boot into TWRP recovery and push your EFS backup using adb push to the phone.
14) From within TWRP restore the EFS partition you just copied back to your phone.
15) Take a deep breath, and reboot your phone. You should now boot back into stock rom with a proper IMEI showing in the device and service should resume.

Good luck, I hope this might help you. Leave me a comment if you need help or have questions.

Ubuntu 18.04 shortcuts with IntelliJ

The default Gnome system shortcuts on Ubuntu 18.04 conflict with IntelliJ default keybindings. There are several solutions to fix this. One solution offered is to change the IntelliJ shortcut profile to avoid collisions with default system Ubuntu definitions. This is less than ideal because first they don’t fully avoid collisions, and second you have to learn new keybindings.

It’s also worth stating that I don’t know of an elegant solution to having both work – so assuming you are like me and prefer to have IntelliJ be the consumer of things like Alt+F7 and Ctrl+Alt+Left and Ctrl+Alt+Right and so on, you will need to do the following.

List all your system shortcuts

$ gsettings list-recursively org.gnome.desktop.wm.keybindings

Find the ones you want to change and get them, change them and get them again (to read, write, verify) each one.

$ gsettings get org.gnome.desktop.wm.keybindings switch-to-workspace-right

$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "['']"

$ gsettings get org.gnome.desktop.wm.keybindings switch-to-workspace-right

You can figure out the rest from there. My understanding is that there isn’t a good graphical tool that will allow full control (e.g. Settings->Keyboard->etc) doesn’t show all system shortcuts.

Update (July 2019) – newer versions of IntelliJ for linux set the default key binding to GNOME default. To change this back to the IntelliJ default, Go to settings (Ctrl+Alt+S), choose Keymapping and select the first item in the list named “Default”

Fix Tello data on LineageOS

If you flash the latest version of LineageOS 14.1 with Android 7.1 onto a Samsung Galaxy S5 the cellular voice service works as does SMS, but I found that MMS and cellular data do not work. This is because Tello is a MVNO using Sprints network. The default Sprint network settings in LineageOS are not correct. I will briefly explain how to fix them here.

We will be changing the APN settings on the phone. APN stands for Access Point Network. These are important configuration items for your phone to properly connect to the cellular network and will vary by provider.

To reach the APN settings menu on Android with LineageOS 14.1 nagivate to Settings->Wireless & Networks->More->Cellular Networks->Access Point Names.

At this point you can edit or add new APN configurations. LineageOS comes with several standard providers pre-configured, but Tello is not one of them so we will add a new APN by selecting the plus button at the top of the Access Point Names menu.

Name = Tello
APN = n.mi.ispsn
Proxy = Not set
Port = Not set
Username =
Password = Not set
Server = Not set
MMS proxy =
MMS port = 80
MCC = 310
MNC = 120
Authentication type = Not set
APN type = default,mms
APN protocol = IPv4
APN roaming protocol = IPv4
Bearer = LTE
MVNO type = None
MVNO value = Not set

Save this configuration and your data and MMS should now work.

Here is some additional information on the meaning of each APN settings above

MMSC stands for Multimedia Messaging Service
MCC stands for Mobile Country Code List of MCC at Wikipedia
MNC stands for Mobile Network Code
APN type is described here: details on APN type

Another description of APN settings is available here: Details of APN settings

How to convert CD to mp3 command line linux

These days it isn’t very often I have a need to load a CD anymore. But occasionally I will end up with a new CD for one reason or another that needs to be converted to something I can load onto my phone. Here is my quick method for a command line way to convert an audio CD to mp3s.

This is a two step process


  • Linux with a bash shell
  • Have cdparanoia installed. $ sudo apt install cdparanoia
  • First Step: Convert the CD to WAV files using cdparanoia

    [ mrharmon: ~ ]$ cdparanoia -B

    You should end up with some output as follows:

    cdparanoia III release 10.2 (September 11, 2008)
    Ripping from sector       0 (track  1 [0:00.00])
    	  to sector  232720 (track  7 [6:42.02])
    outputting to track01.cdda.wav
     (== PROGRESS == [                              | 031681 00 ] == :^D * ==)   
    outputting to track02.cdda.wav

    Second Step: Convert the WAV files to MP3 using lame

    what we will do here is execute a simple bash loop that will find all wav files in the folder and iterate on converting them to mp3 via the lame tool.

    $ for file in *.wav; do lame $file; done

    Now you should have your output files in mp3 format. At this point you can delete the wav files since they are no longer needed.

    There are a lot of possibilities for the above tools (lame and cdparanoia). I recommend reading the man pages if you want to encode files with more advanced options such as different bit rates, file formats etc.

    1989 Ford F150 Temperature Sending Unit

    The temp gauge in my 89 F150 is only reading cold. Locating the temp sending unit on an 89 F150 was more difficult than I thought. The plug was covered in oil and grime but it’s located to the right side of the distributor as you face the engine. It’s a single wire and you can test it by connecting a lead to the wire and the other end to a ground on the engine. Then turn the key so the gauges come alive and look for the temperature gauge to move towards hot. Don’t leave it in this energized state for too long as you may cause damage. However, this will help to determine if you need to replace the sensor.

    My truck is a 1989 F150 XLT Lariat 302ci V8 with fuel injection. The replacement temp sending unit part I purchased was this one:

    Freedompop Review 2017 | Samsung Galaxy S5

    After two years of using Republic Wireless and being more or less happy with it, my Motorola MotoG first edition is becoming too slow for me. I’ve also noticed that RW plans are not as competitive as they used to be, especially for data. So, I went on a search to try another provider and quickly found I don’t own a TV so I’ve never seen the commercials for this it was simply a google search that led me there. The ordering process was quick and easy and I purchased a Samsung Galaxy S5 (pre-owned) and premium service 1GB/month data for a total of $236 dollars. The phone was 140 and the annual premium service was 79/year. I was so excited I opted for the 17 dollars extra to expedite shipping (mistake, keep reading).

    The order was placed 3 weeks ago – today the phone arrived via UPS; so much for expedited shipping. To me, expedited means 2 days from click to box arriving (thanks Amazon for setting the bar high).

    The phone came in a nice box and it doesn’t look like it was ever used before (I couldn’t find fingerprints, scratches, etc. I did check the water damage stickers on the phone which were still white so that checked out.

    I was disappointed to find that the charger supplied isn’t an original Samsung charger, nor does it have the dual prong micro usb 3.0 charger cable. I don’t know how much I’m missing out on, but the standard micro usb 2.0 cable was in the box.

    The next disappointment was the activation process. It seems that my account is stuck in the ‘preparing shipment’ phase despite having arrived at my home today. This was like a wet blanket on my happy moment. I have submitted the ticket to requesting help since I can’t use my phone to make phone calls until this is resolved and I can successfully activate the phone. I did find a load of evidence I’m not the only person with this problem – some people complained they waited as much as a month to resolve this.

    So lessons learned – 1) don’t pay for expedited shipping. 2) Have another phone for a while since this process could take a while.

    I’ll update once the phone is activated and I’ve had some time on it.

    Update April 2017

    A few things I’ve learned. First watch your credit card bill. FP recently billed me for another 79.99. I emailed their support and after 3 days I received a response indicating they had made an error, but that the refund would take few more days because it requires manager approval. After nearly a week, I got the refund.

    The call quality leaves a lot to be desired. I dn’t have the premium voice so everything is VOIP. I get dropped calls, bad call quality – about what I’d expect for 6.75 / month. I wouldn’t use this service for anything other than light personal use.

    FP is worth the current cost for me. I have to struggle to find good signals when not connected to WIFI.

    1997 Accord Door locks keep locking FIX!

    My door locks kept actuating on my 1997 Honda Accord. There was no grinding noise, but it was concerning because they would continue to keep locking for several minutes after I would lock them. My concern was that at some point they would continue indefinitely and kill the battery in the process leaving me in a lurch.

    The problem turned out to be the driver side door lock actuator. It is not terribly difficult to remove with simple hand tools. Many posts indicate that the rubber stoppers wear out, and most of the posts talk about gear grinding noise as a result. I didn’t have that problem, but when I would manually activate the locking mechanism the leads would bounce and cause the controller module (which is separate, in the door as well) to re-activate, then the bounce would occur and the situation would repeat over and over again.

    You can find a replacement on amazon – Amazon – Door lock actuator 1994-1997 Accord

    The job takes about 1 hour to complete, and while I was in there I cleaned out the lower window channel and sprayed some silicon in there as well to help the slow driver side window go up and down with less resistance.

    Send me a message if you need help or have questions.

    Toyota Camry Check Engine Light Fixed!

    After moving to Washington state, our 2000 Toyota Camry CE failed it’s emissions test. The reason was that the car’s check engine light was illuminated and the CEL (check engine light) codes P0440, P0441 and P0446 were present.

    These fault codes indicate problems with the evap system. This was bad news.

    Here is the summary of how I finally fixed the issue and some lessons that I learned which might save you time and money.

    1) Replaced gas cap with a genuine Toyota gas cap for our model and cleared fault codes. Specifically this is one: Genuine Toyota (77310-48020) Fuel Tank Cap Assembly

    RESULT => Same diagnostic codes reappeared within a day.

    2) I replaced the entire evap canister. Based on a youtube video I found – this was indicated to be the most common cause of these failure. The canister was about 250 dollars (ouch). Wasn’t too difficult to replace but helped to have jack stands to elevate the entire car. Also had to drop the exhaust to wiggle it out. It took about two hours from start to finish. Not as bad as people make it sound.

    Here is the evap canister I bought for our model: Genuine Toyota 77740-06170 Charcoal Canister Assembly

    Note: Amazon site said it wouldn’t fit my model car – but it’s correct – their site is wrong.

    RESULT => Same diagnostic codes reappeared within a day.

    3) Bought this vacuum pump
    Amzdeal Brake Bleeder Vacuum Pump Kit Tools

    and this VSV (vacuum switching valve)

    Dorman 911-606 Toyota Avalon/Camry/ES3300 Vacuum Switching Valve

    RESULT => Same diagnostic codes reappeared within a day.

    I finally determined that the underlying cause of these codes was a bad seal on the gas cap!

    How to save money on storage

    I’m back in apartment living after a nearly 15 year break. Our apartment in Vancouver, WA has little to no storage for all the things in our home in Boise from which we are moving. So, today my goal was to find a place to store things. I went to public storage near our apartment which I’ve been driving by for several weeks. It’s close to our place so I thought why not. I got in and learned a few things I want to share which might benefit you too.

    1) Rates vary by location. Each location has different rates despite being under the same company. Shop around.

    2) Rates vary by day. Each facility changes its rates daily dependent upon availability and occupancy. By nature, with people moving in and out, this causes lots of changes. My recommendation is to shop around for a few weeks in advance and lock in on a good rate.

    3) Rates for a larger unit are sometimes nearly the same price as a smaller unit. A 10×10 was $158 / month. A 10×15 was $212 / month and a 10×20 was $216 per month. So, at that moment on this day and that location the 10×20 was only an incremental 4 dollars.

    4) Not all units come with the sign advertised “First month free” or “First month for one dollar” promotion. Again, it’s basically a teaser to get you in the door. More on fixing that later.

    5) You WILL save money by booking online. The ‘walk in rates’ are about 10% more than the online rates. It will save you money to go to to ‘reserve’ a spot.

    6) Public storage requires you to have insurance to cover your stored belongings. Of course they offer it at a premium for you when you sign up. In our case, we were already paying renters insurance. I made a phone call to confirm our coverage also supported storage units (which it did) and saved an additional $11 / month.

    7) They will charge you for a lock, and it’s another 21 dollars. They use a cylinder type oddball lock which I couldn’t find online. My sense is they are forcing you to buy their over-priced proprietary locks to earn extra money. Do you know where to buy one online that works? Tell me and I’ll update this post for the world to benefit.

    8) Be open to a larger unit – you might save money. In our case the larger units at the facility we ended up going to were on sale and nearly 50% cheaper than the smaller units. Do your own research online. They publish their prices on their website so you can quickly figure out what to do.

    Hope all of that saves you some time and money.

    First experience with Uber

    I needed a ride back from Vancouver, WA to Portland airport to pick up my car. The taxi fare for this is typically around 30 dollars + tip. I downloaded the uber app and within 10 minutes was picked up by a nice driver in a clean new civic. He dropped me where I needed to go promptly and the total fare was $18.92 or just a little more than half what a taxi would have charged. Of course, I also gave him a tip for his effort. The overall experience was good. The setup of an Uber account was quick and easy, I like that you can watch the driver on his way to pick you up (so you know how long it will be). The cashless system is quick, and easy on everyone. As a bonus it was fun to talk to this guy during the ride and the nearly instant SMS updates on pickup estimate and arrival etc. are wonderful. Overall A+ and I’d do it again next time I need a lift. Unfortunately Portland pickups are currently on hold while Uber works out terms with the local government. They are supposed to resume in April 2015 providing pickup service within Portland, but in my case I needed a WA pickup and a Portland dropoff which was still allowable.

    Have you used Uber? Was your experience similar?