最近研究对了Android的boot.img的操作,将一些繁琐的东西整理了一下,发到了github:https://github.com/difcareer/BootImgTool/ 什么情况下,需要操作...boot.img: 自己编译的linux内核,需要解包boot.img,替换kernel文件后重打包,这样刷机才会生效。.../build.sh 使用tmp下的boot.img练手,解包: bin/unpack-bootimg.sh tmp/boot.img 此时tmp如下: ll tmp total 34944 -rw-r-...-r-- 1 andr0day staff 8.5M 4 16 19:14 boot.img -rw-r--r-- 1 andr0day staff 8.0M 4 16 19:30...ro.debuggable=0 改为ro.debuggable=1 重新打包: bin/repack-bootimg.sh tmp/boot.img-kernel.gz tmp/boot.img-ramdisk boot.img
1.在电脑下载系统包(全量包)小米参考:如何获取MIUI最新系统包 - kenvie(其他品牌请自行到官网下载) 2.下载Payload解包工具:https://ali.kenvie.com/Downloads.../payload_dumper-win64.zip 3.解压系统包(只需要payload.bin文件) 4.复制解压出来的【payload.bin】文件到Payload解包工具的payload_input...文件夹 5.打开【payload_dumper.exe】执行解包(解包需要点时间) 6.打开payload_output文件夹就可以看到我们解好的包了 版权属于:kenvie 本文链接:https
这里记录下linux和windows下两种打包img方式。.../Linux_Pack_Firmware/rockdev/rv1126_rv1109-package-file文件 --- a/tools/linux/Linux_Pack_Firmware/rockdev...要写入backup分区的文件就是自身(update.img) # SELF 是关键字,表示升级文件(update.img)自身 # 在生成升级文件时,不加入SELF文件的内容,但在头部信息中有记录 # 在解包升级文件时...,不解包SELF文件的内容。...backup RESERVED #update-script update-script #recover-script recover-script 接着将SDK下编译生成的boot.img
一、压缩解压缩 1、gzip 压缩后的文件是.gz格式 压缩:gzip 文件名 或 gzip -r 目录 解压缩:gunzip 压缩文件 或 gzip -d...
如果不解包想直接查看压缩包里包含了那些文件呢?
--内核添加init.d------------------------------------------------------------------------ 1.使用bootimg.exe解包内核...(文章末尾提供下载链接,bootimg.exe需要和boot.img在同一目录下,然后打开系统cmd.exe,使用cd命令到达你放置bootimg.exe和boot.img的文件夹下,然后运行解包命令bootimg...--unpack-bootimg) 2.进入解包目录(即你放置bootimg.exe和boot.img的文件夹了里),找到initrd文件夹进入。...---------------------内核ROOT------------------------------------------------------------------------ 解包内核里面有个...persist.service.adb.enable=1 如果ro.secure=0 就是允许我们运行adb root命令,通常内核root就是指ro.secure=0 将ro.secure=1修改成ro.secure=0,之后打包回来boot.img
为了让每个IP都能被正确解包,就要看数据区域有多大。 5. 16位标识(大小:16比特) IP协议允许数据报进行分片。 在数据链路层,IP可能会被分片。去适应链路的最大传输单位(MTU)。...Linux系统Unix一般设置为64. 9. 8位协议 它的作用就是来区分上层用的什么协议,TCP还是UDP还是ICMP。 TCP为6,UDP是17,ICMP(1)。
而我也算是作为初入门的Linux开发者,本次也难免要经历这个过程。...Linux的开发环境一般使用Linux机器进行开发编译等工作,这个Linux机器可以是实体机,也可以是虚拟机,飞凌官方已经将虚拟机和整个开发环境,包括需要用到的一些工具等都打包起来了,很方便。...out/t113_i/OK113i/longan/路径下生成 boot.img boot.img 可用于在线单独更新内核,用户需将其从虚拟机中拷贝到 OK113i 板卡/home 路径下,之后执行:dd...if=/home/boot.img of=/dev/mmcblk0p4 conv=fsync 完成之后,重启板卡,即替换内核 注意单独编译内核只针对内核源码进行编译,影响驱动,适用于仅修改内核时进行编译...总结:看起来sdk在解包出来之后,整个编译的过程还是非常的顺利的,这个也得益于sdk的设计和打包。
(2020-03-01测试一加5,安卓10 红米 note4 有效 ) 用途:手机改造成车载GPS、行车记录仪等等 需要的工具: 已root权限、已解BL锁的安卓机器 【镜像助手】 负责提取和刷入boot.img...【镜像工厂】 负责boot.img的解包和打包 【MT管理器2.0】 负责修改解包后的init.rc文件 ---- 提醒: 提前备份原版boot.img 记得备份!...某些系统开机会校验文件,修改过的文件会被直接覆盖成原版的文件 本方案理论上通杀安卓6.0+系统,已在刷了LineageOS的一加5和小米Note3上测试通过(系统底层均为安卓8.1) ---- 步骤: ①提取boot.img...方法1:连接电脑,在电脑上用adb shell提取(自行百度) 方法2:手机端使用上面提到的工具提取: 【镜像助手】提取boot.img,存放在内置储存的根目录下,boot.img 【镜像工厂】其实也有提取和刷入功能...,但本人的刷了LineageOS的一加5不知为何提取失败,所以改用“助手” ②解包 【镜像工厂】解包后存放路径\ImageFactory\unpacked\boot.img_unpacked\ ③修改init.rc
工具和依赖: 一个支持 OverlayFS 的 Linux 内核。 `busybox` 或其他必要的系统工具。.../ramdisk.img 2.2 解包脚本 创建脚本 unpack_ramdisk.sh,将 ramdisk.img 解包到工作目录: #!...打包到boot.img 3.1 配置项目文件 在项目 defconfig 文件中,添加以下内容: RK_USE_FIT_IMG=y RK_BOOT_FIT_ITS="bootramdisk.its" RK_RAMDISK_IMG...测试效果与优化 将更新后的 boot.img 刷写到开发板,重启后执行: df -h 输出类似以下内容: root@hd-rk3568:~# df -h 文件系统 容量 已用 可用已用...dev/mmcblk0p8 23G 590M 23G 3%/userdata overlayroot 23G 590M 23G 3%/ 添加完上面内容后,更新boot.img
参考链接: Switch 解包 图文教程 找了一圈找到了上面的教程,写的还是比较简单的,工具也被写成傻瓜版的批处理文件了,像我这种只打算对NS解包这块浅尝辄止的人还是比较适合用这个工具的。...有一点稍微提一下,那就是在选择解包NSP文件和XCI文件的时候有一个区别,那就是NSP文件解包时要去获取一下Tilte key,而XCI文件则不需要。...还有就是解包完成以后生成的romfs目录下的文件在不同游戏中也是不一样的,看了几个教程他们解包出来的romfs下有一大堆东西,而Arcaea解包出来就只有两个文件:arc.json和arc.pack。...由此我推测NS的解包到这步应该已经结束了,之所以解包出来的文件只有两个是因为616对这些资源自己还包了一层,网上的工具只负责把NS的包解出来但是游戏本身如何打包的就不是他们负责的了。...然后就完成解包啦,接下来康康把铺面拿到手机上能不能愉快玩耍,放张解包出来的CG然后本文到此结束!解包文件和脚本已上传GitHub。
三、解包小程序 打开小程序包解密工具: 点击“选择加密小程序包”,选择上面第2点获取的目录里的__APP__.wxapkg 路径类似: E:\wechat\WeChat Files\Applet\wx
本文主要介绍调用函数传递参数时序列解包的用法。在调用函数传递参数时,可以在实参序列前加一个星号*进行序列解包,或在实参字典前加两个星号**进行解包,本文介绍第一种用法,第二种用法后面再单独发文介绍。...tup = (1, 2, 3) #对元组进行解包 >>> demo(*tup) 6 >>> dic = {1:'a', 2:'b', 3:'c'} #对字典的键进行解包 >>> demo(*dic)...6 #对字典的值进行解包 >>> demo(*dic.values()) abc >>> Set = {1, 2, 3} #对集合进行解包 >>> demo(*Set) 6 # 对range对象进行解包...>>> demo(*range(5,8)) 18 # 对map对象进行解包 >>> demo(*map(int, '123')) 6 # 对zip对象进行解包 >>> demo(*zip(range...(3), range(3,6))) (0, 3, 1, 4, 2, 5) # 对生成器对象进行解包 >>> demo(*(i for i in range(3))) 3
解包参数列表 当参数已经在python列表或元组中但需要为需要单独位置参数的函数调用解包时,会发生相反的情况。例如,内置的 range() 函数需要单独的 start 和 stop 参数。...如果它们不能单独使用,请使用 * 运算符编写函数调用以从列表或元组中解包参数: >>> >>> list(range(3, 6)) # normal call with separate
提取出来 (如果系统包里面没有boot.img,只有payload.bin,请参考这个教程提取:A/B分区系统提取boot文件(payload.bin解包boot.img) - kenvie) 6、打开...Magisk APP【安装 – 选择并修补一个文件 – 弹窗文件管理窗口(找到刚刚提取的boot.img)- 开始】 7、修补结束,会生成一个名字为(magisk_patched-版本号_随机字符.img...)的文件 (每次生成的随机字符都不一样,使用的时候请输入生成的名字) 8、手机连接到电脑,把boot.img和(magisk_patched-23000_xxxxx.img)两个文件复制到电脑 9、下载...温馨提示 如果刷模块不兼容或者其他骚操作导致卡米的话,可以把我们前面提取的boot.img通过fastboot刷回去,恢复原系统,一般都能正常开机!...boot.img保留一份在电脑,避免出问题了可以自救下!后期系统更新,直接下载全量完整包升级,然后重复上面的步骤就可以继续愉快的使用Magisk了!
本文主要介绍调用函数传递参数时序列解包的用法。在定义函数时在形参前面加2个星号**表示可变长度参数,可以收集若干关键参数形式的参数传递并存放到一个字典之中。...与之相对,如果实参是个字典,可以使用两个星号**对其进行解包,会把字典转换成类似于关键参数的形式进行参数传递。...对于这种形式的序列解包,要求实参字典中的所有键都必须是函数的形参名称,或者与函数中两个星号的可变长度参数相对应。...# 要解包的字典 >>> p = {'a':1, 'b':2, 'c':3} # 带有位置参数和默认值参数的函数 >>> def f(a, b, c=5): print(a, b, c) >>> f(...>>> def demo(**p): for item in p.items(): print(item) >>> p = {'x':1, 'y':2, 'z':3} # 对字典元素进行解包 >>
这里想到了2个实现方案: 1、使用官方的archive/tar库,自行实现压缩打包和解包的过程; 2、通过os/exec调用shell命令,直接调用系统的tar命令进行打包; 这里先介绍下方案一的实现,...解包则通过tar.Reader读取tar包的信息,根据header.Name创建文件然后将内容拷贝进去。...= nil { return err } // linux文件有很多类型,这里仅处理普通文件,如业务需要处理其他类型的文件,这里添加相应的处理逻辑即可...= nil { return err } return nil }) } 解包 解包的总体逻辑基本和压缩的逻辑反过来即可,即遍历tar包内的header,
解包 apktool d -f ./RetroArch_aarch64.apk 或者 apktool d -f .
Python 中有很多很实用的语法糖,这些语法糖可以帮助我们简化代码、更易理解等优点,接下里再看一个 Python3 中特别实用的语法序列解包(序列解包是 Python 3.0 之后才有的语法)。...那什么是序列解包呢?...只要赋值运算符左边的变量数目与序列中的元素数目相等,你都可以用这种方法将元素序列解包到另一组变量中。...解包的使用还可以更有逼格,可以利用 * 表达式获取单个变量中的多个元素,只要它的解释没有歧义即可。...序列解包,在赋值时无疑更方便、更简洁、更好理解、适用性更强! 运用序列解包的功能重写上面的代码: >>> s = 'ABCDEFGH' >>> while s: ...
调用函数时如果对实参使用一个星号*进行序列解包,那么这些解包后的实参将会被当做普通位置参数对待,并且会在关键参数和使用两个星号**进行序列解包的参数之前进行处理。...# 定义函数 >>> def demo(a, b, c): print(a, b, c) # 调用函数,序列解包 >>> demo(*(1, 2, 3)) 1 2 3 # 位置参数和序列解包同时使用...>>> demo(1, *(2, 3)) 1 2 3 >>> demo(1, *(2,), 3) 1 2 3 # 一个星号的序列解包相当于位置参数,优先处理,重复为a赋值,引发异常 >>> demo(...,尽管放在后面,但是仍会优先处理 >>> demo(c=1, *(2, 3)) 2 3 1 # 序列解包不能在关键参数解包之后,否则会引发异常 >>> demo(**{'a':1, 'b':2}, *(...3,)) SyntaxError: iterable argument unpacking follows keyword argument unpacking # 一个星号的序列解包相当于位置参数,优先处理