2018 Reading List

List of books that I am targeting to read in 2018:

2017 Reading list

So you want to buy an Unlocked Phone?

You might have gone over the list of devices that your carrier offers and don’t like any of them. Or you might have found another device on another site which you prefer over listed devices. There are few things to consider before you make that purchase. But the most important one in my opinion is to check for coverage.
Go to your target device’s web site and check for Network Compatibility. What bands does it support? Does your (target) carrier support those bands? Not only that, if you have service already in your area, you should install an app like SignalCheck. This will tell you on what band/frequency you are connecting and will give you better idea about it.
Alternately, you can use a site like FrequencyCheck.com to see if the device supports the bands you are interested in. It will even assist you with comparing against other phones and search devices that support a particular band as well. Not only that, you can also check if a particular phone will work in another country under a different carrier. So, if you travel a lot and especially abroad, it really helps to know how well your device will work under different carriers.

How my OnePlus One phone became just a mini-tablet

What a sad day! After three years my #OnePlus One (code name Bacon) has become just another mini-tablet (unless I switch carrier to AT&T, #NotHappening).
I like to have total control over my phone (root on Android), which is why after it's warranty period passes, I unlock the bootloader and install custom ROM on them. Oneplus One originally came with CyanogenOS 11, which was pre-installed on it. To say, it was fork of Android, but then if you think about it, just about every company with phone has a fork of Android on their phones as well. CyanogenOS came with quite a few customizations to begin with, and while initially there wasn't a need to root and/or install another custom ROM, I ended up doing just that a year later by installing Cyanogenmod (now called LineageOS) on them. Mainly because Cyanogen had gone out of business. Everything has worked perfectly fine until now. The device itself performs really well, considering it is three years old.
Here is what I tried so far, how I figured out what happened and what would I recommend to look for before buying your next unlocked device.
Mid November I noticed that whenever I was at work or at home, I wouldn’t get any signal on my phone, anymore. I had recently applied latest nightly from LineageOS for my device and thought that might have something to do with it. But apparently not (more on that later).
To troubleshoot this, I ended up doing the following in various combinations:

  • First and most obvious one was rollback to last update. That didn't work
  • Factory reset was the second option. Didn't help either. It would still show "No service".
  • Next, I cracked open the device to check if any of the antennas might have got unplugged (and cleaned up the Camera lens as well). After putting it back together it would charge, but none of my computers would detect when I would connect phone with them. Thinking it might have to do with some file corruption when I did the rollback, I did a full wipe (including Internal Storage) without thinking twice. And now I was left with just a recovery with no OS and no way to transfer my data over to the device to install it either (as OnePlus One doesn't have an SD card). It was then I came across a post on OnePlus forms talking about OTG cable with which one could transfer over the data by simply connecting any USB/Flash drive to it and mounting it in recovery (I like to use TWRP recovery). Bought and plugged it in with high hopes, but recovery didn't detect anything connected. Without any way of transferring any data to it, it was essentially no more than a paper weight. Before losing all hope I thought of having someone more experienced look at it. Took it to closest ifixit certified shop and they didn't see anything wrong with it either, granted they never bothered to open it up. The only diagnosis they did was to see if it was pulling any charge, which was already apparent. (Later I found out that USB has 4 wires 2 of them are for data and they should have checked if that was showing any current in them, which they didn't). Going along with OnePlus 1's moto, "Never Settle", on my way back home, I asked myself what else I could do to fix this issue, perhaps it's time to order new USB Charging port connector for this device from ebay? So, I started looking at that on ebay. After looking at how it was connected by watching some videos on ifixit.com I already knew it had to be bad USB connection. Before ordering new USB and watching closely Step 10, I thought I should double check the connector. Perhaps I didn't plug it back in right? Bingo! that was it. It wasn't seated properly.
  • Starting fresh I flashed my ROM with another ROM, Resurrection Remix. If you think LineageOS provides many more customizations over vanilla Android, you should give this one a try. It is loaded with a ton of customizations. However, that does impact your battery life as well, so be warned. However, that didn't help my cause either regarding signal issue.
  • Went back to another popular ROM for OnePlus One, SultanXda's LineageOS fork. His ROM along with his (separate) Kernel update does improve battery life. And it is much more stable than LineageOS's nightlies (of course). That didn't help either.
  • From reading just about every post on xda regarding similar issue on OnePlus One as well as on OnePlus's own forums. I learned that those ROM updates don’t include any updates for firmware (which might include update for modem and radio and could reflect this behavior). Flashing my firmware with those listed there was the next best thing to try. I tried flashing those as they were packaged and I flashed them in different combinations as well. Some would show no signal, others would just bootloop, and while others still would not even detect SIM card anymore.
  • Looked at other devices that have the same Qualcomm Chip in them and in fact I tried flashing with Samsung Galaxy S5's modem. No dice. It would just go into bootloop.
  • Lastly, I tried flashing the ROM from CyanogenOS (CM) 11 all the way to current LineageOS Nightlies 14.1. No help there. Tried flashing recovery and ROM with OxygenOS 2.4.1, and that didn't help either. Why would I try flashing the ROM again? Well those CM ones as well as OxygenOS had firmware with them as well. LineageOS and other custom ROM's don't have firmware and they just update your ROM's.
  • Later I discovered Howard Forums, and this post about T-Mobile making update to their spectrum. Perfectly makes sense to me now why my device works in some places and doesn't in others. I just wish it was not something I had to find out by going through all of this. Nevertheless, I am quite happy. To summarize what I have learned from this:
  • I can now start making tweaks and build my own custom ROM. xda is full of such posts on how to get started and contribute.
  • What to look for in unlocked devices next time I buy one (which i am about to). More specifically, it is important to ensure that the device you are looking for has all the bands your carrier supports. In my case only band 4 was supported by T-Mobile and given the spectrum changes that too is not too strong in my area. If i want to stay with T-Mobile, I will need to find an unlocked device that supports LTE-A with at least band 4 and 12. And if it does support band 66 and 71 (which some of the devices do now) that is going to be bonus as that allows better signals deep inside malls and other buildings. FrequencyCheck.com is a great place next to device's own site.
  • You should compare not only the various bands different phones support but also other specs before making your next purchase by visiting phonearena.com. GPU speed, what kind of screen glass it has? Battery capacity, etc. Here is a link to sample comparison. I guess next thing I can try is to mess with firmware myself.  #NeverSettle

Ramadan - What is it?

  Ramadan is one of the most important and holy months in the Islamic calendar. It is a time of fasting, prayer, and spiritual reflection fo...