Porting to Palm Treo 680

116 views
Skip to first unread message

Sameh M. Shaker

unread,
Dec 18, 2008, 2:43:25 AM12/18/08
to android-porting
Hello everyone,
I've spent the past 3 days porting Android to the Palm Treo 680...
Managed to get a running kernel, that can mount partitions on the SD
Card, built the latest source dump, and since the device only had 64MB
Ram, I managed to enable a swap partition on the SD Card and have it
enabled by init.rc...
I've also combined /system with /data and the files in ramdisk.img
into one large ext3 filesystem, that is the kernel takes as its root,
and made all needed changes in init.rc to accommodate this change.

Kernel booted, root mounted, I can see the text "A N D R O I D" and it
also shows the Android splash screen, but that's all...

The Android splash logo keeps blinking, and then it disappears and re-
appears again, blinking, and so on in an infinite loop...

I've also noticed that the characters on the screen are very very
small, esp with the "A N D R O I D" text, comparing to what I've seen
on the emulator in the SDK..

Also the splash screen looks a bit odd, unlike the emulator, I can see
two Androids, one that blinks and the other doesn't...

What could possibly be going wrong? kindly check these links for
images of what I get on the screen
http://smshaker.wordpress.com/?attachment_id=8
http://smshaker.wordpress.com/?attachment_id=9

Rupesh Gujare

unread,
Dec 18, 2008, 2:55:47 AM12/18/08
to android...@googlegroups.com
Hi,

Firstly 64MB RAM is not quiet sufficient to run Android,(Android
recommends 128MB RAM) I am not sure after adding swap, how much it might
help.(You can check swap usage by - "$cat /proc/meminfo") You can check
whats happening inside Android by running "$logcat" command. That will
give you a better idea.

Regards,

--
Rupesh Gujare
http://embinux.com



Regards,

Sameh M. Shaker

unread,
Dec 18, 2008, 3:21:15 AM12/18/08
to android-porting
I've added 256MB of swap, and it shows fine in /proc/meminfo ...
One thing, how should I run logcat, I mean after the service zygote
starts, there's no shell access anymore, indeed it would help, how to
to get to it ??

On Dec 18, 9:55 am, Rupesh Gujare <rupesh.guj...@embinux.com> wrote:
> Hi,
>
>    Firstly 64MB RAM is not quiet sufficient to run Android,(Android
> recommends 128MB RAM) I am not sure after adding swap, how much it might
> help.(You can check swap usage by - "$cat /proc/meminfo")  You can check
> whats happening inside Android by running "$logcat" command. That will
> give you a better idea.
>
> Regards,
>
> --
> Rupesh Gujarehttp://embinux.com

Rupesh Gujare

unread,
Dec 18, 2008, 3:31:38 AM12/18/08
to android...@googlegroups.com
Samesh,
   Although you have added 256 MB swap, check how much is being actually used, and how much is free?
You will need telnet or dropbear server running (which you will have to integrate with Android RFS), so that you can log in and run $logcat.


Regards,
-- 
Rupesh Gujare
http://embinux.com


Sameh M. Shaker

unread,
Dec 18, 2008, 3:40:29 AM12/18/08
to android-porting
Rupesh,
Thanks for the quick response, I'll do as you suggested and will post
the results back...


On Dec 18, 10:31 am, Rupesh Gujare <rupesh.guj...@embinux.com> wrote:
> Samesh,
>    Although you have added 256 MB swap, check how much is being actually
> used, and how much is free?
> You will need telnet or dropbear server running (which you will have to
> integrate with Android RFS), so that you can log in and run $logcat.
>
> Regards,
>
> --
> Rupesh Gujarehttp://embinux.com

Sameh M. Shaker

unread,
Dec 18, 2008, 4:38:28 AM12/18/08
to android-porting
Ok, I've got dropbear running now, and here are my findings, I'll only
paste the lines that seems to have errors from logcat output....

D/AndroidRuntime( 684): >>>>>>>>>>>>>> AndroidRuntime START
<<<<<<<<<<<<<<
.
.
.
E/MemoryHeapBase( 685): error opening /dev/pmem: No such file or
directory
I/SurfaceFlinger( 685): SurfaceFlinger's main thread ready to run.
Initializing graphics H/W...
E/SurfaceFlinger( 685): Couldn't open /sys/android_power/
wait_for_fb_sleep or /sys/android_power/wait_for_fb_wake
E/GLLogger( 685): couldn't load <libhgl.so> library (Cannot find
library)
.
.
E/GLLogger( 685): couldn't load <libhgl.so> library (Cannot find
library)
I/SystemServer( 685): Starting Power Manager.
I/SystemServer( 685): Starting Activity Manager.
E/BatteryStats( 685): Error writing battery statistics
E/BatteryStats( 685): java.io.FileNotFoundException: /data/system/
batterystats.bin
.
.
I/Installer( 685): connecting...
I/Installer( 685): disconnecting...
E/Installer( 685): connection failed
.
.
D/PackageManager( 685): Scanning app dir /system/framework
W/PackageParser( 685): Bad element under <manifest>: eat-comment
.
.
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH in package
com.android.providers.contacts
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH.cp in package
com.android.providers.contacts
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH in package
com.android.development
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH.ALL_SERVICES in
package com.android.development
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.ACCESS_GOOGLE_PASSWORD in
package com.android.development
W/PackageManager( 685): Unknown permission
com.google.android.providers.gmail.permission.WRITE_GMAIL in package
com.android.settings
W/PackageManager( 685): Unknown permission
com.google.android.providers.gmail.permission.READ_GMAIL in package
com.android.settings
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH in package
com.android.settings
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH.lh2 in package
com.android.camera
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH.youtube in
package com.android.camera
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH.YouTubeUser in
package com.android.camera
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH in package
com.android.providers.calendar
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH.cl in package
com.android.providers.calendar
W/PackageManager( 685): Unknown permission
com.google.android.googleapps.permission.GOOGLE_AUTH in package
com.android.browser
W/PackageManager( 685): Unable to write package manager settings,
current changes will be lost at reboot
W/PackageManager( 685): java.io.FileNotFoundException: /data/system/
packages.xml
.
.
E/Database( 685): sqlite3_open_v2("/data/system/syncmanager.db",
&handle, 6, NULL) failed
E/SQLiteOpenHelper( 685): Couldn't open syncmanager.db for writing
(will try read-only):
E/SQLiteOpenHelper( 685): android.database.sqlite.SQLiteException:
unable to open database file
.
.
E/Database( 685): sqlite3_open_v2("/data/system/syncmanager.db",
&handle, 1, NULL) failed
E/ContentService( 685): Can't create SyncManager
E/ContentService( 685): android.database.sqlite.SQLiteException:
unable to open database file
.
.
W/ActivityManager( 685): Unable to start service Intent
{ action=android.accounts.IAccountsService comp=
{com.google.android.googleapps/
com.google.android.googleapps.GoogleLoginService} }: not found
W/AccountMonitor( 685): Couldn't connect to the accounts service
(Missing service?)
I/ActivityThread( 685): Publishing provider sync:
android.content.SyncProvider
I/SystemServer( 685): Starting Battery Service.
E/BatteryService( 685): Could not open '/sys/class/power_supply/ac/
online'
E/BatteryService( 685): Could not open '/sys/class/power_supply/usb/
online'
E/BatteryService( 685): Could not open '/sys/class/power_supply/
battery/present'
E/BatteryService( 685): Could not open '/sys/class/power_supply/
battery/capacity'
E/BatteryService( 685): Could not open '/sys/class/power_supply/
battery/batt_vol'
E/BatteryService( 685): Could not open '/sys/class/power_supply/
battery/batt_temp'
E/BatteryService( 685): Could not open '/sys/class/power_supply/
battery/status'
E/BatteryService( 685): Could not open '/sys/class/power_supply/
battery/health'
E/BatteryService( 685): Could not open '/sys/class/power_supply/
battery/technology'
.
.
W/dalvikvm( 685): threadid=19: thread exiting with uncaught exception
(group=0x40010e28)
E/AndroidRuntime( 685): Uncaught handler: thread ActivityManager
exiting due to uncaught exception
E/AndroidRuntime( 685): *** EXCEPTION IN SYSTEM PROCESS. System will
crash.
E/AndroidRuntime( 685): java.lang.IllegalStateException: already
initialized
.
.
E/AndroidRuntime( 685): Crash logging skipped, no checkin service
I/Process ( 685): Sending signal. PID: 685 SIG: 9
I/ServiceManager( 594): service 'activity.broadcasts' died
I/ServiceManager( 594): service 'meminfo' died
I/ServiceManager( 594): service 'cpuinfo' died
I/ServiceManager( 594): service 'SurfaceFlinger' died
I/ServiceManager( 594): service 'activity.providers' died
I/ServiceManager( 594): service 'activity.services' died
I/ServiceManager( 594): service 'content' died
I/ServiceManager( 594): service 'activity' died
I/ServiceManager( 594): service 'batteryinfo' died
I/ServiceManager( 594): service 'telephony.registry' died
I/ServiceManager( 594): service 'package' died
I/ServiceManager( 594): service 'activity.senders' died
I/ServiceManager( 594): service 'power' died
I/ServiceManager( 594): service 'permission' died
I/ServiceManager( 594): service 'battery' died
I/ServiceManager( 594): service 'sensor' died
I/ServiceManager( 594): service 'alarm' died
I/ServiceManager( 594): service 'window' died
I/ServiceManager( 594): service 'bluetooth' died
I/ServiceManager( 594): service 'statusbar' died
I/Zygote ( 684): Exit zygote because system server (685) has
terminated

And then it starts all over again -with different PIDs of course- ....
Quite a bunch of problems :) , I'll try to fix them one by one,
however, I'm not sure about the /dev/pmem and /sys/* errors, did I
miss anything during kernel build ??

Any ideas would be great...

On Dec 18, 10:40 am, "Sameh M. Shaker" <samehshaker552...@gmail.com>
wrote:

Rupesh Gujare

unread,
Dec 18, 2008, 5:34:33 AM12/18/08
to android...@googlegroups.com
Ignore /dev/pmem  error, although not sure about /sys/* errors.

Regards,

-- 
Rupesh Gujare
http://embinux.com

Sameh M. Shaker

unread,
Dec 18, 2008, 5:39:02 AM12/18/08
to android-porting
Thanks Rupesh,

After googling for a while, I think I can skip the /sys errors also, i
believe they will only result in in correct battery information, so
now after some digging within the rest of the logs, I've managed to
resolve most of the problems, however, now I'm stuck with this:

.
.
.
I/SystemServer( 615): Starting Content Manager.
W/ActivityManager( 615): Unable to start service Intent
{ action=android.accounts.IAccountsService comp=
{com.google.android.googleapps/
com.google.android.googleapps.GoogleLoginService} }: not found
W/AccountMonitor( 615): Couldn't connect to the accounts service
(Missing service?)
.
.
.
I/SystemServer( 615): Starting Location Manager.
D/LocationManagerService( 615): Constructed LocationManager Service
E/LocationManagerService( 615): Exception loading providers:
E/LocationManagerService( 615): java.lang.IllegalArgumentException:
key.length > 31
E/LocationManagerService( 615): at
android.os.SystemProperties.get(SystemProperties.java:42)
.
.
.
W/ActivityManager( 615): Unable to start service Intent
{ action=android.accounts.IAccountsService comp=
{com.google.android.googleapps/
com.google.android.googleapps.GoogleLoginService} }: not found
W/AccountMonitor( 654): Couldn't connect to the accounts service
(Missing service?)
W/ResourceType( 654): Failure getting entry for 0x7f030006 (t=2 e=6)
in package 0: 0xffffffb5
D/AndroidRuntime( 654): Shutting down VM
.
.
.
W/dalvikvm( 654): threadid=3: thread exiting with uncaught exception
(group=0x40010e28)
E/AndroidRuntime( 654): Uncaught handler: thread main exiting due to
uncaught exception
D/PhoneApp( 651): [PhoneIntfMgr] publish:
com.android.phone.PhoneInterfaceManager@434d0130
E/AndroidRuntime( 654): java.lang.RuntimeException: Unable to start
activity ComponentInfo{com.android.launcher/
com.android.launcher.Launcher}: android.content.res.Resources
$NotFoundException: Resource ID #0x7f030006
E/AndroidRuntime( 654): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
2140)
.
.
.
W/ActivityManager( 615): Timeout of broadcast BroadcastRecord
{435caaa0 android.intent.action.BOOT_COMPLETED} -
receiver=android.os.BinderProxy@435dc6c8
W/ActivityManager( 615): Receiver during timeout: ResolveInfo
{435ca830 com.android.providers.media.MediaScannerReceiver p=0 o=0
m=0x108000}
I/ActivityManager( 615): Start proc com.android.alarmclock for
broadcast com.android.alarmclock/.AlarmInitReceiver: pid=709 uid=10017
gids={}
I/ActivityThread( 709): Publishing provider com.android.alarmclock:
com.android.alarmclock.AlarmProvider
I/ActivityManager( 615): Start proc android.process.im for broadcast
com.android.im/.receiver.ImServiceAutoStarter: pid=719 uid=10019 gids=
{3003}
I/ActivityManager( 615): Exiting empty application process
com.android.mms (android.os.BinderProxy@4357af38)
I/Process ( 615): Sending signal. PID: 676 SIG: 9
I/ActivityManager( 615): Exiting empty application process
com.android.calendar (android.os.BinderProxy@435b1c68)
I/Process ( 615): Sending signal. PID: 684 SIG: 9
I/ActivityManager( 615): Exiting empty application process
android.process.media (android.os.BinderProxy@435dc6c8)
I/Process ( 615): Sending signal. PID: 699 SIG: 9
D/ActivityManager( 615): Received spurious death notification for
thread android.os.BinderProxy@4357af38
D/ActivityManager( 615): Received spurious death notification for
thread android.os.BinderProxy@435b1c68
D/ActivityManager( 615): Received spurious death notification for
thread android.os.BinderProxy@435dc6c8
D/ImServiceAutoStarter( 719): onReceiveIntent
I/ActivityManager( 615): Exiting empty application process
com.android.alarmclock (android.os.BinderProxy@435f3d20)
I/Process ( 615): Sending signal. PID: 709 SIG: 9
D/ActivityManager( 615): Received spurious death notification for
thread android.os.BinderProxy@435f3d20
D/dalvikvm( 651): GC freed 2686 objects / 163056 bytes in 158ms
W/ActivityManager( 615): Activity pause timeout for HistoryRecord
{435cc5b0 {com.android.launcher/com.android.launcher.Launcher}}

On Dec 18, 12:34 pm, Rupesh Gujare <rupesh.guj...@embinux.com> wrote:
> Ignore /dev/pmem  error, although not sure about /sys/* errors.
>
> Regards,
>
> --
> ...
>
> read more »

Lo Yuk Fai

unread,
Dec 18, 2008, 12:15:13 PM12/18/08
to android-porting
Hi there. Some other people and me had been trying to do it not long
ago but had probably the same problems.

http://groups.google.com/group/android-porting/browse_thread/thread/d16f5fc83971bec4/668e02220d3964aa

Among other things, it seemed that everytime when SurfaceFlinger was
about to launch, the whole process crashed and looped again.

I'm wondering whether the Android code as present supports the
particular resolutions of Treo devices.

On Dec 18, 6:39 pm, "Sameh M. Shaker" <samehshaker552...@gmail.com>
wrote:
> ...
>
> read more »

Sameh M. Shaker

unread,
Dec 24, 2008, 9:08:44 AM12/24/08
to android-porting
I think i've got some progress here...
According to the trace logs generated in /data/anr/traces.txt

----- pid 666 at 2008-12-24 14:02:11 -----
Cmd line: android.process.acore

DALVIK THREADS:
"main" prio=5 tid=3 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x400113a8
| sysTid=666 nice=0 sched=0/0 handle=-1093161860
at android.os.BinderProxy.transact(Native Method)
at android.app.ActivityManagerProxy.handleApplicationError
(ActivityManagerNative.java:2023)
at com.android.internal.os.RuntimeInit.crash(RuntimeInit.java:302)
at com.android.internal.os.RuntimeInit
$UncaughtHandler.uncaughtException(RuntimeInit.java:75)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:853)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:850)
at dalvik.system.NativeStart.main(Native Method)

"RefQueu...@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@4349a338"
daemon prio=5 tid=15 WAIT
| group="main" sCount=1 dsCount=0 s=0 obj=0x4349e380
| sysTid=678 nice=0 sched=0/0 handle=547096
at java.lang.Object.wait(Native Method)
- waiting on <0x86358> (a java.lang.ref.ReferenceQueue)
at java.lang.Object.wait(Object.java:195)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:113)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:82)
at org.apache.http.impl.conn.tsccm.RefQueueWorker.run
(RefQueueWorker.java:102)
at java.lang.Thread.run(Thread.java:935)

"Binder Thread #2" prio=5 tid=13 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x4348fc28
| sysTid=677 nice=0 sched=0/0 handle=836096
at dalvik.system.NativeStart.run(Native Method)

"Binder Thread #1" prio=5 tid=11 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x4348baa0
| sysTid=676 nice=0 sched=0/0 handle=833696
at android.database.sqlite.SQLiteDatabase.native_setLocale(Native
Method)
at android.database.sqlite.SQLiteDatabase.setLocale
(SQLiteDatabase.java:1470)
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:
1424)
at android.database.sqlite.SQLiteDatabase.openDatabase
(SQLiteDatabase.java:537)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase
(SQLiteDatabase.java:558)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase
(SQLiteDatabase.java:551)
at android.app.ApplicationContext.openOrCreateDatabase
(ApplicationContext.java:427)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase
(SQLiteOpenHelper.java:98)
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase
(SQLiteOpenHelper.java:158)
at android.content.SyncableContentProvider.query
(SyncableContentProvider.java:370)
at android.content.ContentProvider$Transport.bulkQuery
(ContentProvider.java:111)
at android.content.ContentProviderNative.onTransact
(ContentProviderNative.java:96)
at android.os.Binder.execTransact(Binder.java:276)
at dalvik.system.NativeStart.run(Native Method)

"JDWP" daemon prio=5 tid=9 VMWAIT
| group="system" sCount=1 dsCount=0 s=0 obj=0x434892a0
| sysTid=673 nice=0 sched=0/0 handle=831280
at dalvik.system.NativeStart.run(Native Method)

"Signal Catcher" daemon prio=5 tid=7 RUNNABLE
| group="system" sCount=0 dsCount=0 s=0 obj=0x434891e8
| sysTid=671 nice=0 sched=0/0 handle=1013648
at dalvik.system.NativeStart.run(Native Method)

"HeapWorker" daemon prio=5 tid=5 VMWAIT
| group="system" sCount=1 dsCount=0 s=0 obj=0x4264c4a0
| sysTid=667 nice=0 sched=0/0 handle=1013080
at dalvik.system.NativeStart.run(Native Method)

----- end 666 -----

I think it's all about the binder driver within the kernel, I've
checked out hack&dev's kernel tree with the tag android...
However, the guys there seem to have back-ported older android patches
into 2.6.27...

Just today I noticed that android git tree is now 2.6.27, which is
great news, I think now we can patch either the treo kernel tree or
the android kernel tree with the other's patches....

I'm a bit sleepy now, but I bet you understand what I mean... :)

that's all for now...

On Dec 18, 9:15 pm, Lo Yuk Fai <loyuk...@gmail.com> wrote:
> Hi there. Some other people and me had been trying to do it not long
> ago but had probably the same problems.
>
> http://groups.google.com/group/android-porting/browse_thread/thread/d...
> ...
>
> read more »

Lo Yuk Fai

unread,
Dec 24, 2008, 12:48:59 PM12/24/08
to android-porting
Actually, I already did it. Based on the latest Android kernel tree
(2.6.27), patched using the diff between the stock 2.6.27 and the H&D
2.6.27 trees.

Unfortunately, it's still a no-go. : (

Cheers.

P.S. How you got your trace logs...?

On Dec 24, 10:08 pm, "Sameh M. Shaker" <samehshaker552...@gmail.com>
wrote:
> I think i've got some progress here...
> According to the trace logs generated in /data/anr/traces.txt
>
> ----- pid 666 at 2008-12-24 14:02:11 -----
> Cmd line: android.process.acore
>
> DALVIK THREADS:
> "main" prio=5 tid=3 NATIVE
>   | group="main" sCount=1 dsCount=0 s=0 obj=0x400113a8
>   | sysTid=666 nice=0 sched=0/0 handle=-1093161860
>   at android.os.BinderProxy.transact(Native Method)
>   at android.app.ActivityManagerProxy.handleApplicationError
> (ActivityManagerNative.java:2023)
>   at com.android.internal.os.RuntimeInit.crash(RuntimeInit.java:302)
>   at com.android.internal.os.RuntimeInit
> $UncaughtHandler.uncaughtException(RuntimeInit.java:75)
>   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:853)
>   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:850)
>   at dalvik.system.NativeStart.main(Native Method)
>
> "RefQueueWor...@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@4349a338"
> ...
>
> read more »

Lo Yuk Fai

unread,
Dec 24, 2008, 12:51:51 PM12/24/08
to android-porting
Forgot to mention... I did use the post-cupcake-merged binaries...

Sameh M. Shaker

unread,
Dec 26, 2008, 6:50:50 AM12/26/08
to android-porting
As Rupesh Gujare suggested, I grabbed a statically linked busybox from
http://benno.id.au/blog/2007/11/14/android-busybox and did what is
described in the page to get it installed with telnetd...
I've also added a few one shot services in init.rc to configure the
USB gadget ethernet, and start telnetd, here how it looks like, and
added /data/busybox to the PATH,

this how it looks like now

export PATH /sbin:/system/sbin:/system/bin:/data/busybox:/usr/
sbin:/system/xbin
.
.
.
service swapon /data/busybox/swapon /dev/block/mmcblk0p2
oneshot

service usbnet /data/busybox/ifconfig usb0 192.168.0.200 netmask
255.255.255.0 up
oneshot

service telnetd /data/busybox/telnetd -l /data/busybox/sh
oneshot

I've created a 128 MB swap space on the memory card, and the 1st
service activates it, and it shows in the command free (one of busybox
commands) and in /proc/meminfo

And since I merged all the images (initrd.img, system.img, and
data.img) into one combined root, I've removed the lines that would
mount /data and /system from init.rc since we won't be needing
them....

Now, I'd boot the kernel with the USB cable detached, and then, as
soon as I can see that the kernel finished loading, I connect it and
execute these command on my linux box:

ifconfig usb0 192.168.0.1 netmask 255.255.255.0 up && telnet
192.168.0.200

At the command prompt just run logcat and you'll see all the logs...

Hope this could be of help to all of us trying to get Android on the
PALM devices, please let me know should you achieve any progress...
> ...
>
> read more »
Reply all
Reply to author
Forward
0 new messages