Category Archives: Android

Unified Internal Storage for Android 6.0+

Thinking about using Unified Internal Storage on Android 6.0+ to expand your phone’s measly internal storage?  Don’t even think about using it with anything other than a UHS-II SD card — even if your phone will let you use a slower card, don’t do it — your performance will be terrible.

It seems like it has to be UHS-II, for some reason (maybe it’s random r/w speeds?). I tried with even a very, very fast UHS-I, that benchmarked nearly the same, but Android wasn’t satisfied with it, giving the “This SD card is slow” warning.

The best priced one I could find out there (that you’d want to use) was a 32GB one:

https://www.bhphotovideo.com/c/product/1211505-REG

Creating a QI Wireless-charging Case for the Moto X (or any phone, really)

The Moto X (2013) is one of the best Android phones there is — it’s thin, it’s light, and the battery lasts nearly two days.  It’s got passive, voice-activated features that you can use even when the phone is locked and in your pocket.  You can launch your camera just by flicking your wrist in a certain way.  It’s got a lot of great features… but (eventhough there’s actually space inside the phone for it) QI-compatible wireless-charging was left off that list.

There are mods out there to take apart the Moto X and install a QI charging bad, but it renders you unable to charge your phone via a conventional cable when necessary, so I didn’t want to take that route.  Even if I have access to wireless charging pads at home, there’s going to be a situation where I’m going to need to charge my phone away from home, and modifying your phone in that way would prevent that (without disassembly).

When looking for wireless-charging compatible cases for my MotoX, the pickings were slim — I found one that was compatible with Duracell’s (proprietary, and not very well supported) Powermat technology, however, I’m wanting to take advantage of the huge mount of QI-compatible wireless-charging devices already out there.  QI is a technology that’s already been used by Nokia and Google for years now, and it’s licensed much more easily than Duracell’s technology.

So, I set about making my own QI-compatible wireless-charging case, using parts you can buy easily on Amazon.

#1) Buy your parts

Moto X and QI wireless charging pad, side by sideImportant: Get a QI-compatible charging receiver with the USB plug that faces up.  The case doesn’t matter, as long as it’s one that leaves enough room between the phone and the case so that there’s room for the charging pad.

#2) Test fit your charging pad in the case

Charing pad just sitting in case.

Try placing the charging pad in the case, and plugging the connector into your phone (at the bottom).  The case will “pinch” the connector cable a little — this is okay.  It’s durable, and very thin.

When you’ve figured out where the pad will sit when sandwiched between your phone and the case when it’s plugged in, move to step #3.

#3) Glue your case (or attach with tape)

Glue on four corners of charging pad

When you’re ready, put four drops of glue and place the pad into its final resting position that you decided upon in Step #2 (or just place it there and put four pieces of clear tape over the corners — this is what I had to do eventually when the glue wouldn’t hold).

#4) Seat everything together

Phone with case on with charging pad installed.

When your glue has dried (or your tape has been placed), carefully insert the QI charging pad cable into your phone’s USB port, and place your phone into the case.  Everything should sit together nicely, which just the little extrusion for the USB plug.

#5) Charge on a QI-compatible charger

Moto X with QI charging case on wireless charging pad.

When I placed my phone on the Anker charging pad, it started charging right away!  The phone even reflected so on the battery icon — I had heard from similar tutorials that sometimes this was not the case.  The phone would be charging, but the icon on the home screen would not show it.

I think this is due to whatever combination of charging pad and QI insert these individuals were using was not sufficient enough for the phone to reflect it, even though an actual current was being delivered to the phone.  I have experienced this in the past with Android tablets, if you’re using a charger that didn’t come with the tablet — the tablet would charge, even if the tablet’s UI didn’t reflect it.  It would charge very, very slowly.

So, good luck, and happy charging!

Unlocking/Rooting the HTC One on Linux

I recently bought a used HTC One that I intend on using on Ting — it’s a phone I’ve been wanting to use for about a year. It’s one of the nicest Android phones, with hardware quality approaching that of an iPhone. (Not to mention a software skin much more “professional” looking than a lot of other Android hardware manufacturers out there.)

HTC One Dimensions Picture
Isn’t it beautiful?

I didn’t want to flash or even necessarily root my HTC One, however, the only way to restore some apps (like the Google Authenticator) require rooting, so I had to do it.  What’s strange is that most tutorials and utilities I’ve found are for Windows (like this one from theunlockr) — I guess it shouldn’t be too surprising, considering most PC’s are Windows, but I’d figure that there would at least be some tutorials for Linux, considering Android’s origins.

Well, the good thing is that unlocking/rooting your HTC One on Linux isn’t really that hard at all, if you’re comfortable with the command-line, and familiar with using the android sdk tools (fastboot, etc.).

I’m not going to go into how to set up the Android sdk, etc, since if you’re doing something like manually unlocking your bootloader, you should already be familiar with it!

Unlocking/Rooting Your HTC One (M7) on Linux

Prerequisites:

  • android sdk
  • htcdev.com account
  • Latest recovery .img file from CWM
  • Superuser Hack .zip file: SuperSU (make sure and get whatever is the latest version of the SuperSU flashable zip — earlier versions found in other tutorials no longer work to root the later versions of Sense)

Unlock Bootloader

  • Boot into bootloader and select Fastboot
  • Run command “fastboot oem get_identifier_token”
  • Copy token as explained on the htcdev page, and await your Unlock_code.bin file in email
  • Copy Unlock_code.bin file to your working directory in Linux
  • Run command “fastboot flash unlocktoken Unlock_code.bin”
  • Follow prompts on screen to unlock/reset your phone

Flash Recovery

  • Boot into bootloader and select Fastboot
  • Run command “fastboot flash recovery <recovery.img>” (replace with .img file downloaded from CWM site)
  • Reboot

Root

  • Copy SuperSU .zip file to phone’s internal memory
  • Reboot into recovery
  • Flash SuperSU .zip file
  • Reboot and enjoy
Other Useful Links

Android 4.3 Radios for Sprint Galaxy Nexus

Can’t update your Sprint Galaxy Nexus to Android 4.3, but want to enjoy the new radios (which actually do improve signal strength a good bit)?

Tried to download the 4.3 update but it just won’t install on your Galaxy Nexus?  (Maybe you’ve rooted, hacked away at something — I’m not judging.)

Well, I can confirm that this link below works great to flash just the radios.

xda-developers – View Single Post – [ROM][AOSP][4.3.1][JLS36I] OFFICIAL CyanogenMod 10.2 Nightlies.

Startup Script for CM9 on the Droid Incredible 2

There’s a small bug when running Cyanogenmod 9 (Android 4.0.4) on the Droid Incredible 2 — every time you reboot, you have to run the command “killall drmserver” as root, or you won’t be able to install or upgrade any applications.

Now, why this isn’t baked into the OS, I don’t know, but in lieu of having to start a terminal every time you start up your phone and run this command, you can actually create a startup script.

It’s never that easy on linux (seems to be different on every distro), but the way it seems to be done on CM9 is:

1) First, create the directory ‘/data/local/userinit.d’ with the following command:

mkdir -p /data/local/userinit.d

2) Then, create your script in this directory and make sure and make it executable (chmod 755, at least) — I had something like:

#!/system/bin/sh

killall drmserver

Configuring the IBM Domino Server to Show the Mobile Login Form to Android Users

Just like many programmers have today, I’ve been starting to do a little bit of mobile development on the side with the Domino server, and I’ve been discovering the little tweaks IBM has been doing here and there to make Domino more mobile-friendly.  For instance, upon navigating your web browser to a Domino app with your iPhone or iPad, you’re greeted with a touch-friend version of the standard login screen:

Unfortunately, this special login view was apparently not extended to users of Android devices, as I found when I tried to login with my phone.  I was provided with the standard login screen, which is not very mobile-friendly at all.

Now, when you do finally login with your non-iOS mobile device, the actual database, such as your mailfile, will detect your non-iOS mobile device, and load an appropriate mobile interface.  Interesting.

So, I figured that a lot of the default Domino coding could detect non-iOS devices, but for some reason the login window portal (a database named DominoWebAccessRedirect.nsf) doesn’t.  I delved into the code for a bit, finding some interesting bits of code, and a reference to @GetProfileField that apparently grabbed a list of user-agent data (from a profile document) that was checked against the user trying to login. 

Figuring that there must be some way to edit that document, I did a little bit of Google searching, and found that it’s actually rather easy:

First, open up DominoWebAccessRedirect.nsf in your Notes Client:

Click on “Setup”, and then click on “Ultra-lite/Mobile Settings”:

Then, under “Mobile Device User Agent Keywords”, enter whatever you like.  Something tells me that “android” will probably be entered here already for you by default on the next release.

[ Resources: http://www.ibm.com/developerworks/lotus/library/inotes-ultra ]

Year of the Android

Oh, I firmly agree.

MWC 2010: The Year of the Android | Gadget Lab | Wired.com:

“But the general consumer doesn’t care. They just buy the phone and get apps from either the handset maker or their carrier (if they add apps at all). They probably don’t even know they have an “Android phone”.

The real customer for Android? It’s the handset manufacturers. They have been given a customizable, powerful and actively developed OS, and they get it free. Better, they can put in on any device they like. And this is what Microsoft is up against with its fussy new Windows Mobile 7, which has the cheek to specify minimum hardware requirements. Forget about the iPhone. Microsoft is in a death-match with Google and its free OS.”

Apple is not Android’s “competitor.” Apple’s iPhone is a closed hardware-software package — you can’t take the iPhone OS and run it on anything other than an iPhone. Thus, as far as the OS is concerned, no one is “competing” with the iPhone.

Where Apple competes is on the total mobile phone market front, and there they are competing against companies like Motorola, HTC, LG, etc. Not “Android” — no company “owns” Android, thus it isn’t competing against anyone, unless you’re talking about a philosophical open-source/closed-source “war” with Microsoft and their Windows Mobile OS.

I have no problem with Android phones becoming the vast majority of cell phones — this won’t stifle innovation like a Microsoft monopoly did in the PC market.  Like I said, no one company owns Android, and no one is stopped from taking it, changing it, and then releasing it in any personalized form they want to.