10. May 2012 · 37 comments · Categories: Android, howto, Windows · Tags: ,

Update 03/14/2012: The below process works for the Windows 8 Consumer Preview. If you need to modify the driver .INF to support your device, please read this post for instructions on disabling Driver Signature Enforcement in Windows 8.

It isn’t actually that difficult to get ADB (Android Debug Bridge) working correctly under Windows x64 (Windows XP 64bit, 7 and Windows 8 x64 are supported) – you just need to perform a few steps in the right order.

  1. Download the latest 32-bit and 64-bit Java JDK from here: http://www.oracle.com/technetwork/java/javase/downloads/index.html (click the JDK link).
  2. Install the 32-bit JDK first, then the 64-bit. Note — Technically you can just use the 64-bit version, but you will occasionally get errors about the 32-bit version (x86) being missing. Best bet is to install both. Both Java 6 and Java 7 are supported.
  3. Once Java is installed, download the Android development kit for Windows from here: http://developer.android.com/sdk/index.html – you can now opt to download the SDK install in .exe format, which is recommend (and will be used by this guide).
  4. After the installer has finished downloading, run it. If you haven’t yet installed the JDK packages, the installer will remind you that they are required and won’t let you proceed.
  5. The installer will automatically launch the Android SDK Manager and prompt you to install a number of default packages. Of those listed, only the first two options (Android SDK Tools and Android SDK Platform Tools) and the Google USB Driver package (located in the Extras tree, near the bottom of the list) are needed. After you have selected the packages you want, click Install (x) Packages. A new window will appear – any items without a green checkmark require that you select them, then click Approve before you can proceed.
  6. After the process has finished, allow the Manager to restart the ADB process, then close the dialog box.
  7. When it’s finished downloading and installing, enable debugging mode on your Android phone and plug it in. Windows should now automagically detect the correct ADB driver. Once Windows has completed the driver installation, open Device Manager and ensure that the “Android Phone” category at the top has an entry called ‘Android Composite ADB Interface’ (pictured below). If the driver wasn’t installed automagically and appears in Device Manager as a Nexus One (or whatever your model of phone is), you can find the driver downloaded by the SDK Setup in the folder you extracted the SDK to (by default, C:\Program Files (x86)\Android\android-sdk-windows\google-usb_driver).
  8. Finally, open a command prompt, navigate to the platform-tools directory in the SDK folder and type ‘adb devices’ — ADB should now list your device (note: adb used to reside in the tools directory, but was moved to platform-tools with Gingerbread. As of r16 (the ICS update to the SDK), fastboot is also now located in platform-tools).
Device Manager showing the ADB Driver is correctly installed

Device Manager showing the ADB Driver is correctly installed

Note that some devices aren’t supported by the official ADB driver. Check the comments below for instructions on how to modify the driver INF to support your device.

So, one of the big issues I’ve had with the Windows 8 Consumer Preview is that Microsoft now not only forces you to use Digitally Signed Drivers (this isn’t new, as Windows 7 requires them as well), but also checks to see if the driver has been modified and will fail to install if it has.

This is a problem for anyone who needs to modify a driver .INF to support their device (*cough*Android ADB Drivers*cough*). Fortunately, there is a (slightly complicated) workaround.

To get started:

  1. From the Metro Start Screen, open Settings (move your mouse to the bottom-right-corner of the screen and wait for the pop-out bar to appear, then click the Gear icon).
  2. Click ‘More PC Settings’.
  3. Click ‘General’.
  4. Scroll down, and click ‘Restart now’ under ‘Advanced startup’.
  5. Wait a bit.
  6. Click ‘Troubleshoot’.
  7. Click ‘Advanced Options’
  8. Click ‘Windows Startup Settings’
  9. Click Restart.
  10. ???
  11. Profit!

When your computer restarts, select ‘Disable driver signature enforcement‘ from the list. You can now load your modified driver. Reboot again once the driver is installed and all will be well.

I tried firing off an MMS from my Nexus One this morning to a friend only to have it hang on ‘Sending…’ with no network activity. The short version of it is the APN settings for Rogers that are built-in to CyanogenMOD 7 are incorrect. Here’s what you need.

For Data/Text:

Name: Rogers
APN: rogers-core-appl1.apn
Proxy: <Not Set>
Port: <Not Set>
Username: <Not Set>
Password: <Not Set>
Server: <Not Set>
MMSC: <Not Set>
MMS proxy: <Not Set>
MMS port: <Not Set>
MMC: 302 (might be different – is auto-set by your SIM card)
MNC: 720 (might be 72 – is auto0set by your SIM card)
Authentication type: <Not Set>
APN type: <Not Set>
APN protocol: IPv4

For MMS (edit the bottom entry in the APN list called ‘Rogers MMS‘):

Name: Rogers MMS
APN: media.com
Proxy: <Not Set>
Port: <Not Set>
Username: media
Password: mda01
Server: 172.25.0.107
MMSC: http://mms.gprs.rogers.com (IMPORTANT: in the default settings, this is listed as grps rather than gprs – make sure to correct this!)
MMS proxy: 10.128.1.69
MMS port: 80
MMC: 302 (might be different – is auto-set by your SIM card)
MNC: 720 (might be 72 – is auto0set by your SIM card)
Authentication type: <Not Set>
APN type: mms
APN protocol: IPv4

And that should be it. Make sure that the first ‘Rogers’ entry is selected, and your MMS messages should now send correctly.

14. January 2011 · 2 comments · Categories: Android · Tags: ,

Threw this together this evening because of a thread I saw on 4Chan (Not-Safe-For-Anywhere). The Android logo is owned by Google and I make no claim to creating it. Lorem Ipsum is, well, Lorem Ipsum.

Android-Ipsum

Continued from Part 4 (read from the beginning).

I took a trip to the UK at the beginning of the month, and when I returned on the 13th immediately checked my credit card statement. I wasn’t surprised to see that the refund still hadn’t been processed (now past the 14-business-day cut-off mark for credit card refunds). I called HTC yet again, and after a bit of hold time was given some good-ish news.

The agent confirmed that yes, HTC’s warehouse had received my phone and they had accepted it. However, someone at said-warehouse hadn’t closed the ticket in their system which prevented the refund from being processed. I was promised that the ticket would once again be escalated and that the escalations team would get the warehouse to close the ticket and things would get moving again.

I asked if HTC would compensate me for the interest accrued on my credit card from having this charge sitting on it for nearly two months, but was told they wouldn’t do anything. It was worth asking about, though.

So, on Tuesday the 17th I once again checked my credit card statement and there it was! A line item showing a credit for the DoA Nexus One. Although I wasn’t happy with the time it took to deal with the issue, and the interest charges that built up from it, I was ready to put the issue to bed.

And then I got the following email from HTC:

Dear Laslow,

Thank you for using HTC Customer Service. We want to make your next visit even better and would like your feedback. If you haven’t already done so please help us improve by taking a quick survey on your experience using HTC Customer Service.

Get Started

Thank you very much for your time. Be sure to visit us online at http://www.htc.com to read the latest announcements and check out our newly released products.

We are unable to receive replies to this email account. Please visit us at http://www.htc.com if you have any questions or need further assistance.

Sincerely,

HTC

I couldn’t pass it up. I filled out the survey and was completely honest about the experience I had with trying to get a refund for a DoA unit and how ridiculous that I had to choose that route in the first place, rather than having the option to simply get a new, non-refurbished replacement like American customers. I submitted it, and then completely forgot about it.

This morning, while I was off rebuilding a borked IPCop box, HTC left me a voice mail message that went something like this:

Good morning Mr. Laslow. My name <redacted> from HTC, and I’m just calling to follow up on your return. I am very, very sorry that it took so long to process your refund. I’m also very sorry that you received a DoA unit in the first place. If you need any further assistance with this, please call us at 866-449-8358. Once again, we appreciate your business and are very sorry about this whole thing.

I was stunned; I never expected to hear back from HTC at all. I’m not, however, surprised by the fact that they simply apologized rather than offering some form of compensation (be it an accessory, a t-shirt, anything really). Regardless, I’m happy that this is over and I can finally end the tale of an HTC DoA.

While driving back from the Scottish Highlands to the South of England, I noticed something annoying about the Maps application for Android – when you pick out a route via the ‘Directions’ feature, all is well and good until you enter an area with no cell reception. At this point, you’re screwed.

I know it’s impossible to expect Google to preload hundreds of megabytes of map data on to your phone (you know, those pesky storage restrictions and all), but how about this: after Maps provides the directions for your route in text form, and you click ‘Show on map’, Maps could pop up an option (this could also be a configurable setting) asking if you want to preload map data.

Maps Mock-up

My crappy mock-up of the prompt made on my netbook with a trackpad.

If you choose yes, it downloads the map data from Google’s servers for the planned route and caches it to your SD card. If existing map data is present that overlaps, it uses that after checking to make sure it’s up-to-date.

Probably a long shot that something like this could ever be implemented, but it would make life for those using their Android device as a Sat Nav so much easier, especially if you’re going on a long trip.

Continued from Part 3.

So the unthinkable has happened – I actually received the shipping label from HTC yesterday! I immediately boxed up the phone and dropped it at a nearby FedEx box, and then proceeded to hammer the F5 key on the FedEx tracking screen.

Also to my surprise was the fact that the shipping label was for Priority Overnight shipping, and that the package reached its destination at 7:45am (PST) this morning! I’ll update this post later on when HTC contacts me regarding my refund.

Update (07/16/2010): Still no contact from HTC. However, after re-reading the initial email they sent, it does state:

Once we receive the items we will review the condition and we will contact you by phone or email if we have any further questions. If no additional information is needed a refund should show on your credit card within 14 business days of receipt of the return.

So at this point I’ll be sitting back and waiting for my credit card balance to update. I did end up ordering the replacement phone from Google on Tuesday, and it arrived (in working condition, no less!) this morning! Good thing, to, because I hear that this is Google’s last batch of N1′s that they’ll be selling through the web store….

Concluded in Part 5.

Continued from Part 1.

Day four of the return process and no real progress to report. According to the details given to me by HTC on Monday (see part 1), I should have received a shipping label in my email the following day. When I didn’t, I called HTC support back. The agent I spoke with told me to check my spam folder (already done – nothing), and then said that she would ‘escalate the ticket’ and a label sent out right away. I thanked her, disconnected, and waited.

And waited.

End of day Wednesday rolled around and still no shipping label. I called HTC again and was told that it can take an extra day when things go through the escalation process and that I should expect it to show up in my email no later than Thursday.

Well, here we are on Thursday and still no label.

I called HTC yet again, and was told that yes, I should have received the shipping label today. The agent then proceeded to tell me that he update the ticket, ‘increase the priority’, and that I should keep waiting.

Really, HTC? I’m normally a pretty patient guy, but come on! I’ve heard of American customers getting new, replacement phones within days, but we Canadians need to go through this gong show of a return process and then re-purchase the device because otherwise we end up a refurbished phone instead of a new one. This is bad PR, people. It’s time to start spreading the news.

Find out what happens next in Part 3.

I recently hit the 5,000 tweet mark on Twitter, and figured that it’s as good a time as any to write something about my experience on the abbreviated social networking site. It also seems appropriate as I permanently deleted my Facebook account (well, I’m in the process, anyway).

Click ‘Continue Reading’ below for the wall-of-text review.

More »

Rogers LogoAlthough I can’t confirm when this happened (it may have happened a while ago and I just never noticed), I was browsing the internet last night on my Google Nexus One and noticed that, when I mistyped http://imdb.com, I was redirected to http://www20.search.rogers.com (which doesn’t work outside of Rogers’ network) instead of receiving a normal Not Found error. This all smacks of the infamous VeriSign Site Finder fiasco.

I’m no fan of browser redirects in any form, and I’m even less of a fan of Yahoo which Rogers partners with to, among other things, provide results on their hijacked landing page. But what can you do? It’s their service, and there’s no opt-out link on the page.

Well, the answer is to manually opt-out. Unfortunately, you need to have a rooted/jail-broken phone to do this. As stated above, I have a Google Nexus One which runs CyanogenMod, but this should work with any other rooted Android phone and even jail-broken iPhones (although the paths are different — you’ll need to alter them as applicable).

To manually opt-out, do the following (assumes Android phone):

  1. Open a shell on your phone. You can use ConnectBot, Terminal Emulator, or adb shell.
  2. Assume root (su command).
  3. Remount the system partition in to read/write mode —  mount -o rw,remount /system
  4. Browse to /system/etc.
  5. Use your favourite text editor to open hosts.
  6. Add the following to the bottom of the hosts file — 127.0.0.1 www20.search.rogers.com
  7. Save and quit!

You’re done! You’ve just manually opt’ed-out of Rogers Wildcard DNS hijack. Now you’ll just get the normal ‘Not Found’ errors, as when Rogers see that the domain you’ve entered doesn’t exist and tried to redirect you to their search page, your phone will point that domain to itself and fail as it isn’t running a webserver.

TL;DR Version: To prevent getting directed to Rogers’ Search Page when you mistype an address, edit your hosts file to point www20.search.rogers.com to the 127.0.0.1 loopback address.

Update (05/01/2011): You can now officially opt-out using this link: http://searchassist.teoma.com/templates/rogers/optout