改造小蚁摄像头支持免费无限容量云储存(支持小容量SD卡篇)

2024-08-25 16:04

本文主要是介绍改造小蚁摄像头支持免费无限容量云储存(支持小容量SD卡篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过上一篇的操作,我们成功将网盘挂载到了小蚁摄像头上,同时也避免了内存卡的频繁读写。但是现在又引申出另一个问题,原本我们为了尽可能多的保存视频文件选用的都是大容量内存卡。现在视频文件不存内存卡上了,再插这么大的内存卡也没什么意义了。刚好家里翻出来几张十几年前1G容量的内存卡,是不是可以拿它废物利用?


实际测试下来发现,小蚁官方固件对小于4G容量的内存卡做了限制,一旦插入根本不录制视频了,同时也导致上一步的云存储失去了作用。所以破解限制势在必行。

同样通过分析摄像头启动流程,我们发现/home/base/init.sh含有这样一段逻辑

mount tmpfs /tmp -t tmpfs -o size=16m
mkdir /tmp/sd#rtctime=$(/home/base/tools/rtctool -g time)
#date -s $rtctimecheckdiskumount -l /tmp/sd
mount /dev/mmcblk0p1 /tmp/sd
#rm /tmp/sd/record/*.tmp
rm /tmp/sd/*.REC
find /tmp/sd/record -name "*.tmp" -exec rm {} \;

在初始化摄像头的时候,固件会执行checkdisk命令校验内存卡容量和文件系统是否满足要求。通过反编译checkdisk得到以下代码

tfcard_size_v2 = get_tfcard_size_v2();if ( *(_DWORD *)(g_sysconf_ptr + 296) == 1 ){system_cmd_withret_timeout("fdisk /dev/mmcblk0 < /home/base/tools/fdisk.input", v13, 10240, 60);if ( tfcard_size_v2 >= 0x8000 )v9 = "/home/base/tools/mkexfatfs /dev/mmcblk0p1";elsev9 = "/home/base/tools/mkfs.fat /dev/mmcblk0p1";system_cmd_withret_timeout(v9, v13, 10240, 120);*(_DWORD *)(g_sysconf_ptr + 296) = 0;}if ( tfcard_size_v2 >= 3072 ){fs_type = get_fs_type();if ( (unsigned int)(fs_type - 1) > 1 ){dump_string("checkdisk.c", "main", 318, (struct tm *)"FS format error.");system_cmd_withret_timeout("rmmod exfat.ko", v13, 10240, 60);if ( !*(_DWORD *)(g_sysconf_ptr + 296) ){v3 = 10002;*(_DWORD *)(g_sysconf_ptr + 220) = 10002;goto LABEL_12;}umount("/tmp/sd");v3 = 10002;}else{umount("/tmp/sd");if ( fs_type == 1 ){v11 = mount("/dev/mmcblk0p1", "/tmp/sd", "vfat", 0, 0);}else{if ( fs_type != 2 ){umount("/tmp/sd");goto LABEL_10;}v11 = mount("/dev/mmcblk0p1", "/tmp/sd", "exfat", 0, 0);}if ( v11 == -1 ){dump_string("checkdisk.c", "main", 341, &stru_B520);v3 = 10011;goto LABEL_12;}}umount("/tmp/sd");if ( tfcard_size_v2 > 0x8000 && fs_type == 1 ){dump_string("checkdisk.c", "main", 349, (struct tm *)"FS format error.");v3 = 10002;goto LABEL_12;}if ( fs_type == 1 ){v3 = check_partion_vfat();}else if ( fs_type == 2 ){v3 = check_partion_exfat();}
LABEL_10:if ( *(_DWORD *)(g_sysconf_ptr + 296) == 1 )*(_DWORD *)(g_sysconf_ptr + 296) = 0;goto LABEL_12;}

阅读代码我们可以了解到固件使用cat /sys/block/mmcblk0/size 命令检测内存卡容量是否大于3072,如果不满足就停止录制。

所以这里的改造思路已经很清晰了,

1.要么修改chkdisk文件,把3072改小。

2.要么通过hook cat 命令,让它不管什么时候都返回大于3072的数字。

cat /sys/block/mmcblk0/size

经过测试,这两种方案都可行。

这里为了方便演示,我们选择方案2改造.

1.把以下命令保存为shell脚本cat.hook。把脚本放到后台的环境变量可执行目录里,这里是放到/home/base/tools/下

#!/bin/sh# location:/home/base/init.sh
# location:/home/base/tools/cat
# hook system cat command for support < 4GB sd card
if [ "$1" == "/sys/block/mmcblk0/size" ]; thenecho 7802880
else/bin/cat "$@"
fi

2.修改/home/base/init.sh,在执行chkdisk命令的前后加上以下逻辑,这里的思路是检测内存卡之前替换掉正版的cat命令 使它永远输出大于4GB的容量误导固件,检测完之后再把cat还原。

mv /home/base/tools/cat.hook /home/base/tools/cat
chmod +x /home/base/tools/catcheckdiskmv /home/base/tools/cat /home/base/tools/cat.hook

到了这里我们的改造步骤就全部结束了。成功的对老旧内存卡进行了废物利用。

以上脚本已经全部上传至github yi-hack-v5-plugins 希望大家帮忙点个star!

这篇关于改造小蚁摄像头支持免费无限容量云储存(支持小容量SD卡篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106002

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

轻松录制每一刻:探索2024年免费高清录屏应用

你不会还在用一些社交工具来录屏吧?现在的市面上有不少免费录屏的软件了。别看如软件是免费的,它的功能比起社交工具的录屏功能来说全面的多。这次我就分享几款我用过的录屏工具。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  这个软件的操作方式非常简单,打开软件之后从界面设计就能看出来这个软件操作的便捷性。界面的设计简单明了基本一打眼你就会轻松驾驭啦

10个好用的AI写作工具【亲测免费】

1. 光速写作 传送入口:http://u3v.cn/6hXWYa AI打工神器,一键生成文章&ppt 2. 讯飞写作 传送入口:http://m6z.cn/5ODiSw 3. 讯飞绘文 传送入口:https://turbodesk.xfyun.cn/?channelid=gj3 4. AI排版助手 传送入口:http://m6z.cn/6ppnPn 5. Kim

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲

SOMEIP_ETS_095: SD_Check_subscribe_eventgroup_ttl_expired

测试目的: 验证DUT(Device Under Test)能够检测到测试器(Tester)的订阅已过期(ttl = 3秒),并且在TTL过期后不响应测试器触发的事件。 描述 本测试用例旨在确保DUT能够识别测试器的订阅已过期,并在订阅过期后不响应测试器通过TriggerEventUint8方法触发的事件。 测试拓扑: 具体步骤: TESTER:发送订阅事件组消息,用于事件组0x0

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(