Manuals/Android

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (Network settings)
(android category)
Line 370: Line 370:
  
 
= Links =
 
= Links =
 +
 +
[[Category:Android]]

Revision as of 21:31, 16 May 2009


Contents

Android.png

Introduction

This page is dedicated to the daily usage of Android on the Neo 1973 and Neo FreeRunner handsets.

The informations here have been updated for the following release : Koolu Beta3 Android release. But should be the same for any not too old release.

You can find general informations (porting/development and day to day usage) about Android and Neo phones here : Android

Using this guide

  • 1

If you see a command like this, you must run it as root

#

If you see one like this, you can run it as a regular user

$
  • 2

When you see the command

adb 

it is assumed that you have 'adb' installed on your system and inside your /usr/bin. This may not be the case, you may just have downloaded the binary. If so, you need to change to the directory you downloaded the binary too then issue the same commands but when ever adb appears replace it with

./adb

adb connects to Android but you need to have made sure you have set it up first. Make sure your FreeRunner was booted while being plugged in to a USB port. Then following run the following commands:

# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
# adb kill-server
# ADBHOST=192.168.0.202 adb devices

You should now have no trouble using adb.

Getting started

The power button

  • To turn the phone on; press and hold the power button for about 5 seconds
  • To wake the phone from sleep; tap the power button twice, then once more to unlock the screen
  • To put the phone to sleep (and so lock it); hold the power button for about 2 seconds
  • To turn the phone off; wake it from sleep then hold the power button for about 5 seconds. Choose 'Power off' in the menu that appears then click 'OK'

The Aux button

The aux button appears to be the back button.

Making a call

Once the phone has started you will see a 'Dialer' icon on the desktop, touch it and you will be presented with a dialling keypad. Enter the number you wish to dial and then touch the bar containing the number to call. If you make a mistake entering the number you can touch the backspace arrow to the right of the bar.

Caveats

  • The volume level when in a voice call is very low

Using the keyboard

Sending an SMS

Copy and pasting

Android has a copy and paste feature built in to it. By touching and holding on a text entry box for about 2 seconds the copy & paste menu will appear.

Subsystems

Accelerometers

Works, can be tested with simple game called Amazed which is already installed on current Koolu images.

Bluetooth

Works, latest kernels need permissions for second rfkill interface in init.rc to turn it on.

GPS

Works, you can install AndNav2 (AndNav2 is already installed on current Koolu images) to test it. It is currently not possible to disable the GPS from the UI once activated.

GPRS

To set up GPRS you need to enter the correct settings for your network: Touch the Application tab followed by Settings > Wireless controls > Mobile networks > Access Point Names. Now if you press the power button, a menu will appear allowing you to add a 'New APN'. Touch this then add your network's GPRS & MMS settings.

NOTE: At the moment it is not possible to bring up Android's keyboard to enter the information. It is advisable to install 'aKeyUI' then copy and paste the information in, starting with the APN which can also be used as the Name

Once you have entered your APN details it maybe necessary to follow this procedure to start GPRS (you will only need to do this once):

Turn on Aeroplane mode, reboot, turn off Aeroplane mode

You may also have to carry out the DNS fix described below.

Network settings

You can find most networks 'mcc' and 'mnc' numbers here

  • o2 UK - Pay as you go

Enter these details to set up GPRS:

carrier="o2-UK-PAYG" (Name - can be anything)
mcc="234"
mnc="10"
apn="payandgo.o2.co.uk"
user="payandgo"
server="Not set"
password="password"
type="default"

These details are also correct o2 settings but don't enter them, they stop GPRS from working properly at the moment.

mmsc="http://mmsc.mms.02.co.uk:8002"
proxy="193.113.200.195"
port="9201"
mmsproxy="193.113.200.195"
mmsport="9201"
  • T-Mobile UK

Enter these details to set up GPRS:

carrier="T-Mobile-UK" (Name - can be anything)
mcc="234"
mnc="30"
apn="general.t-mobile.uk"
user="user"
server="149.254.1.10"
# server="149.254.201.132" (alternate server)
password="wap"
type="default"
  • Orange France

Source : French Network parameter

GPRS settings (work):

apn="orange"
user="orange"
password="orange"
mcc="208"
mnc="01"
type="default"

MMS settings (untested) :

apn="orange.acte"
proxy="192.168.10.200"
port="8080"
user="orange"
password : "orange"
mmsc="http://mms.orange.fr"
mms port="8080" 
mcc="208"
mnc"01"
type="mms"

Force use of Orange DNS in the ip-up script located in /system/etc/ppp :

/system/bin/setprop "net.gprs.dns1" "194.051.003.056"


  • Cingular/Att U.S. (working with dns fix(14.6-cupcake), other than sending mms)
apn="wap.cingular"
username="wap@cingulargprs.com"
pass="cingular1"
mmsc="mmsc.cingular.com"
mms proxy="wireless.cingular.com"
mms port = 80
mcc= 310
mnc= 410

Wifi

Although wifi works, there are two problems; one, you can't bring up a keyboard to enter your encryption key and two, Android does not obtain the DNS settings properly from the router. Both can be worked around.

Solution one

This involves copying and pasting the network key into the key field. These instructions use the aKeyUI app but you could do it with the standard Note pad app.

Install aKeyUI this app allows you to enter text and copy it to a clipboard, which you can then paste into any test field:

Change directory to where you downloaded the app then install:

# adb install aKeyUI.apk

Touch the Application tab to display your installed apps, aKeyUI should be one of them. Load it up, enter the key for your wireless network and click copy.

Now go to 'Settings' > 'Wireless controls' > 'Wi-Fi settings' and you should see your wireless network listed there. Touch it and when it asks you for the key, long-touch the key field and select paste.

Caveats

  • The keyboard seems to have a limited number of characters, making this solution useless if your network key contains one of the missing ones.

Now you are connected but you need the DNS fix.

Solution two

Boot your FreeRunner while connected to USB then run these commands:

# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
# adb kill-server
# ADBHOST=192.168.0.202 adb devices
# adb shell mount -o remount,rw /dev/root /
# adb pull /etc/wifi/wpa_supplicant.conf wpa_supplicant.conf

You will now have the wpa_supplicant.conf file in your working directory, change its ownership so you can edit it (unless you edit it as root):

# chown YOUR_USER:YOUR_GROUP wpa_supplicant.conf 

Now you can edit it to contain your wireless details, then push it back to the FreeRunner. For example add an uncommented section like this:

network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}

Save your changes, change the owner back to root and push it back to the FreeRunner:

# chown root:root wpa_supplicant.conf
# adb push wpa_supplicant.conf /etc/wifi

Reboot the FreeRunner:

# adb shell sync
# adb shell reboot

If you've changed the wpa_supplicant.conf file, it will need to be deleted in /data/misc/wifi/wpa_supplicant.conf

You now just need the DNS fix

DNS Fix

Connect to Android using adb and pull your init.rc:

# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
# adb kill-server
# ADBHOST=192.168.0.202 adb devices
# adb pull /init.rc init.rc
# chown YOUR_USER:YOUR_GROUP init.rc

Now find this part of your your init.rc, and add new lines containing the DNS value to the OpenDNS servers:

# Setup the DNS server for USB
#setprop net.dns1 192.168.0.200
setprop net.dns1 208.67.222.222
setprop net.dns2 208.67.220.220

Change the ownership back to root and push it back to your FreeRunner:

# chown root:root init.rc
# adb shell mount -o remount,rw /dev/root /
# adb push init.rc /init.rc
# adb shell sync
# adb shell reboot

Data management

Contacts

Importing

From Vcard

  1. install "Android Contacts Import" (this applications is also available from AndAppStore)
  2. export your contact(s) as a vcard file from your contact application
  3. copy the file to your phone /sdcard/ directory
  4. on your phone run the ImportContacts application, choose the file you copied and select import. Wait until the phone says x vcards imported

That's it if you don't see your contacts, make sure you selected "view all contacts" in the contacts applications options (contacts > powerbutton > Display group > All contacts)

From SIM

Works, Contacts->menu->Settings->SIM contacts importer.

Synchronization

Calendar

Alarm

Works.

Importing

Synchronization

Files

Copying

You can copy files to your phone using either

or, from the command line using

ADBHOST=192.168.0.202 ./adb push file.txt /sdcard/

Media

Can play OGG audio files and view pictures with the default applications

SMS

Others

Software keyboard

Works, can be brought up with short press to power button.

Suspend

Waking up your phone might be a little bit tricky at the moment, there are several recipe/hints submitted by different people :

  • 1-2s press of power button goes to sleep, wake up with long power button press, don't use screen timeouts, disable it in Settings->Sound & display->Screen timeout->Never timeout.
  • Michael Trimarchi's images allow resume from suspend after two short presses. However, sometimes it takes a few tries for the phone to wake up.
  • For me resume works best if i long press power until the main screen appears and the short power press that unlocks screen.
  • During suspend the phone seems to wake up make an audible click and go back to sleep.

USB networking

The general USB Networking guide should help you talk to your FreeRunner using IP over USB. However, please note that Android doesn't come with an ssh server installed by default. In order to gain shell access without an additional ssh server you can follow the instructions on the Android debug bridge page.

USB Host mode

TODO: If you know how to change the USB mode with Android, please explain it here. (See: To-Do List)

USB keyboard

I bought a mini USB keyboard that for my Neo, if someone has simple directions to use it with android, please explain it here.

USB mass storage

This setting is named "Enable USB mass storage". If you don't find it on Settings -> SD card & phone storage, you have to unhide it with Anycut. Install it then make a new shortcut Activity -> SD Card. Use this new shortcut to activate the option. This is not persistent after a reboot. See also [1]

TODO: This doesn't seem to work with the Neo FreeRunner and current Android images. (See: To-Do List)

Software installation and updates

For initial Android flashing, take a look at: Android on Freerunner

Install new software

Manual install

Applications are packaged in .apk packages, to install a package (downloaded on your computer) do

   ./adb install app.apk

After making sure you can talk to your phone using the Android debug bridge

Package managers

Android Market Place

Currently it is not possible to use the Android Market Place with the Neo Freerunner.

AndAppStore

AndAppStore is an alternate source for Android software and works on the Neo Freerunner. It is installed by default in current Koolu images but you can install manually their client.

Update software (without reflashing)

Troubleshooting

Android Debug Bridge

To assist in debugging and to gain shell access to the phone with Android, you can use the instructions found here: Android debug bridge

SD Card unavailable

Type in the the Android Terminal emulator (under Development Tools)

 setprop EXTERNAL_STORAGE_STATE mounted

or run

 adb shell setprop EXTERNAL_STORAGE_STATE mounted 

with the freerunner connected to a computer which has the Android SDK.

Links

Personal tools


Contents

Android.png

Introduction

This page is dedicated to the daily usage of Android on the Neo 1973 and Neo FreeRunner handsets.

The informations here have been updated for the following release : Koolu Beta3 Android release. But should be the same for any not too old release.

You can find general informations (porting/development and day to day usage) about Android and Neo phones here : Android

Using this guide

  • 1

If you see a command like this, you must run it as root

#

If you see one like this, you can run it as a regular user

$
  • 2

When you see the command

adb 

it is assumed that you have 'adb' installed on your system and inside your /usr/bin. This may not be the case, you may just have downloaded the binary. If so, you need to change to the directory you downloaded the binary too then issue the same commands but when ever adb appears replace it with

./adb

adb connects to Android but you need to have made sure you have set it up first. Make sure your FreeRunner was booted while being plugged in to a USB port. Then following run the following commands:

# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
# adb kill-server
# ADBHOST=192.168.0.202 adb devices

You should now have no trouble using adb.

Getting started

The power button

  • To turn the phone on; press and hold the power button for about 5 seconds
  • To wake the phone from sleep; tap the power button twice, then once more to unlock the screen
  • To put the phone to sleep (and so lock it); hold the power button for about 2 seconds
  • To turn the phone off; wake it from sleep then hold the power button for about 5 seconds. Choose 'Power off' in the menu that appears then click 'OK'

The Aux button

The aux button appears to be the back button.

Making a call

Once the phone has started you will see a 'Dialer' icon on the desktop, touch it and you will be presented with a dialling keypad. Enter the number you wish to dial and then touch the bar containing the number to call. If you make a mistake entering the number you can touch the backspace arrow to the right of the bar.

Caveats

  • The volume level when in a voice call is very low

Using the keyboard

Sending an SMS

Copy and pasting

Android has a copy and paste feature built in to it. By touching and holding on a text entry box for about 2 seconds the copy & paste menu will appear.

Subsystems

Accelerometers

Works, can be tested with simple game called Amazed which is already installed on current Koolu images.

Bluetooth

Works, latest kernels need permissions for second rfkill interface in init.rc to turn it on.

GPS

Works, you can install AndNav2 (AndNav2 is already installed on current Koolu images) to test it. It is currently not possible to disable the GPS from the UI once activated.

GPRS

To set up GPRS you need to enter the correct settings for your network: Touch the Application tab followed by Settings > Wireless controls > Mobile networks > Access Point Names. Now if you press the power button, a menu will appear allowing you to add a 'New APN'. Touch this then add your network's GPRS & MMS settings.

NOTE: At the moment it is not possible to bring up Android's keyboard to enter the information. It is advisable to install 'aKeyUI' then copy and paste the information in, starting with the APN which can also be used as the Name

Once you have entered your APN details it maybe necessary to follow this procedure to start GPRS (you will only need to do this once):

Turn on Aeroplane mode, reboot, turn off Aeroplane mode

You may also have to carry out the DNS fix described below.

Network settings

You can find most networks 'mcc' and 'mnc' numbers here

  • o2 UK - Pay as you go

Enter these details to set up GPRS:

carrier="o2-UK-PAYG" (Name - can be anything)
mcc="234"
mnc="10"
apn="payandgo.o2.co.uk"
user="payandgo"
server="Not set"
password="password"
type="default"

These details are also correct o2 settings but don't enter them, they stop GPRS from working properly at the moment.

mmsc="http://mmsc.mms.02.co.uk:8002"
proxy="193.113.200.195"
port="9201"
mmsproxy="193.113.200.195"
mmsport="9201"
  • T-Mobile UK

Enter these details to set up GPRS:

carrier="T-Mobile-UK" (Name - can be anything)
mcc="234"
mnc="30"
apn="general.t-mobile.uk"
user="user"
server="149.254.1.10"
# server="149.254.201.132" (alternate server)
password="wap"
type="default"
  • Orange France

Source : French Network parameter

GPRS settings (work):

apn="orange"
user="orange"
password="orange"
mcc="208"
mnc="01"
type="default"

MMS settings (untested) :

apn="orange.acte"
proxy="192.168.10.200"
port="8080"
user="orange"
password : "orange"
mmsc="http://mms.orange.fr"
mms port="8080" 
mcc="208"
mnc"01"
type="mms"

Force use of Orange DNS in the ip-up script located in /system/etc/ppp :

/system/bin/setprop "net.gprs.dns1" "194.051.003.056"


  • Cingular/Att U.S. (working with dns fix(14.6-cupcake), other than sending mms)
apn="wap.cingular"
username="wap@cingulargprs.com"
pass="cingular1"
mmsc="mmsc.cingular.com"
mms proxy="wireless.cingular.com"
mms port = 80
mcc= 310
mnc= 410

Wifi

Although wifi works, there are two problems; one, you can't bring up a keyboard to enter your encryption key and two, Android does not obtain the DNS settings properly from the router. Both can be worked around.

Solution one

This involves copying and pasting the network key into the key field. These instructions use the aKeyUI app but you could do it with the standard Note pad app.

Install aKeyUI this app allows you to enter text and copy it to a clipboard, which you can then paste into any test field:

Change directory to where you downloaded the app then install:

# adb install aKeyUI.apk

Touch the Application tab to display your installed apps, aKeyUI should be one of them. Load it up, enter the key for your wireless network and click copy.

Now go to 'Settings' > 'Wireless controls' > 'Wi-Fi settings' and you should see your wireless network listed there. Touch it and when it asks you for the key, long-touch the key field and select paste.

Caveats

  • The keyboard seems to have a limited number of characters, making this solution useless if your network key contains one of the missing ones.

Now you are connected but you need the DNS fix.

Solution two

Boot your FreeRunner while connected to USB then run these commands:

# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
# adb kill-server
# ADBHOST=192.168.0.202 adb devices
# adb shell mount -o remount,rw /dev/root /
# adb pull /etc/wifi/wpa_supplicant.conf wpa_supplicant.conf

You will now have the wpa_supplicant.conf file in your working directory, change its ownership so you can edit it (unless you edit it as root):

# chown YOUR_USER:YOUR_GROUP wpa_supplicant.conf 

Now you can edit it to contain your wireless details, then push it back to the FreeRunner. For example add an uncommented section like this:

network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}

Save your changes, change the owner back to root and push it back to the FreeRunner:

# chown root:root wpa_supplicant.conf
# adb push wpa_supplicant.conf /etc/wifi

Reboot the FreeRunner:

# adb shell sync
# adb shell reboot

If you've changed the wpa_supplicant.conf file, it will need to be deleted in /data/misc/wifi/wpa_supplicant.conf

You now just need the DNS fix

DNS Fix

Connect to Android using adb and pull your init.rc:

# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
# adb kill-server
# ADBHOST=192.168.0.202 adb devices
# adb pull /init.rc init.rc
# chown YOUR_USER:YOUR_GROUP init.rc

Now find this part of your your init.rc, and add new lines containing the DNS value to the OpenDNS servers:

# Setup the DNS server for USB
#setprop net.dns1 192.168.0.200
setprop net.dns1 208.67.222.222
setprop net.dns2 208.67.220.220

Change the ownership back to root and push it back to your FreeRunner:

# chown root:root init.rc
# adb shell mount -o remount,rw /dev/root /
# adb push init.rc /init.rc
# adb shell sync
# adb shell reboot

Data management

Contacts

Importing

From Vcard

  1. install "Android Contacts Import" (this applications is also available from AndAppStore)
  2. export your contact(s) as a vcard file from your contact application
  3. copy the file to your phone /sdcard/ directory
  4. on your phone run the ImportContacts application, choose the file you copied and select import. Wait until the phone says x vcards imported

That's it if you don't see your contacts, make sure you selected "view all contacts" in the contacts applications options (contacts > powerbutton > Display group > All contacts)

From SIM

Works, Contacts->menu->Settings->SIM contacts importer.

Synchronization

Calendar

Alarm

Works.

Importing

Synchronization

Files

Copying

You can copy files to your phone using either

or, from the command line using

ADBHOST=192.168.0.202 ./adb push file.txt /sdcard/

Media

Can play OGG audio files and view pictures with the default applications

SMS

Others

Software keyboard

Works, can be brought up with short press to power button.

Suspend

Waking up your phone might be a little bit tricky at the moment, there are several recipe/hints submitted by different people :

  • 1-2s press of power button goes to sleep, wake up with long power button press, don't use screen timeouts, disable it in Settings->Sound & display->Screen timeout->Never timeout.
  • Michael Trimarchi's images allow resume from suspend after two short presses. However, sometimes it takes a few tries for the phone to wake up.
  • For me resume works best if i long press power until the main screen appears and the short power press that unlocks screen.
  • During suspend the phone seems to wake up make an audible click and go back to sleep.

USB networking

The general USB Networking guide should help you talk to your FreeRunner using IP over USB. However, please note that Android doesn't come with an ssh server installed by default. In order to gain shell access without an additional ssh server you can follow the instructions on the Android debug bridge page.

USB Host mode

TODO: If you know how to change the USB mode with Android, please explain it here. (See: To-Do List)

USB keyboard

I bought a mini USB keyboard that for my Neo, if someone has simple directions to use it with android, please explain it here.

USB mass storage

This setting is named "Enable USB mass storage". If you don't find it on Settings -> SD card & phone storage, you have to unhide it with Anycut. Install it then make a new shortcut Activity -> SD Card. Use this new shortcut to activate the option. This is not persistent after a reboot. See also [1]

TODO: This doesn't seem to work with the Neo FreeRunner and current Android images. (See: To-Do List)

Software installation and updates

For initial Android flashing, take a look at: Android on Freerunner

Install new software

Manual install

Applications are packaged in .apk packages, to install a package (downloaded on your computer) do

   ./adb install app.apk

After making sure you can talk to your phone using the Android debug bridge

Package managers

Android Market Place

Currently it is not possible to use the Android Market Place with the Neo Freerunner.

AndAppStore

AndAppStore is an alternate source for Android software and works on the Neo Freerunner. It is installed by default in current Koolu images but you can install manually their client.

Update software (without reflashing)

Troubleshooting

Android Debug Bridge

To assist in debugging and to gain shell access to the phone with Android, you can use the instructions found here: Android debug bridge

SD Card unavailable

Type in the the Android Terminal emulator (under Development Tools)

 setprop EXTERNAL_STORAGE_STATE mounted

or run

 adb shell setprop EXTERNAL_STORAGE_STATE mounted 

with the freerunner connected to a computer which has the Android SDK.

Links