MTK android recovery时候想保存data的数据

两步:

1.在即将擦出data区域数据前把data的需要的数据保存到temp区

2.在完成recovery后再把数据从temp区域保存到data区,注意修改文件的权限


相关代码:

在bootable/recovery/recovery.cpp

static const char *BACKUP_FILE_PATH = "/data/xxxx";
static const char *TEMP_BACKUP_PATH = "/tmp/xxxx";

#if 1
void copy_file(const char *src,const char *dstFilePath)
{
    void* buffer = malloc(BUFSIZ);
    if (buffer == NULL) {
        LOGE("alloc buffer error %d \n", BUFSIZ);
        return;
    }


    size_t read;
    FILE* fin = fopen_path(src, "rb");
    if (fin == NULL) {
        LOGE("fopen error %s \n", src);
        return;
    }
    FILE* fout = fopen_path(dstFilePath, "wb");
    if (fout == NULL) {
        LOGE("fopen error %s \n", dstFilePath);
        /* close opened file */
        return;
    }


    while ((read = fread(buffer, 1, BUFSIZ, fin)) > 0) {
        if (fwrite(buffer, 1, read, fout) != read) {
            LOGE("fwrite error \n");
            /* close opened file */
            fclose(fin);
            fclose(fout);
            return;
        }
    }


    free(buffer);


    if (fclose(fout) != 0) {
        LOGE("fclose error out \n");
        /* close opened file */
        fclose(fin);
        return;
    }


    if (fclose(fin) != 0) {
        LOGE("fclose error in \n");
        return;
    }
}

#endif


if (show_text) ui->ShowText(true);

后加入

copy_file(BACKUP_FILE_PATH,TEMP_BACKUP_PATH);


在 android_reboot(ANDROID_RB_RESTART, 0, 0);前面加入

    copy_file(TEMP_BACKUP_PATH,BACKUP_FILE_PATH);

    chmod  chown合适的权限。



以上是备份和恢复操作

如果需要T卡内置视频恢复方法需要涉及到其他文件的修改,思路可以从这上面衍生出来。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值