install.cpp文件really_install_package函数校验更新包的签名过程分析

本文详细分析了Android系统中`install.cpp`文件的`really_install_package`函数,该函数负责查找并校验更新包的签名,然后进行安装。首先,它确保更新包所在路径已挂载,接着尝试从不同位置读取更新包,如外部SD卡或USB存储。然后,从/res/keys文件加载设备的公钥,对更新包进行签名验证。如果校验失败,将返回错误;成功则使用`ZipArchive`打开并安装更新包。
摘要由CSDN通过智能技术生成
static int
really_install_package(const char *path, bool* wipe_cache, bool needs_mount)
{
	bNeedClearMisc = false;
    ui->SetBackground(RecoveryUI::INSTALLING_UPDATE); //lefty_lan注:更新屏幕的提示为正在更新
    ui->Print("Finding update package...\n");
    // Give verification half the progress bar...
    ui->SetProgressType(RecoveryUI::DETERMINATE);
    ui->ShowProgress(VERIFICATION_PROGRESS_FRACTION, VERIFICATION_PROGRESS_TIME);
    LOGI("Update location: %s\n", path);

    // Map the update package into memory.
    ui->Print("Opening update package...\n");

    char really_path[100];
    if (path && needs_mount) {//lefty_lan注:确保更新包所在的路径已经mount
        if (path[0] == '@') {
            ensure_path_mounted(path+1);
        } else {
            ensure_path_mounted(path);
        }
    }

    if
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值