
One of my colleague just finished hooking up a small LCD to Armadillo-500 FX! Android seems to be happy at this lovely new home. I just can stop thinking about what I can do with this tiny, cell phone sized, combo dev toy.
This hack was to show that FX works just fine with other LCD, or any LCD per se, than the default 5.7 inch one. Hope everyone gets the idea.
This will be showed off at ET2008(link is to japanese page...). Hope to see you guys there.
Monday, November 10, 2008
Android loves small LCD, too
Thursday, May 08, 2008
Thursday, November 22, 2007
Android - Runs on a real hardware
Here is a clip to show you Android running on a real hardware, Armadillo-500.
All credit is due to Ben "Benno" Leslie for his incredible work. All I've done is put them together.
By the way, the kernel is compiled as OABI with two additional feature enabled.
- EABI support
- OpenBinder
The kernel itself doesn't have to be EABI to run EABI binaries.
Android - OpenBind: protocol doesn't match!
It seems like some people are trying to get as much OpenBinder information on the Android Internals.
I've downloaded OpenBinder source code archive from Dianne Hackborn's site, fixed a few places to meet the current API, compiled, put it on my board and still can't make Home App to run.
So, I've downloaded strace binary from Benno's page and run system_server under it. Now, I've got:
open("/dev/binder", O_RDWR|O_LARGEFILE) = 7
fcntl64(7, F_SETFD, FD_CLOEXEC) = 0
ioctl(7, 0xc0046209, 0xbecdac9c) = 0
writev(4, [{"\6", 1}, {"ProcessState\0", 13}, {"Binder driver protocol does not "..., 59}], 3) = 73
close(7)
Binder driver protocol does not match user space protocol!
Ouch.... I can go disassemble ioctl() to see how the application is checking binder version. However, if Android components are using new feature, there is no way I can re-implement that feature. I guess I have to wait for code to be open. Sigh...
Tuesday, November 20, 2007
Android - Binder
I haven't been able to run android on my arm platform. I have been too lazy to compile strace to see what's going on. Fortunately, Benno have been working on it and it seems like he's successfully got a strace log.
He's log reveal that the android depends on /dev/binder which is not a standard feature on my kernel. Here is the snippet from his log.
This bit here is pretty important. /dev/binder is the character device for OpenBinder, which is something that you see in the kernel source. This appears to be an IPC sub-system for the Linux kernel. It was at some stage donated by Palm, and there was an OpenBinder.org website for sometime, although that site is now dead. Finding more information on this will be essential.
05:30:51.733954 open("/dev/binder", O_RDWR|O_LARGEFILE) = 7
05:30:51.735488 fcntl64(7, F_SETFD, FD_CLOEXEC) = 0
05:30:51.736483 ioctl(7, 0xc0046209, 0xbef86cbc) = 0
05:30:51.737443 ioctl(7, 0x40046205, 0xbef86cb8) = 0
05:30:51.738385 mmap2(NULL, 8388608, PROT_READ, MAP_PRIVATE|MAP_NORESERVE, 7, 0) = 0x40008000
As he said, OpenBinder.org is already down. But, I've found a link to OpenBinder Documentation on #android.
I haven't read the doc yet but it seems like this is required to run android on my system.
Monday, November 19, 2007
bsdiff - binary diff
So I've tested the bsdiff. In conclusion, it does patch up the binary file as advertised. But, doesn't have any check for original file like GNU Patch has. So, here is how it works:
$ cat hello.c
#include
int main()
{
printf("hello world!\n");
return 0;
}
$ cat hello-bsdiff.c
#include
int main()
{
printf("hello bsfile!\n");
return 0;
}
Prepare two source code as above. The difference is bellow.
$ diff -u hello.c hello-bsdiff.c
--- hello.c 2007-11-20 13:44:39.000000000 +0900
+++ hello-bsdiff.c 2007-11-20 14:11:09.000000000 +0900
@@ -2,6 +2,6 @@
int main()
{
- printf("hello world!\n");
+ printf("hello bsdiff!\n");
return 0;
}
As you can see the code differ only in text section. Now compile both code to create binaries "hello.out" and "hello-bsdiff.out".
$ gcc -Wall hello.c -o hello
$ gcc -Wall hello-bsdiff.c -o hello-bsdiff
Generate binary diff with bsdiff.
The synopsis for bsdiff is:
bsdiff <oldfile> <newfile> <patchfile>
$ bsdiff hello hello-bsdiff hello-hello-bsdiff.bsdiff
Let's see how well bsdiff did, in size.
$ ls -l *.out *.bsdiff
-rwxr-xr-x 1 user user 8963 2007-11-20 14:12 hello-bsdiff.out
-rw-r--r-- 1 user user 199 2007-11-20 14:12 hello-hello-bsdiff.bsdiff
-rwxr-xr-x 1 user user 8956 2007-11-20 14:11 hello.out
Patch up the hello.out to create hello-new.out, which should be identical to hello-bsdiff.out.
The synopsis for bspatch is similer to bsdiff:
bspatch <oldfile> <newfile> <patchfile>
$ bspatch hello.out hello-new.out hello-hello-bsdiff.bsdiff
$ md5sum hello-bsdiff.out hello-new.out
3564457345c42a2e0cce1c0a2191bece hello-bsdiff.out
3564457345c42a2e0cce1c0a2191bece hello-new.out
See that hello-bsdiff.out and hello-new.out has same hash value, 356445....
Let's also apply the binary patch to the /dev/null to see how does the bspatch works.
$ bspatch /dev/null hello-new-bad.out hello-hello-bsdiff.bsdiff
$ md5sum hello-bsdiff.out hello-new-bad.out
3564457345c42a2e0cce1c0a2191bece hello-bsdiff.out
5f52d2ca0b2c01a1d05865ef2af102f4 hello-new-bad.out
bspatch doesn't even complain at all and, of cause, the generated file, hello-new-bad.out, is completely different from hello-bsdiff.out.
Labels: computer
New eBook - Amazon Kindle
It seems like Amazon Kindle is out. As a linux kernel book author, Robert Love, reported that the device is based on Linux 2.6.10.
Amazon has already released Linux kernel and other components source code, which includes, except usual uclibc, busybox, and other library and utils, bsdiff: binary diff and patch utility, and taglib: Audio Meta-Data Library.
It would be interesting to test bsdiff and report how well the utility reduce the size of update images.
Labels: computer
Sunday, November 18, 2007
Android - Dex
So, it's been a week since Android SDK is out. Unfortunately, I haven't been able to poke around as much as I want last a few days. but there are many people interested in the internal of Android instead of Java wrapper; which is good thing.
My main focus is everything below the Dalvik. because once the underneath layer is done, we can just run Dalvik on any platform. That's gonna be fun.
But some people are interested in DEX format. so here is a list of links.
Tuesday, November 13, 2007
Android - Videos
It's been an interesting day for me. many people are checking, talking, asking, playing with Android. I'll post a few entry to summarize what I've been reading so far.
The first post is a list of video clips released by google. These helped me to grasp what Android is all about.
Androidology - Part 1 of 3 - Architecture Overview
Androidology - Part 2 of 3 - Application Lifecycle
Androidology - Part 3 of 3 - APIs