本例将从NvRAM中读取Barcode,并写入到gsm.serial属性。
1. 找目标文件
需要用到系统中一个文件NvRAMAgent.java。可以使用命令 find -name “NvRAMAgent.java” 找到。
将该文件拷贝到自己需要用的包下。本例是拷贝到frameworks\base\telephony\java\android\telephony下。
然后打开该文件,修改包名为当前包名
package android.telephony;
2. 找到读写NvRAM的接口
有个内部类Proxy,这个类有读写NvRAM的方法
public byte[] readFile(int fileLid) throws android.os.RemoteException
{
}
public int writeFile(int fileLid, byte[] buff) throws android.os.RemoteException
{
}
3. 改写代码
在需要读写的地方添加java代码
下面代码getRobotSN()从NvRAM中读取由SN Writer烧录到机器中的BARCODE,并转换为String,由requestSN()方法写到属性"gsm.serial"中。
/// Add by Bright.L @{
private static final String PROPERTY_SERIAL_NUMBER = "gsm.serial"; // 定义一个key
// Custom_NvRam_LID.h: AP_CFG_REEB_PRO