关于在Recovery mode下读写nvram(IMEI SVN)失败

有关需求需要在recovery下读写imei svn,但是通过读写nvram操作相关节点并不能成功,下面主要实现代码和编译异常,而且跟同事沟通的时候了解到即便是可以编译通过也无法调用libnvram.so的相关函数。若有大神路过,请指点一二。

实现代码:

//#include "../../../../external/nvram/libnvram/libnvram.h"//这里已经引入了相关的头文件
#include "libnvram.h"
#include "CFG_PRODUCT_INFO_File.h"//struct
#include "Custom_NvRam_LID.h"//lid
#include "CFG_module_file.h"//module
int read_write(){

    int result;
    F_ID imei_imeisv_nvram_id;
    int test_fd;
    int rec_size;
    int rec_num;
    nvram_ef_imei_imeisv_struct*  imei_imeisv_struct;
    bool IsRead = true,IsWrite = false;
    printf("read:\n");
    imei_imeisv_nvram_id = NVM_GetFileDesc(AP_CFG_REEB_PRODUCT_INFO_LID, &rec_size, &rec_num,IsRead);//IsRead=true
    if(imei_imeisv_nvram_id.iFileDesc < 0){
        printf("NVM_GetFileDesc failed\n");
        return 0;
    }
    result = read(imei_imeisv_nvram_id.iFileDesc,&imei_imeisv_struct,rec_num*rec_size);
    if(result != rec_num*rec_size){
        printf("Get file failed\n");
        return 0;
    }

    printf("---------read---------\n");
    printf("svn:%s\n",imei_imeisv_struct->svn);
    ui->Print("svn:%s\n",imei_imeisv_struct->svn);
    printf("------------------\n");
    if(!NVM_CloseFileDesc(imei_imeisv_nvram_id))
    {
        printf("NVM_CloseFileDesc failed\n");
    }
    printf("write:\n");
    imei_imeisv_nvram_id = NVM_GetFileDesc(AP_CFG_REEB_PRODUCT_INFO_LID, &rec_size, &rec_num,IsWrite);//IsWrite=false
    if(imei_imeisv_nvram_id.iFileDesc < 0){
        printf("NVM_GetFileDesc failed\n");
        return 0;
    }
    imei_imeisv_struct->svn = 55;
    printf("--------write----------\n");
    result = write(imei_imeisv_nvram_id.iFileDesc,&imei_imeisv_struct,rec_num*rec_size);
    if(result != rec_num*rec_size){
        printf("write file failed\n");
        return 0;
    }
    if(!NVM_CloseFileDesc(imei_imeisv_nvram_id))
    {
        printf("NVM_CloseFileDesc failed\n");
    }
 return 0;
}

Android.mk相关修改:

LOCAL_C_INCLUDES := $(MTK_PATH_SOURCE)/external/nvram/libnvram
LOCAL_SHARED_LIBRARIES := libnvram

下面是编译异常:

bootable/recovery/recovery.cpp:2088: error: undefined reference to 'NVM_GetFileDesc'
bootable/recovery/recovery.cpp:2104: error: undefined reference to 'NVM_CloseFileDesc'
bootable/recovery/recovery.cpp:2109: error: undefined reference to 'NVM_GetFileDesc'
bootable/recovery/recovery.cpp:2121: error: undefined reference to 'NVM_CloseFileDesc'
collect2: error: ld returned 1 exit status
时间: 2024-10-05 05:01:14

关于在Recovery mode下读写nvram(IMEI SVN)失败的相关文章

Linux下读写UART串口的代码

Linux下读写UART串口的代码,从IBM Developer network上拿来的东西,操作比较的复杂,就直接跳过了,好在代码能用,记录一下- 两个有用的函数- //////////////////////////////////////////////////////////////////////////////// /** *@brief 设置串口通信速率 *@param fd 类型 int 打开串口的文件句柄 *@param speed 类型 int 串口速度 *@return v

js 读写cookie。不同路径会储存各自的cookie。而 在v.net环境下读写是在 / 根目录。

所以如果全站不分path 的 话.应该显示的写上 path .设置为根目录 function setCookie(name, value) { document.cookie = name + "=" + escape(value) + ";path=/"; } js 读写cookie.不同路径会储存各自的cookie.而 在v.net环境下读写是在 / 根目录.

UNICODE环境下读写txt文件操作

内容转载自http://blog.sina.com.cn/s/blog_5d2bad130100t0x9.html UNICODE环境下读写txt文件操作 (2011-07-26 17:40:05) 标签: 杂谈 分类: MFC程序设计 自己动手整理了一下,写了几个函数,用于UNICODE环境下对txt文本文件的操作,针对txt文本的ANSIC编码格式,进行了字符编码格式的转换.***********************************************************

Recovery模式下/cache/recovery/目录下创建文件,开机后文件被删除

在一次需求的实现过程中需要在remcovery模式下,在/cache/recovery/目录下创建一个日志文件用于记录相关的日志信息,以便于在开机后读取这些日志信息,再根据日志信息做出相应的处理,但是奇怪的是每当开机完成该文件不被系统自动删除,而系统中原有的日志文件(如升级log---last_log_r)等却依然保留,因此在全局中搜索关键字"/cache/recovery/"发现了这其中的原因. 也就是说系统会在系统启动完成后删除/cache/recovery/目录下不是以"

windows下VisualSVN Server搭建SVN服务器

一.安装VisualSVN Server服务端(windows版) VisualSVN Server的服务端下载地址如下,标准版免费,企业版收费,这里以标准版安装 http://www.visualsvn.com/server/download/ 安装使用FSFS文件系统方式,服务端口为443,web访问地址为: https://192.168.1.197/svn/whale/ 二.安装本地管理工具及使用 以标准标安装服务器端完成后,在本机上下载管理工具客户端a或b方案: a).下载Visual

Ubuntu下sudo apt-get install vim 失败的解决办法

Ubuntu下 执行命令:sudo apt-get install vim 失败 解决办法: 更新一下,命令:sudo apt-get update 再安装即可成功:sudo apt-get install vim Ubuntu下sudo apt-get install vim 失败的解决办法,布布扣,bubuko.com

eclipse下安装和使用svn版本控制[详细图解]

eclipse下安装和使用svn版本控制[详细图解]

[SVN] svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复

转载自:http://www.cnblogs.com/xulb597/archive/2012/07/18/2597311.html 合并步骤:(1)先切换到分支:(2)svn merge trunk . (3)svn sw trunk (4)svn merge --reintegrate branch . svn merge http://59.251.189.152:8989/svn/ron/trunk/ . 从分支和到主干时要加参数 --reintegrate svn merge --re

linux下安装php的svn扩展

首先,下载svn,默认下载路径是当前操作的目录下: wget http://pecl.php.net/get/svn-1.0.2.tgz 解压svn: tar -zxf svn-1.0.1.tgz 进入到svn目录下: cd svn-1.0.1 然后,依次运行命令: /usr/local/php5.5/bin/phpize ./configure--with-php-config=/usr/local/php5.5/bin/php-config make makeinstall 注意:我用的是p