[G1 Android Development] mttmllns:
Welp, I was so eager to get this working on CyanogenMod I dove in and spent the last few hours trying to figure it out :confused::

Installed VirtualBox and Ubuntu

Installed the SDK, apktool, and other various required bits

Decoded the APK

Edited the AndroidManifest.xml to change minSdkVersion from 5 to 4

Rebuilt the APK

Set up a keystore and resigned the APK with my key (this part took awhile and I still don't really know what other options I have if any...)

INSTALLED THE APP SUCCESSFULLY

Bad news though. Although the app opens and starts giving you the opening wizard, it seems the service that "Queries data sources" in the background freaks out and requires a force close. The logcat:

I/ActivityManager( 100): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=com.google.android.apps.gesturesearch/.GShell }
I/ActivityManager( 100): Start proc com.google.android.apps.gesturesearch for activity com.google.android.apps.gesturesearch/.GShell: pid=12360 uid=10097 gids={3003}
W/InputManagerService( 100): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43f2f048
I/ActivityThread(12360): Publishing provider com.google.android.apps.gesturesearch.history: com.google.android.apps.gesturesearch.data.QueryHistoryProvider
I/ActivityThread(12360): Publishing provider com.google.android.apps.gesturesearch.index: com.google.android.apps.gesturesearch.data.IndexProvider
W/dalvikvm(12360): VFY: unable to resolve static field 26 (CONTENT_URI) in Landroid/provider/ContactsContract$Data;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0025
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/SearchItemView;.setIcon code (440 bytes)
D/dalvikvm(12360): GC freed 1792 objects / 184456 bytes in 175ms
I/ActivityManager( 100): Displayed activity com.google.android.apps.gesturesearch/.GShell: 2116 ms (total 2116 ms)
W/dalvikvm(12360): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract$Contacts;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0003
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/DataMultiContacts;.queryPhoneNumbers code (128 bytes)
W/dalvikvm(12360): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract$Contacts;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0016
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/DataMultiContacts;.prepare code (140 bytes)
W/dalvikvm(12360): threadid=15: thread exiting with uncaught exception (group=0x4001e180)
E/AndroidRuntime(12360): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception
E/AndroidRuntime(12360): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(12360): at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(12360): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/AndroidRuntime(12360): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/AndroidRuntime(12360): at java.lang.Thread.run(Thread.java:1096)
E/AndroidRuntime(12360): Caused by: java.lang.NoClassDefFoundError: android.provider.ContactsContract$Contacts
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.DataMultiContacts.prepare(DataMultiContacts.java:68)
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.IndexingTask.doInBackground(IndexingTask.java:126)
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.IndexingTask.doInBackground(IndexingTask.java:23)
E/AndroidRuntime(12360): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime(12360): ... 4 more
I/Process ( 100): Sending signal. PID: 12360 SIG: 3
I/dalvikvm(12360): threadid=7: reacting to signal 3
I/dalvikvm(12360): Wrote stack trace to '/data/anr/traces.txt'

These logs are a little above my head, though, and beyond my research capabilities at the moment (feeling a little defeated and TIRED :p). Do they look like a result of my modification of the app or a framework limitation of CM's 1.6?

I'd appreciate any feedback, even if it's a "NO, STOP TRYING TO MAKE THIS WORK AND JUST SWITCH TO ECLAIR ALREADY" :D I attached the modified APK if anyone wants to play with it.