Author: Xu jianxiang (netpirate@gmail.com)
Date: 2009/12/19
Web: http://www.anymobile.org
The procedure for porting Google Apps (Market; GTalk; Google Maps; GMail; Voice Search) is as follows:
1. Download related files (jar/lib library, apk Installation File, xml permission file, etc.) from a custom Google mobile phone through ADB );
2. Modify two make script files: core. mk and generic_with_google.mk;
3/make generic_with_google: these files are contained when a new system. img image file is generated.
Note:
A. the transplanted mobile phone holder supports the Internet and uses setupwizard.apk to verify the Google account. This program runs before the standby interface. If the verification fails, the user cannot enter the standby interface; Market; GTalk; GMail needs to verify the Google account, and the Market needs the GTalk service.
B. Street View is not supported in Android 1.5;
C. If you only port Google Maps, you only need to port the following three files:
Adding vendor/google/app/Maps.apk
Adding vendor/Google/etc/permissions/COM. Google. Android. Maps. xml
Adding vendor/Google/framework/COM. Google. Android. Maps. Jar
Below are the code modifications for core. mk and generic_with_google.mk:
Sending build/target/product/CORE. mk
1 PRODUCT_BRAND: =
2 PRODUCT_NAME: =
3 PRODUCT_DEVICE: =
4 PRODUCT_POLICY: = android. policy_phone
5 PRODUCT_PROPERTY_OVERRIDES: =/
6 ro.config.icationication_sound1_f1_new_sms.ogg
7
8 PRODUCT_PACKAGES: =/
9 framework-res/
10 Browser/
11 Contacts/
12 Launcher/
13 HTMLViewer/
14 Phone/
15 ContactsProvider/
16 DownloadProvider/
17 GoogleSearch/
18 MediaProvider/
19 SettingsProvider/
20 TelephonyProvider/
21 UserDictionaryProvider/
22 PackageInstaller/
23 Bugreport/
24 ImProvider
Sending build/target/product/generic_with_google.mk
1 # This is a generic product that isn't specialized for a specific device.
2 # It nodes des the base Android platform including some Google-specific features.
3 # If you do not want to include Google specific features, you showould derive
4 # from generic. mk
5 product_property_overrides: =/
Ro.com. Google. locationfeatures = 1/
Ro. url. Legal = http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html/
Ro. url. Legal. android_privacy = http://www.google.com/intl/%s/mobile/android/basic/privacy.html/
Ro. setupwizard. mode = disabled
6 product_packages: =/
7 googlecontactsprovider/
8 googlesubscribedfeedsprovider
9 #/
10 # com. Google. Android. gtalkservice/
11 # com. Google. Android. Maps
12 product_copy_files: =/
13 vendor/Google/APP/checkin.apk: System/APP/checkin.apk/
14 vendor/Google/APP/gmail.apk: System/APP/gmail.apk/
15 vendor/Google/APP/gmailprovider.apk: System/APP/gmailprovider.apk/
16 vendor/Google/APP/google511.apk: System/APP/google511.apk/
17 vendor/Google/APP/googlepartnersetup.apk: System/APP/googlepartnersetup.apk/
18 vendor/google/app/GoogleSettingsProvider.apk: system/app/GoogleSettingsProvider.apk/
19 vendor/google/app/gtalkservice.apk: system/app/gtalkservice.apk/
20 vendor/google/app/Maps.apk: system/app/Maps.apk/
21 vendor/google/app/MediaUploader.apk: system/app/MediaUploader.apk/
22 vendor/google/app/NetworkLocation.apk: system/app/NetworkLocation.apk/
23 vendor/google/app/SetupWizard.apk: system/app/SetupWizard. apk/
24 vendor/google/app/Street.apk: system/app/Street.apk/
25 vendor/google/app/Talk.apk: system/app/Talk.apk/
26 vendor/Google/APP/vending.apk: System/APP/vending.apk/
27 vendor/Google/APP/voicesearch.apk: System/APP/voicesearch.apk/
28 vendor/Google/etc/permissions/COM. Google. Android. gtalkservice. xml: System/etc/permissions/COM. Google. Android. gtalkservice. xml/
29 vendor/Google/etc/permissions/COM. Google. Android. Maps. xml: System/etc/permissions/COM. Google. Android. Maps. xml/
30 vendor/Google/framework/COM. Google. Android. gtalkservice. jar: System/framework/COM. Google. Android. gtalkservice. Jar/
31 vendor/Google/framework/COM. Google. Android. Maps. jar: System/framework/COM. Google. Android. Maps. Jar/
32 vendor/Google/lib/libspeech. So: System/lib/libspeech. So
33
34 $ (call inherit-product, $ (SRC_TARGET_DIR)/product/generic. mk)
35
36 # Overrides
37 PRODUCT_NAME: = generic_with_google
38
Note:
The jar library and APK Installation File of Google Maps 3.0 extracted by HTC image can only be located successfully and cannot be read from the located map data. A classcastexception exception is thrown:
03-01 16:52:58. 561 E/androidruntime (2453): uncaught handler: thread main exiting due to uncaught exception
03-01 16:52:58. 936 E/androidruntime (2453): Java. Lang. classcastexception: Android. Graphics. drawable. bitmapdrawable
03-01 16:52:58. 936 E/androidruntime (2453): At com. Google. Android. Maps. mylocationoverlay. getlocationdot (mylocationoverlay. Java: 180)
Finally, I extracted the release version Android 1.5 file (Google Add-ons) by using the following method:
1)/system/etc/permissions/com. google. android. gtalkservice. xml
2)/system/etc/permissions/com. google. android. maps. xml
3)/system/framework/com. google. android. gtalkservice. jar
4)/system/framework/om. google. android. maps. jar
5)/system/app/Maps.apk (Google Maps v3.1)
Refer:
Google Mobile
Http://www.google.com/mobile/
HTC Developer Center
Http://developer.htc.com/index.html
Building Android 1.5-Google Apps and audio files
Http://www.johandekoning.nl/index.php/2009/07/12/building-android-1-5-google-apps-and-audio-files/
Google Voice Search Wiki
Http://en.wikipedia.org/wiki/Google_Voice_Search
Using Google Maps in Android
Http://mobiforge.com/developing/story/using-google-maps-android
Android Add-ons (Map API)
Http://android.nanshapo.com/topic/view/812.html