build\tools\buildinfo.sh

来源:互联网 发布:mac office下载 编辑:程序博客网 时间:2024/05/22 02:22

在out\target\product\rlk6580_we_c_m\system下有一个build.prop文件,Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),在Android运行时刻可以通过property_get()[c/c++域] / SystemProperties_get*()[Java域]读取这些属性值,buildinfo.sh 脚本就是专门用于生成build.prop文件,build.prop的生成是由make系统解析build/core/Makefile完成,并把系统默认的system.prop以及定制的system.prop中的设定追加到build.prop文件中

buildinfo.sh很简单,只是echo一些属性,比如:
echo “ro.sw.version=$RC_BUILD_VERNO”

alps\device\reallytek\rlk6753_65u_c_m0\ProjectConfig.mk中设置
RC_BUILD_VERNO = Verykool SL5050_VK__Generic_Dual_SW_V1.0

经过编译之后,build.prop中就有这样一个属性:
ro.sw.version=Verykool SL5050_VK__Generic_Dual_SW_V1.0

然后就可以在代码中调用这个属性SystemProperties.get(“ro.sw.version”);

代码中详细的调用位置:packages/apps/Dialer/src/com/android/dialer/SpecialCharSequenceMgr.java

 private static boolean showSHInfo(Context context, String input) {        final String SW_HW_CODE = SystemProperties.get("ro.secret.code.sh_code");        final String SW_VERSION = "SW: "+SystemProperties.get("ro.sw.version");        final String HW_VERSION = "HW: "+SystemProperties.get("ro.hw.version");        boolean showSHInfo = false;        if (SW_HW_CODE.length() > 0) {             String sw_hw_version_code[] = SW_HW_CODE.split(",");             for (int i = 0; i < sw_hw_version_code.length; i ++) {                    if (input.equals(sw_hw_version_code[i])) {                         showSHInfo = true;                    }             }        }        if (showSHInfo) {             AlertDialog.Builder builder = new Builder(context);             builder.setMessage(SW_VERSION+"\n"+HW_VERSION+"\n");             builder.setPositiveButton(android.R.string.ok, new OnClickListener() {                 @Override                  public void onClick(DialogInterface dialog, int arg1) {                      dialog.dismiss();                  }             });             builder.create().show();             return true;         }         return false;      }
0 0
原创粉丝点击