Chris' journal has moved to chris.boyle.name - Post a comment [entries|archive|friends|userinfo]
Chris Boyle

[ website | chris.boyle.name ]
[ userinfo | insanejournal userinfo ]
[ archive | journal archive ]

How to get Voice Dialer on your UK G1; how to fix a Google app on your G1[Nov. 15th, 2008|12:27 pm]

shortcipher
By way of a couple of mini-howtos to save the next person some time:

Voice Dialer (trivial)

  1. Get the Android source
  2. make VoiceDialer
  3. ./out/host/linux-x86/bin/adb install -r \
    ./out/target/product/generic/obj/APPS/VoiceDialer_intermediates/package.apk
This works quite happily and I've no idea why Google / T-Mobile UK removed it.

To fix a trivial bug in a Google app (slightly fiddly)

For this exercise, I'll be using issue 1300, a UI glitch in Calendar that was annoying me. I'm sure there ought to be an easier way to do this, and would be grateful if anyone would tell me it. In the meantime…
  1. Get the Android source
  2. cd packages/apps/Calendar (or wherever).
  3. Make whatever source changes you wanted to make.
  4. Make this a different package, to be treated as a different app, because code signing will prevent you from upgrading/replacing the original. :-(
    1. Edit AndroidManifest.xml to change the package and android:sharedUserId (and android:taskAffinity?) to anything else (I just applied s/calendar/calendarfixed/ to them). You could also modify
    2. Make the code in src consistent with the new package name, using something like:
      1. mv com/android/calendar com/android/calendarfixed
      2. for f in com/android/calendarfixed/*.java; do sed -i s/com.android.calendar/com.android.calendarfixed/g $f; done
    3. Edit res/values/strings.xml and res/values-en-rGB/strings.xml to change app_label to something different so you can tell the two apps apart (I appended an asterisk). You could similarly modify Activity titles like event_info_title.
  5. cd ../../.. && make Calendar
  6. ./out/host/linux-x86/bin/adb install -r \
    ./out/target/product/generic/obj/APPS/Calendar_intermediates/package.apk
    (presumably you could instead sign package_unsigned.apk with a specific key if you wanted to).
  7. Ensure you always use the new app (e.g. "Calendar*") instead of the old one. The first time, you might have to launch it, press Back a few times, and launch it again (missed taskAffinity?). You may find that some replaceable actions (e.g. "View event") prompt you to choose between two seemingly identical providers (missed Activity title?).
Link Read Comments

Reply:
From:
( )Anonymous- this user has disabled anonymous and non-friend posting. You may post here if shortcipher lists you as a friend.
( )OpenID
(will be screened if not a friend)
Username:
Password:
Don't have an account? Create one now.
Subject:
No HTML allowed in subject
  
Message:
 
Notice! This user has turned on the option that logs your IP address when posting.