AT&T customer dilemma
Since I've been kicking the tires of my Samsung Captivate, the Samsung Galaxy S model for AT&T, I've come across a minor but easily bypass-able annoyance. This is that AT&T has evidently removed the feature for applications to be installed outside of the Android Market, such as a downloaded .apk file from an arbitrary Web site to your phone, or copied to your phone as a normal file transfer from a desktop computer via USB cable. By default, attempts to try on all Android phones will net an "Install blocked" message; "For security, your phone is set to block installation of applications not sourced in Android Market." Android phones sold to users on other carriers, e.g. Verizon (verified with the HTC Incredible), allow you to disable this block and enable installation via a simple switch. I found this discussed on various sites such as on this customer support Q/A and this tutorial. However, AT&T users have no option within the device.
What I found to work was "simply" to download the Android SDK and install via the prescribed method for applications you develop. Now, of course, me being me, I had to go to the extreme of learning how to build and install my own Hello, World app, which requires a few more steps than I believe you'll need to install an out-of-market application. I'll summarize below which I did and which I think you'll need to do to just install an out of market app:
- Agree that you hold me free of all responsibility - while I can assert "this worked for me," your mileage may vary and you own full responsibility of your own actions; if you melt your device and void your warranty, I don't owe you a dime. This is bypassing a security measure set by your carrier, so don't be alarmed if they don't want to support you after you follow these steps. You should also pay careful attention to how you get your application file and verify how well you can trust it won't do anything bad. You have been warned!
- While I warn about the possibilities of voiding warranties, do note that you need not root your device to use this procedure.
- Get a device with Android OS.
- Find a computer with a USB port and upon which you can install the SDK; recent versions of Windows, Mac and Linux appear to be supported.
- On the desktop computer (or laptop...), install the appropriate SDK. This is simply a zip or tar.gz archive file and does not come with an installer; install (unpack) it wherever you wish.
- Download to the desktop computer the .apk file you intend to install on your Android device. For me, this was synthesis.apk, the Synthesis SyncML client.
- Set your Android device to USB Debugging mode. For me, this was under Settings > Applications > Development.
- Connect your Android to your desktop via USB cable.
- At a command line prompt of the desktop computer (Start -> Run, then type "cmd" to start one if you are on Windows; Use Terminal or X11 Terminal on a Mac; On Linux, you should know), run the following command:
Note that ".../" here implies that you need to type the full path (or relative path from your current working folder) to the corresponding file. Italicized parts of the above require you to fill in your local specifics. If the line wraps here, let me assure you that you need to type it all on one line.
- You should now see the application installed in the Applications dialog.
I had verified this using Mac OS X 10.5.8.