编译Android时,添加或者删除system.img中第三方apk、更改Android系统默认语言

来源:互联网 发布:solarwinds网管软件 编辑:程序博客网 时间:2024/05/16 07:46

/********************************************************************************************
 * author:conowen@大钟                                                                                                                          
 * E-mail:conowen@hotmail.com

 *site:http://www.idealpwr.com/  

 *深圳市动力思维科技发展有限公司                                                                                                         
 * http://blog.csdn.net/conowen                                                                                                              
 * 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。     

 ********************************************************************************************/



1、添加apk到system.img


1.1、添加第三方apk的package到system.img

首先把整个apk的源码包copy到\packages\apps,要注意代码中的layout文件夹中的XML不能有中文字样,否则会提示编码errors,编译不能通过,可以用@string的方法解决,这本来就是代码规范。

然后,编辑以下文档即可。

\build\target\product\generic_no_telephony.mk

或者

\build\target\product\generic.mk文件

依照情况而定

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. PRODUCT_PACKAGES := \  
  2.     AccountAndSyncSettings \  
  3.     DeskClock \  
  4.     AlarmProvider \  
  5.     Bluetooth \  
  6.     Calculator \  
  7.     Calendar \  
  8.     Camera \  
  9.     CertInstaller \  
  10.     DrmProvider \  
  11.     Email \  
  12.     Gallery3D \  
  13.     LatinIME \  
  14.     Launcher2 \  
  15.     Mms \  
  16.     Music \  
  17.     Provision \  
  18.     Protips \  
  19.     QuickSearchBox \  
  20.     Settings \  
  21.     Sync \  
  22.     SystemUI \  
  23.     Updater \  
  24.     CalendarProvider \  
  25.     SyncProvider  

1.2、添加第三方apk到system.img


其实就是一个copy操作,把apk从某一个路径(如:packages/apk/ideal_apk路径下)copy到/system/app或者data/app的路径下面。然后系统编译到最后,再打包成system.img。


修改方法:

到相应机器的devices目录下找到一个有PRODUCT_COPY_FILES字眼的mk文件,添加自己的apk路径进去即可。

如tcc892X的SDK是以下文件

\device\telechips\tcc892x-common\device_tcc892x-common.mk

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. PRODUCT_COPY_FILES += \  
  2.     packages/apk/ideal_apk/tv2.apk:system/app/tv2.apk \  
  3.     packages/apk/ideal_apk/ViewLog.apk:system/app/ViewLog.apk \  
  4.     packages/apk/ideal_apk/WeatherPro_2.2.1_liqucn.com.apk:system/app/WeatherPro_2.2.1_liqucn.com.apk \  
  5.     packages/apk/ideal_apk/Wol_Magic.apk:system/app/Wol_Magic.apk \  
  6.     packages/apk/ideal_apk/RockPlayer-universal-1.7.6.apk:system/app/RockPlayer-universal-1.7.6.apk \  
  7.     packages/apk/ideal_apk/VPlayer.apk:system/app/VPlayer.apk   

或者全志A13的方案如下

\android4.0\device\softwinner\nuclear-dds-t729\dds_t729.mk

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. # pre-installed apks  
  2. PRODUCT_COPY_FILES += \  
  3.     $(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/apk,system/preinstall)  

这样就可以把apk目录下的apk文件copy到system/preinstall目录下,到时候系统初次开机时会把apk安装到userdata分区下。


2、更改Android系统默认语言

在\build\target\product目录,找到full_base.mk或者full.mk文件,

添加如下语句

中文:

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. PRODUCT_LOCALES := zh_CN  

英文:

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. PRODUCT_LOCALES := en_US  


如:
[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. # Overrides  
  2. PRODUCT_NAME := full  
  3. PRODUCT_BRAND := generic  
  4. PRODUCT_DEVICE := generic  
  5. PRODUCT_MODEL := Full Android  
  6. PRODUCT_LOCALES := zh_CN 
0 0