Archive for category Android

Ainol NOVO7 :: Google Applications package for ICS 4.0.1

The official version of 4.0.1 software does not include google applications for some reason, so I had to search the internet and prepare the update package. The software, which requires binary libraries, is not included (TTS + Sound Recognition, Face Lock, Video Editor), also Google Earth is gone because it’s just too big.

Everything else is packed, signed and can be easily installed on native 4.0.1 without any rooting or CWM hackery. Just copy the file as update.zip to your microSD and press “volume+/power” to start the update process.

NOVO7B-GoogleApps-ICS-update-signed.zip (27MB)

MD5: 733c58b23db53ca9188888e8edc1f317

  • installs using native recovery
  • works with official ICS 4.0.1 version
  • requires about 13MB of empty space on /system (usually about 15M are free)
  • includes gmail, exchange, maps, latitude, news, talk, market, youtube, Latin IME
  • does not include Chinese IME, Earth, TTS + Sound Recognition, Face Lock, Video Editor
  • does not require CWM or rooting for installation

, , ,

No Comments

Ainol Novo 7 :: $99 ICS Android 4.0 tablet with MIPS processor


Chinese company “Ainol” have released Novo 7 — sub-$100 7″ tablet with Ice Cream Sandwich (Android 4.0) and MIPS processor. This is quite big step aside from previous ARM-powered models, and the price speaks for itself. MIPS and ARM are different beasts, but Ainol have already got Google Compatibility Certificate and endorsement by Andy Rubin, so it looks like most Android software runs just fine on the new tablet.

Screen size is standard 800×480, capacitive touch screen, HDMI output and everything else is just as expected.

I’ve already ordered one on ebay for ¥11,320 JPY (including delivery), and hope to get it before holidays.

, ,

No Comments

Mail/parcel tracker — now with Sagawa and Kuroneko Yamato support


Two other major delivery services are supported now by mail tracker: Sagawa Takkyubin (佐川宅急便) and Kuroneko (ヤマト運輸), but it’s still as simple as it was before — just enter the number and the program will automatically check and decide where and how to track it. Barcode scanner works now almost always, success rate is about 95% even in extreme lighting conditions. It takes only 2-5 seconds to scan a receipt and get all the tracking info available on the screen. If you send a lot of mail you know how troublesome and time consuming this might be.

Here’s version 0.9.7 (still beta, but improving quite fast and steady): 配送追跡.

, ,

No Comments

Japan Post mail/parcel tracker

Got some spare time and made a little application for Android, which helps to check the current status of my mail and packages right from my phone. Actually I’ve tried a few other similar applications first, but haven’t found the one which works just as I like. Most of them don’t support barcode scanning and don’t validate input, so I could input any garbage instead of tracking number (you know how error prone is touch-typing =) and then spend hours wondering why my parcel does not show up in the tracking list. Another thing I don’t like is to choose every time what kind of number I have, Expack or cash on delivery/registered mail — they all look very similar written on the paper.

My application (配送追跡) takes the number and selects the proper category automatically, also it calculates checksum for every number and rejects anything that fails validation. Took me a few hours to reverse engineer checksum calculation for Japan Post tracking numbers, but finally it works, and, by some strange coincidence, same validation scheme is used for Sagawa (佐川宅急便) and Kuroneko (ヤマト運輸) express delivery tracking numbers, so maybe I’ll add support for those in the future.

There are still a few kinks to iron out, and current barcode scanning library from “ZXing team” gave me mixed results on my phone, but people say it’s the best one and the actual problem is in my phone, so I hope it works well for you.

And, please, don’t worry about the kanji on the screenshot — the program will display everything in English if you phone has non-japanese locale set.

,

No Comments

Eclipse :: coding for Android back again

walking android

After a long while, I’ve recently started to code a few things for Android, launched Eclipse and was greeted with mysterious errors. Which include:

  • “layoutlib is too recent. update your tool” in the Eclipse layout editor. This was solved by upgrading android libs and SDK and also upgrading ADT from inside of Eclipse->Help->Upgrade. The former upgrade probably was not really necessary, but I did it anyway just in case to prevent other incompatibilities from coming out.
  • another gem appeared when I tried to create an empty project to test a few ideas: “error generating final archive: Debug certificate expired”. This required deleting ~/.android/debug.keystore and “cleaning” the project, which eventually led to regeneration of required debug keys. Google says debug keys are expired after 365 days, so it must have been more than 1 year since I’ve started playing with Android.
  • if you plan to access internet from the emulator, open Run->Configuration->Target and set “Additional Emulator Command Line Options” to “-dns-server 8.8.8.8,8.8.4.4″ and don’t forget to require INTERNET permission in the manifest.

And yes, I’ve got two walking plastic Androids to race them against each other around my table.

, ,

No Comments

HOWTO :: Archos 70 ddms/adb connection

It’s fun to play with Archos 70, but eventually comes the development time. Since Archos 70 is not officially supported by Google, “adb devices” gives empty list and “ddms” does not see it either.

1. First step is to find out the maker/model code.

$ lsusb
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 013: ID 0e79:1411 Archos, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2. I thought “android update adb” will get the job done, but got no results here. Then I’ve just manually added the maker code to .android/adb_usb.ini file.

$ nano .android/adb_usb.ini
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x0E79

It’s a good idea to kill adb server at first. Then “adb devices” starts to see the tablet, but could not access it propely.

$ adb kill-server
$ adb devices
List of devices attached
???????????? no permissions

3. It’s time to assign proper permissions for the USB device

$ sudo nano /etc/udev/rules.d/53-android.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="0E79", MODE="0666"

Well, this time everything works just fine:

$ adb devices
List of devices attached
A70-6A920022-9FF80000-0160C5C6-14015009 device

And I could even snap a screen capture with “ddms”.

, ,

3 Comments

Archos 70 :: first impressions

Yesterday I’ve got 7″ Archos 70 tablet from HK for about 20.000yen. They also had 10″ model with 1024×600 screen, but I already have an iPad and was looking for something a tad smaller. The delivery took about 3 days by FedEx.


Archos 70 has Android 2.2 (Froyo) installed, along with the WiFi (802.11/b-g-n) support. After asking all the usual questions about time zone and keyboard, it connected to the internet and offered to download and install the fresh firmware. Firmware installation does not run on the battery power and requires the external power supply, which it quite smart. There are Japanese/Chinese screen interface options, but since I’ve chosen English as the default language, I’ve got only european keyboards available.

Screen resolution is 800×480, like on my HTC Desire, but the actual size is about 3 times bigger, which makes it very easy to see every small detail on the Google Maps. 8Gb are installed (16Gb for 10″ model) as internal memory for movies and music, and less than hundred megabytes are available on the system partition for the software installations. Since there’s also an microSD slot available, the memory size it not very important and I can easily add up to 32Gb more. Upper panel has the microphone, VGA-quality video cam for video calls over internet and two speakers with reasonable good sound, especially considering their size.


On the side panel there are 1)microUSB connector, 2)microSD slot, 3)headphone jack, 4)microHDMI connector and 5)power supply connector.

It’s a bit unexpected, Archos 70 battery cannot be charged over an USB cable. Probably it’s somehow related to the USB-host support for external HDD and other devices. Still, the universal (100-240V) power supply is included and has support for most wall outlets over the world — Japanese, European and American plugs are included.

Because of some political issues (absence of GPS/phone calls support?) the Archos 70 did not get the Google’s blessing and does not have Android Market support right from the box. However, Google Market and Gmail/Latitute/other software can be downloaded from the internet and installed separately. Soon after that I’ve got fresh Andry Birds running without any problems.

Internet support is outstanding, Archos 70 can see twice as many AP from my apartment, compared to the iPad. Application download speed is great. Youtube works very smoothly. All my home servers and computers were detected automatically and I can easily (unlike the iPad) browse and watch movies and listen to the music. Even the 720p movies work totally flawlessly over the WiFi connection. Most video/audio formats are suported just from the box, and new codecs can be downloaded from the Archos web-site.


Tablet body is made from plastic, very thin and very light — I can easily hold it with one hand for hours. HDMI connector allows to bring video to the large TV screen, and not only video but the other screen contents — icons and running software too.

GPS is missing together with the phone support. However, Archos 70 can find it’s location based on the WiFi spots around — it has marked my apartment on the map within 100m of the actual location. I understand it might not work everywhere, but for the people with wireless network at home and at work, who even eat only where they have WiFi access it should work reasonably well.

The screen is bright enough for indoor use. Viewing angle it not very wide, but it’s not a TV set — I can always align it the way I like. Before the screen turns off to sleep, it dims a little at first — a very nice feature, especially when reading news, a few seconds are enough to touch the screen and prevent it from sleeping. There’s also “deep sleep” mode which not only slows down the processor and turns the screen off, but stops the device totally — even alarm clocks and background tasks go down. Can be a great battery saver, though I haven’t tried this mode yet.

All in all, if you are looking for an Angry Birds-compatible tablet, which can be used to browse internet and to watch movies on the couch, I’d recommend this (or the 10″ model, if you are not going to put it in the pocket and try to use it somewhere else or bring along for a stroll).

,

No Comments

HTC Desire :: aftermarket 3000mAh battery


I’ve ordered this a few weeks ago for $15 on ebay and delivery from Singapore definitely took its time. Today it has finally arrived and I can tell this battery looks really mean with all the 3000mAh power hidden under the hood — it’s almost twice as thick as the regular one and does require the special back cover to accomodate this thickness (no worries, the new cover was included in the package). Now it’s time to recharge and I wonder how long it might take with the battery of this size.

,

5 Comments

HOWTO :: repack and sign ROM image update .zip files

DISCLAIMER: I don’t invent anything new here, but just summarise things I’ve read across different forums and web sites. I did not write any software mentioned here, but only copy the files and made them available in one easy to access place. I use the procedure described here to create ROM images I flash to my HTC Desire phone, and so far it worked for me perfectly. However I do not guarantee it will work on your system with your files and your phone — use it at your own risk and assume all responsibility. REFLASHING YOUR PHONE MIGHT GET IT BRICKED AND MIGHT VOID YOUR WARRANTY.

Prerequisites

To be able to follow this explanation you will need the basic understanding of the command line, be able to enter commands with the parameters, to walk from one folder to another, to compile programs and to run the resulting binaries. To run Java programs you’ll need Java SE runtime installed. To compress and uncompress files you’ll need “zip” program or something similar.

Your phone should be rooted beforehand or allow the installation of custom ROMs.

The Outline

The process of creating your own ROM update file is not very complicated. Basically it consists of three steps:

  1. Download and unpack the image you like
  2. Make the necessary changes
  3. Pack and sign the .zip file

The update can contain as much as the full system + boot + radio + recovery + extras, which completely overwrites everything you have in your phone, or as little as single .apk file if you want to make just small changes.

Download and unpack

There are plenty of images available on the internet, it’s in your best interest to find the one as much similar to what you need to reduce the necessary changes and introduce as few problems as possible. There are three types of images you may use:

  1. RUU images (.exe)
  2. OTA images (.zip)
  3. 3rd party .zip images

RUU images contain full system, including radio, system, boot and the whole nine yards. However you’ll need to unpack .exe file into .zip file before doing anything useful. I have explanation how to extract the .zip file in Linux but if you use Windows or MacOS your procedure might be different.

OTA images usually contain only the difference between the previous software version and the current one. Therefore you’ll need the previous software as RUU/.zip file with the exact version, and be familiar with bspatch utilty to apply patches, which is quite tedious process. I don’t usually use OTA files if there are any other options available.

.zip images are the easiest to work with, just unpack with your zip archiver to the folder you like.

If you have started with RUU image, you’ll have system.img, boot.img and radio.img files. System image can be further unpacked with unyaffs (requires compilation) to another folder, usually “system/”. Boot image can be unpacked with the perl script (requires perl to be installed on your computer) also to another folder, usually “boot/”. Radio images cannot be unpacked and are better to be left alone.

Make the changes

Most of the changes are done to the system image, which contains all software and data files visible on the phone. Boot image should be changed only if you have deep linux knowledge to modify linux kernel and related matters.

If you have unpacked system image and made some changes, the system.img file is supposed to be moved somewhere else, so it’s not used anymore. Same with the boot.img file. All other files (hboot, recovery) are usually not used, because they might lead back to unrooting the phone and should be deleted or moved as well.

If you have based your work on RUU file, you’ll have to create META-INF folder with the correct information and update scripts inside. If you have unpacked someone’s .zip, the META-INF folder should be already present. Update script might mention some files in the update, so if you have removed (or added new) files, the update script should be amended to reflect those changes. Please, get a few images from different developers and try to understand the correct internal structure.

Pack and sign .zip file

Once you’ve made all the changes, you may change to the folder where you extracted all files, it might now contain .img files, like boot.img and radio.img as well as folders, like “system/”. Zip everything together with the command:

zip -r9 update.zip *

-r9 tells the program to collect files recursively and use the maximum compression. If you omit “r”, the subfolders will not be included (bad, bad idea!), if you omit “9″ nothing bad will happens, but resulting file might be about 1% larger.

To sign zipped file you should download SignApk.zip (requires Java), there are three files inside:

  • SignApk.jar is a tool included with the Android platform source bundle.
  • testkey.pk8 is the private key that is compatible with the rooted recovery image
  • testkey.x509.pem is the corresponding certificate/public key

and the signing command looks like this:

java -jar signapk.jar testkey.x509.pem testkey.pk8 [update.zip] [update-signed.zip]

update-signed.zip can be copied to the phone and installed using the traditional recovery procedure. Personally I’d recommend “ClockworkMod Recovery” from Koush and Paul O’Brien, but I’m not sure if it is available for your phone.

Finally

While the actual creation of your own ROM update file is not very complicated, the devil is in the changes you make. Most ROM updates fail at first try, please, have a fresh nandroid backup ready at all times.

, , , , , ,

No Comments

HTC Desire on Softbank :: update to Froyo

wireless and network settings tab

WiFi hotspot settings

Yesterday I’ve started the update process, getting a few ROM images from the Net and trying to make them work well with SoftBank. First, there was Aug,2010 version of Froyo ROM on MoDaCo, where Paul said he did not change anything except rooting the system. I’ve made a few changes in config files regarding SBM network settings and upgraded. Everything went fine, except the phone started to behave funny and today it even FC’ed its own Launcher (!). The version of ROM was 2.09.405.8 WWE.

Finally I gave up and downloaded official RUU with 2.29.405.5 WWE software. Extracted .zip file and applied all the same changes before flashing. The only difference was, I’ve decided to change ro.wifi.hotspotUI=0 to ro.wifi.hotspotUI=1 and see what happens. The results were interesting — I’ve got two extra menu items (1) in “Wireless and Networks” settings tab, which allow to setup and configure the wireless hot-spot and share internet connection wirelessly. Probably the cellular providers are not very happy with that, which resulted in these items being excluded away on most android phones.

Also, the interesting item was (2) “USB tethering”, allowing to convert the phone into RNDIS ethernet gadget and pour TCP/IP over USB link to the PC.

, , ,

No Comments