展锐Android remount and fastboot_展锐解锁 baud

fastboot oem get_identifier_token
30313233343536373839414243444546

1.3.生成认证文件certificate.bin

./vendor/sprd/proprietories-source/packimage_scripts/signidentifier_unlockbootloader.sh 30313233343536373839414243444546 vendor/sprd/proprietories-source/packimage_scripts/signimage/sprd/config/rsa4096_vbmeta.pem certificate.bin

1.4.烧录certificate.bin

(这里的fastboot要用源码编译出来的(out目录),系统自带的不支持),会提示按音量-键,然后等待,会提示成功。

./out/host/linux-x86/bin/fastboot flashing unlock_bootloader certificate.bin

1.5.开机,关掉认证,再重启,这时就可以remount了。

fastboot reboot
adb root
adb disable-verity
adb reboot

1.6.如果需要重新上锁,运行如下的命令

adb reboot bootloader
fastboot flashing lock

2.自动化脚本

sprd_remount.sh

project\_path=/home/liwl/zhanrui/M1910U/sl8541e_1h10wifi5g_32b_Natv

# 1 cmd
# 2 需要返回的字符串 绝对匹配 -w
# 3 等待时间S
# 成功返回1 失败返回0
wait\_cmd\_resp() {
    count=$3
    val=0
    while (($count)); do
        # echo $count
        str=$($1)
        # str="runoob is a great sites"
        ret=$(echo $str | grep -w "$2") #匹配子串
        if [[ $ret != "" ]]; then
            echo "检测到设备"
            val=1
            break
        else
            if [ $count == $3 ]; then #只输出一次
                echo "检测设备中..."
            fi
            sleep 1
            val=0
        fi

        let "count--" #变量递减

    done
    return $val
}

create\_certificate() {
    adb reboot bootloader                          #进入bootloader
    wait_cmd_resp "fastboot devices" "fastboot" 60 #确认存在fastboot设备
    if [[ $? == 1 ]]; then
        id=$(fastboot oem get\_identifier\_token) #获取当前手机的id
        #30313233343536373839414243444546 #当前手机的id
        #生成认证文件certificate.bin
        echo "----------手动输入下面命令,替换bootloader id,生成bin----------"
        echo "cd $project\_path"
        echo "./vendor/sprd/proprietories-source/packimage\_scripts/signidentifier\_unlockbootloader.sh ID vendor/sprd/proprietories-source/packimage\_scripts/signimage/sprd/config/rsa4096\_vbmeta.pem certificate.bin"
        return 1
    fi
    return 0
}

if [[ $1 == "create" ]]; then   # 生成认证
    cd $project\_path
    echo "cd "$(pwd)
    create_certificate
elif [[ $1 == "unlock" ]]; then # 使用认证,进行解锁
    wait_cmd_resp "adb remount" "succeeded" 2
    if [[ $? == 1 ]]; then
        echo "设备已remount"
    else
        cd $project\_path
        if test -e ./certificate.bin; then
            echo "开始解锁"
            adb reboot bootloader                          #进入bootloader
            wait_cmd_resp "fastboot devices" "fastboot" 60 #确认存在fastboot设备
            if [[ $? == 1 ]]; then
                #必须使用源码编译出的fastboot,会提示按音量-键,然后等待,会提示成功。
                ./out/host/linux-x86/bin/fastboot flashing unlock_bootloader certificate.bin
                fastboot reboot
                wait_cmd_resp "adb devices" "device" 60
                if [[ $? == 1 ]]; then
                    adb root
                    wait_cmd_resp "adb disable-verity" "already disabled" 5
                    if [[ $? == 0 ]]; then
                        adb reboot
                    fi
                fi

                wait_cmd_resp "adb remount" "succeeded" 60
                if [[ $? == 1 ]]; then
                    echo "remount 成功"
                fi
            fi
        else
            echo "请先生成认证文件"
        fi
    fi
fi

使用方法:

./sprd_remount.sh create   生成认证
./sprd_remount.sh unlock  解锁+remount(需要先生成认证)

fastboot烧写

## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/ef6046501fbcced429132d39aebb39fd.png)

![img](https://img-blog.csdnimg.cn/img_convert/ad227c6541e9e5edea887f04ea6c1ecb.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/927bdf1bbb3d151c749ba65264cf1ee7.png)

 ![img](https://img-blog.csdnimg.cn/img_convert/6f131f0be3841ac04e02b80bb92e37bb.png)

![img](https://img-blog.csdnimg.cn/img_convert/a2c9471d94470dbe2ed3a4081689b811.png)

![img](https://img-blog.csdnimg.cn/img_convert/7a6dd2aa41be6ce1899c4cc542b9185f.png)

![](https://img-blog.csdnimg.cn/img_convert/07ebb7e203856982c703b07248e8a682.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例的C++接口代码,用于适配Android 13展锐平台的morpho_mfnr算法: ```cpp // morpho_mfnr_interface.h #ifndef MORPHO_MFNR_INTERFACE_H #define MORPHO_MFNR_INTERFACE_H #include <cstdint> // 定义接口函数 extern "C" { // 初始化函数 bool initialize(); // 释放资源函数 void release(); // 执行MFNR算法函数 void processMFNR(const uint8_t* inputImage, int width, int height, uint8_t* outputImage); } #endif // MORPHO_MFNR_INTERFACE_H ``` ```cpp // morpho_mfnr_interface.cpp #include "morpho_mfnr_interface.h" // 初始化函数实现 bool initialize() { // 在此处进行初始化操作,如加载模型等 // 返回初始化结果 return true; } // 释放资源函数实现 void release() { // 在此处释放资源,如释放内存等 } // 执行MFNR算法函数实现 void processMFNR(const uint8_t* inputImage, int width, int height, uint8_t* outputImage) { // 在此处执行morpho_mfnr算法,将结果存储在outputImage中 // 输入图像为inputImage,宽度为width,高度为height } ``` 上述代码中,`morpho_mfnr_interface.h`是接口文件,定义了接口函数的声明。`morpho_mfnr_interface.cpp`是接口函数的实现文件。在实现文件中,你可以根据展锐平台和morpho_mfnr算法的具体要求,实现初始化、资源释放和MFNR算法的函数。其中,`initialize`函数用于初始化环境,`release`函数用于释放资源,`processMFNR`函数用于执行MFNR算法。 请注意,上述代码只是一个示例,具体的实现需要根据展锐平台和morpho_mfnr算法的要求进行适配和实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值