From 72acd987577cf3a5a4c3e0e0a4966471ef59bdae Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AD=99=E6=98=A5=E9=98=B3?= Date: Mon, 22 Dec 2025 22:19:12 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8Dunyaffs=E8=84=9A=E6=9C=AC=20?= =?utf8?q?=E6=B5=8B=E8=AF=95mkota=5Fsingle=5Fuser.sh=20=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- tools/scripts/unyaffs2tool.py | 5 ++++- tools/scripts/unyaffs2tool_singleuser.py | 5 ++++- tools/unyaffs_0.9.7/mkyaffs2image | Bin 0 -> 37696 bytes tools/unyaffs_0.9.7/mkyaffs2image.old | Bin 0 -> 37504 bytes tools/unyaffs_0.9.7/test_yaffs.py | 6 +++--- tools/unyaffs_0.9.7/unyaffs.old | Bin 0 -> 26632 bytes 6 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 tools/unyaffs_0.9.7/mkyaffs2image create mode 100644 tools/unyaffs_0.9.7/mkyaffs2image.old create mode 100644 tools/unyaffs_0.9.7/unyaffs.old diff --git a/tools/scripts/unyaffs2tool.py b/tools/scripts/unyaffs2tool.py index d05e3e3db..6dbadce51 100644 --- a/tools/scripts/unyaffs2tool.py +++ b/tools/scripts/unyaffs2tool.py @@ -85,7 +85,10 @@ def unyaffs_img(binname,target_dir): except OSError as exc: # Guard against race condition if exc.errno != errno.EEXIST: raise - command = "cd " + target_dir +" && " + unyaffstool + " -c 2 -s 64 -b " + binname + " && cd -" + # unyaffs 0.9.7 使用 -l 选项指定布局: layout=1 表示 2K chunk, 64 byte spare size + # 格式: unyaffs [-l ] [-t] [-v] [-V] [] + # 由于已经 cd 到 target_dir,base dir 可以省略(默认解压到当前目录) + command = "cd " + target_dir +" && " + unyaffstool + " " + binname + " && cd -" os.system(command) os.remove(binname) diff --git a/tools/scripts/unyaffs2tool_singleuser.py b/tools/scripts/unyaffs2tool_singleuser.py index 752c48777..7c2856302 100644 --- a/tools/scripts/unyaffs2tool_singleuser.py +++ b/tools/scripts/unyaffs2tool_singleuser.py @@ -85,7 +85,10 @@ def unyaffs_img(binname,target_dir): except OSError as exc: # Guard against race condition if exc.errno != errno.EEXIST: raise - command = "cd " + target_dir +" && " + unyaffstool + " -c 2 -s 64 -b " + binname + " && cd -" + # unyaffs 0.9.7 使用 -l 选项指定布局: layout=1 表示 2K chunk, 64 byte spare size + # 格式: unyaffs [-l ] [-t] [-v] [-V] [] + # 由于已经 cd 到 target_dir,base dir 可以省略(默认解压到当前目录) + command = "cd " + target_dir +" && " + unyaffstool + " " + binname + " && cd -" os.system(command) os.remove(binname) diff --git a/tools/unyaffs_0.9.7/mkyaffs2image b/tools/unyaffs_0.9.7/mkyaffs2image new file mode 100644 index 0000000000000000000000000000000000000000..aa49b9ec4118a8f8dd7c7719fb069f5d50ce4dbf GIT binary patch literal 37696 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 AGXMYp literal 0 HcmV?d00001 diff --git a/tools/unyaffs_0.9.7/mkyaffs2image.old b/tools/unyaffs_0.9.7/mkyaffs2image.old new file mode 100644 index 0000000000000000000000000000000000000000..086d8c50f11b33bd1ab95e1ece13af5a7e9f58b9 GIT binary patch literal 37504 zcmeHwe|(h1x$kVU3rir`MM+C7%Bu}6ScuseJV8m_O*Y|;EEt6-RB;K(hD0{IF}tf^ ztqpFXyj@r6X|1)|bLp*~qo>Eur9HQbwAu|=0+hDVW35)(M(dB=Vl_rZL}c&xnRjOM z?o0NxpL6g1+&^vxvNO+jo_S{Gncwri^Ul{AeN9Cc3zMdpeTfm(U#TN*;gR~faKLi2 zT2_kR`Rp7v4YZYGy1!eu;H#S#it=r{z>8s1xVhw*#Ga?aOxiMqWK+08CVhtPBW>o? zX$of}r$Rq43jfX7gB3b0ZDTkdUyI;3*-Dv?OWPQZbh9U@`|r6W-(ELer#Idx93q{h zE(&*0ggYq0NqdYk0wZmyPf8>G)e3!@Z3TX06#mPYIovuC&TM-HzqBb1GHYIscKlc3 zYZ2i#uGi(5?ISwOq%GsS0^vw6f3FehWLJv#3YCK@@-1zlUUosSd(%ZV7X&+&1iM4A ztxLAnUbN(*n#xGHvYID>(nWDlom#QFm7&~Hgb8uHEanKB{NH)$8>Jnwi_U%XJ7=A6 z{=~BGUE6`9QU=9IJY*=mXfiqa^KcOl&%b3m2xk#t3poeuv+tbuOyJi&%f=J3xd@*L z>kn{>rZEA+wZ8ycmYfn?;P+?hQC#S|5yS1*9Gu@Er4$=fPc9F z-dq5GvH;#*0RLJ6d`1C1TvCAl@dEh01@NW<@=q4v|2Fs)_?gWO046K1e<&coq5%KQ z0yxQ@OunOl{7VbqH3j6%FMxkg0DqtW{t)6-;Ab|A3Z!Q@7-zGym@=S;kp1pi;6KkS z1oZQQ-)-V&=#Sc|`?-j9b_QdSF6Q_5_H~D%o&NT&EiACLJIeY3Z5QFw)QO)%HP@69Rv{E3MdLkTO<_ z6@lCPb$^LVdZP(H=L(&#*MwhsrH=QTaIe63n(#jfIlD}Fli=TN!eEbxscJXg<6_zc0{Z^Co++=Tx|@b5C=r2^k=!gKZ9gg+DR8F=m-SFF;eQnTRVMsX0`E29?tVSK9R=`R1@Juu z@R0&|x&Uq;$j|Rrw^ckWkfz#Tbm#@q&6 zt|`e|HQ=)i{4ECj3yK z1HRLM8yAz`G2mw#_;(rba}4;y27JB&-)+DZ1HQ+ApKHKV2K+n&e$aq_&VY{?@C62Z z$~mQhDGf|%U`hj18ko|+lm@0WFr|Sh4NPg^|91_%=Q!tt8h^{KCTuVIv8)|TMT@c{ zYW!*Yey*DA((hi!*m!oq{jePK8S!_K&v@pQY&N@-)3nhro_Qum(+0zMW++F~#=>~! zM>(1{6vi{(&(XArF`oHGj;4);@yzxdO`8YfnHzF6Z6u6m+Hy2)AdF|O$kDWMFrM+` zXxcCs&$x0lZ4``W&dt%ZK`@?~oug@EU_4{V(X=5jo_Y6_%r9*OApbdej@X)aQYQVqjo&Hfog}B@%jNec5Oc0W1<5l zdV`5>HPNd~bfbx`Gto;;^b!-jz(k*IqRUNmsfo6k=ufW6&+i8&`mZMXbrbyu6a8Bg z{VNmw3lsgMiT;U+e$+%iWTL-kqVF-$NfSM2qQ7dQV@BF@m8aFSwsnoV{VjSXrN(Df zFq3->HL62RSQpS0?F*gcn@OS84e2E^X>zGe_Cw&r} zd;1X%>;o}$Oiy{xd%?$*N{_(Lr~QRXRg+6=7c-{W{{3c3So%TuC6@j(h{0oy9cQ5j zQWJF!w1Qz<3?TJr>R>injhN=D$+JH|eL3nx|EVUv;#A}No#a{W)8064e@ev-wH>)Dc~-s@Z;h zWI9uS${#E$6n^QFDpFRk!l^4syS8GkI_#}bNY#n8cRCa9S!!aHQ!9UvLMB>~$A5wg z3T#JVV$it-)Dx#LK&Z)|RZuNRI9(|&(U%NX*xyrssFF|=h`MKe)0#EsUgfHy`Y}qZ zwld0J@_~vIpeEw=4mh=MRiuFp4^+Gbt7zKirXvg&Z~G%&0Rizo@bn))rV@U~m;5&_ zF#T)LYO-|be8%=t38>niRLxi61omTK%~~p9`zM4a5XD+r{Y8p@=`j2VQUKizcl`Kt zA{T%uTLgbC+&2ri8}6;-hWb=QjXLUk+R0;2*gj8jCQGjsycG3S zaL13^R4q!;F1<{6QJnSUMx1jsh%TR;%(hE$yg>*t!bK&iHJcU^SqVg46e2X&a{m>6Z@Pue{*E7!(7%;O>(O~aO z+Acwayi%mMp>ce9y=IHuq_?t%5h8JR;_!6lP1rgJe918|giudVq}23|?WGxnI-DYb zr~+PXI2}2W&4T}01am!`s9OhH)edMccs?BST83TEYD3!ChaY;hBiguZu=k@g@hp1U zm1@*pNxz5ijf1Z_cGM$!Px9Id6!elGgCkn+nD1tZy5HZ3WR)|>MYAj}fA7$Amj0)Y zvRPi}8BoQxKjF7|St@E*(Q{l0zxYv0{NrqF9};#yf>Sy_Cb(_~C^V&i#BX{AkVJU| z2>P-s5ToWy--Fa7>e_*&zY8Za&5Izt0fflDHmup2h+!MT8@izrROhrI6qEwy%uQ5< z6M=<#eN8U)e}Q!PX8H%mc^5c%1lb+7{WYdP4$6!m3{v|p=tSu|_;saFJ3f!D4gCX1 zy~qwA%FMM;ey&$de-4u-&GsX(WG+SDrzT1*=z;d0g&gvvBX7-!I{gymwoU_IIt3@- zZy>?x3M6OPb{$|U+RSEZXo=FN)HiL{?h zl;)*YX`2T~7WcWx1mS2Mw)=p4cr!$21o|U9J0m|d58L~~jh1K|7j85W+n8{>_fX`y zcG&D_O2tpu^yZkfJtw#*_9MbgG42;`ifylOQ*1vHZi?*@;jZ1odjm()K9w3din0~z zQ4{*G*P&jhkAt!E)$LD@DQM>hv)63!TrFqi=p%e%{30N=FY90k=XaK{}KVVQfXB{${ES(KnO_pzj(p)LMB2syQ;ghRT z2oFQX-eshdMCn@qWO;XiKYf(PTlX9>evKH>+KF+$f${MQc<$2~e@Kj15#th_@w*1b zt4QK~I^%7`xP%x{t|ajW1LFo_?A0096Qh+F(YAeLXRL08gmrkHFI!F#;rszcMg(6XOw`@h8N%(ID|b10&bt z4|K*miSZu{j9)P@ZYGI0>x}KhSVoLO;a3_MTRsQRD|E(-iShLhz*wWFagl+sjwCMB z8D|sY&kT&r!002!EIg6xbSvE7b{!a8K z>k$JQ)0Jc`J02~^ETRm4v~-=39d*p_C&~MT4gN)(f9ZK-Ejp!YW9rb`m#Ra@i&e`3 z^_f%AIS}xAi!Q*P9qr`n7#W_{xBYczBP@%3u@!Tvec(h_@_G~#o4Nxa(jSeZ`E?+P z2W%g#MK`+vVRP|Q_{>f46zOSIwNKI?A_Rtz1Ul4fdm-VD_tDGQTH)LfKUk#MR>HMk zPX~op6Q9}x30Za7r~BsZL4VF}LZ(;S1$eo=Z<^!Yl;g3~{?45(>yYCwDo7&6=5!?q zt~(h<7xEj6R`(tp>GOe2lmOE6y60-l(6#3=N!NbmS?kf>UxUC~6KB7_Z@O_(-gppW zh4zY?Y;dSUX{$OkYE`v;>h@RJ7}B=r8C5&1E_)8;A*cCwRvf35Gr-u<1z9-NMNgxY z9D^4i4^VnPwe`IC*L8;mn+Fyt<3+=;(kaa$RrSyZj@0g$^Liv~H0e{eQ?=heMYxJiw~SJjSYeOX{cdPF`|JU$l@WQsYqhW& zgKC1yNYvdO;=xqyjZQ~6$z#UYb4G#-cFguw6oEV|?S7ZabbqW;O*9^y==B@aWZ(r? z>KeVn_xO2zQsX}Bah5rNp*KC3#@}RVH+t>8dr6harI%vK4i%`d((55MU4tK**G!b} zDNk#&_FK=|HQIY9-i6w#pC!u6kPEN2Y7bKCOMKO7Sb_1vPSzVrdPv>=ieA#cR<(E4 zWk)6}=_96+eiXAosXd?8xVu?zfhTeTiUqy+UyrqIK3=Yt^O#KZeIfqot?~ADPVAMq)Z6BggLz!Ys8J{4hPy0>! zhmafp80)ArkQ7g%QE5)J&c&Q|4*Z)FjjD>J!YsJOG#Ai1IOplUU2rP8b0M5Gmx_OE ziQNpYD$o_6(UB-{(s_)8?dw54#T~SPdV*?`>shbHhwE=)QmrO7P%+Qri(JRxlb8un zQ5y=nb7%Ucw|Qm07qg;ahH;an4`Hr!RQ5;lkBegW`m_^?5;eZhn%tf}b?VfI&zyU3 zK|f41qYVvZoR9SPLwVjIHF;T)>hM0J9dNS)YW(-bzD3yU+ehl%1;LIx<|75Gk^>cs zkz7}*87r_FxSF9=LddA`H;?<^bC0`>~;^z-Eq(ZwUM94@hf6;!r6$Wq*eDJl3*$)9U&JXd^N&D zlZy~4EuDv4gixXB2)PKMveFT95kf_#Bjh4vVGbb|AxCluxd<7_A><&p@hklJ7skn}$yCA25?KhWqBgX;ik`?Mj9o+FH*zw1Y3{MJ5nu^9Wef5hBG z4$U|W4)nSl!iWdRemLe_z;@GimI7eV4oxM>TU9aT_h}gn2ijb8RJJpbSxd6sqTREc zVzX6&2}^siAKMHyC6X$<)WnmN=vD2%ZybEqao3An`7dIfk+i)GF4B*hw3g9m zA0IuXKJypVGSZy1rqoMn`$CR8`k`FkC91t|ljDvk+=&+F;Ip^3AsyvN2iJourQNd- zQSkDhf?K7Hd9{xc9K4=Ag<8Q9Pf{{H+B0h69mk>}$O4&*+LP_Ya=q$787L?PsxKDuE|hiT%JL9^6B+B)0` zD)T&VsYp(rCG#qJ+=+Q_&!-T{otQgkzM#jNCE)%v_GnP6nO*{v09~SpUXS^DeZ6*_ zKXW7GBgHNXdnpME0PrOTM~BXm=iZ0v@o5MZ)k6eK`=AubjHHP~iK>Ai6;)UJ=qWTIY+fM;>3LYOdA{tqCd0Sx z5_Q35iZsKQsI;|Fel8{aDoBl&zSn`>hhf|6umG~m{YWWN@!!jHsYw3{X`QH^6J>%V zi~TK8CJ&oFf9<3u>JgTn$W(YY7Z$ST5tH+SvAa}{tNTv=rp}k=G$>J z1%GHRq^GNqR9)MHsclP9M5pjrDgD5Eh&aLH&-@g7J-{C(d;oanUjd*^+o6EW5h_J>-OVUxLS?YTvU{RubQ%7U|WVq^P}#C#jHq+M^syJW4I^=y{&_0gG3A z8$GF48&Cg$5+bI~)Vco08=UrOZ+NwA+J>00i8Yw|+9AY55ke@*Mobi;FTrJ_cm5)T zp^#=E6QZi57b38pgme;8GqX@D(hVd(S@$xYwWaUHH2vr>mgCp0Kc?jedHKRl`G(m9y00 z2I|h47EuOMThCSzVD7|nX%lTrUnA$o8Wso*q$0K*6(Z{xZlLKNf-ck!45iPGk6MP_ zK1XY)(njKMShl}PEJNveT4b@-P=g5L$F0#>+Cf!os6BcwjeFWk_tCr3Z~PhcgzKO3 zPxG2)?Gw-1X6-qyOK4It>mhz|HcD0GqMuUycqpY((|9NSQ{-CP;522Tg=a$U@nQeK zmyA}-;w6B_<9f-57G=S(+?-rn;q+)A#;xJj1IL{TAL$76G*d+;;c;~I&-YKcyF z4S8JqK70nfp+&7@&`IoNuQuZOa3nt3?};BQ*7kXKG!?}Uy9W+A)P35%_+iC!Y@gfF z$lcCkL(*vntO(e8Y)Cqb06PV2IW|Pjz5OWO4@Y)1p<6;UcH!$jHYA-Cg;l_aLOLmm zA^{@`=`8XfCjz#_Um+)?PdiPYo~s;>m0>>G>UBJJV-a6;w>lmRS=LmSxT~+Xc&q!0 zw8Jz0;*5$3SQY{T4&57tGj>kSqUxNAq)qkSxPglVSou0Dn zPcMMe@($0a(q7kCe01&dwXw&v^n!lyky_pEW4};Tkqrfe zT@udt>sT-93bzj&QbjqCk|kUO-AOl8P~^o<07499Z1GpD+Tr+N6vF`&$zgI^Jn=W| zaP#^3f4o{XXZjv$3z;?4>O}oPep;Dl$D9gsSUfw{R#?bYM6RM-jwU)}s?USRqAlL! zb(nrMx(>OH@p@POO^o74tvglipyRPwRP|<+c%ao+EK$41HRL+rLETHLmS*g?yyQux zi?lwgcL&mcnH^n+n?Vxf7yzUIPhR_}$~cE@99 zRL|Bv^3KSh#K*le-i_8ZY8k}nS@sc%bOc3;`d7ZZJX)2e=d)hz9Teww?)ng=c{N53#@Kqlw(WGByw@zx_h5B$GIa zo-$J!n9{(M2BtJHrGY68Ole?B15+B9(!l?H4Os9#mj0EUo-NzjIy)oP-92ra1C{M8 zg0Ja>I~Shc8(pL@vY?}ce@}>i`X{ojM|z*PAaY&_ z>+B8&7AyJ(hZb}w9c|GzrM)W_+7eMH{n0?EME@#KB;39QpDOC??hLbb#M9P}ul6V% zfg8Kq18ft%T(m_J_yQ3!67JiE^syqCUn6uG#B zHEwO|=?wXmC2L^e?V+vx*G zB`k^$E7c(@(O&v(kK9aFFDFV%SbbZE0<~@q`Jwn|w40K#h03HvFE3pK^aZC<%6A|C z9+T1?Y7bK?@ztc&;ZT6NHsQNawe{Pgfe5Rv0TH>twUX6TN!LX=Y^kf7Rl{o~t6j-l z7p-JaZ76(Gi1GZzdVBG$B_-O0ZucH6c%uvX4pK%`fo&75`|q|RZ|PrWf!qp*RpElJt%6WAsmYKg@ZxV3A{>NC0p2Plvp4Xj&1Iun%*9OCS|>B>+5UV#$P!Ab6zXC zSmBLD*%a#zc65g}qcVqsN@uuFS?_6TT2swEqROhaZHlW}sjjNNFh4ximL-ZuiAB4E z-O+8-7JAyY1fb@CqBll8f|3%}8bPbPSjmfC`3h>-SCy~uM8NI^3)K)f1MTfpi@%DH zx&f!68xo$YnM$-TfcV17rhp=zlv|YQEjm@bQsFffHB8S4Bul<(@YSr;DcGm+i422*($(0|z+3U@ z(dWrS-6T4O&!Z{S5H3I?P$0<=Zw;l7{3IVIE^uv;e0e2;3Z+zD&=(FzJ0ps2`D?cD zAeFp8m1?Di>npz`FLM38;qp2XeDy7Y=Czp0#n07Ur%*2nGtoEEx7P9skoqa~4iif1 z4xw-tLk+wNQ}qaRw#9-`<;J#PERfR-FSpBcU5)H$DofC9>0LN__Ye}0t6trK2zjpd ztoG_R7lSvS=|CtP$YqWRb2IzPlIjhr^q= zoMQaaW+pv}{7;R=Qe-JADyF}p;$o|`$z5!<+RU`X$V z922DT`D}I_a5rpvpQ0D`4%oY3KM1@3g>3dY*kdnevsQ%LjYmB-uv4&8uy?)&f7m0i z>GhD2*R$Ehu>0{utQYn!*aNUfVSfkq7@mUu8|)T5B|ix}1>1>-e!KpX&2EJ4#0w)2 z!zRO@%)z$c!+DmiPRnO!O}FnvS_r2X`KzAGW-oxvywjazRp74%e|vtB%_>L}D|0rL z&ArSq^Co*gyY#G!&%dzZJfJ-MwXk;&BW?nOA-PffJxn--7l!nCC;oOLzViw5lsRuN z@|V%0KMMaa{+@=PZ1=?fGyIJLqqo0_-&1B^SqA3CAYZ`W`|zXJvvgSvrPI837vE)V zOxhan#3T6W#b39SAh+I`#BT@RgD8(S(hHB!X4t@z4zyM1N5>Wf>8%O0-xm+h`^D%(@>eZphIC0UQXL=7W`D^Mlrd~O%Hn?_eg8mMBkA5- zHaA|}RHm#dDVwV+w|*wDRb0P$5hh-wmQ@vfy@Ye9GnpIsM({j<$Fh$S z&qN*@DUV3u?KUsv(OcG1)POW2*Tyt^XY%wu2pM*?1*$t_C=Yvp%>l;KE3hNL+`z2J z9~mG1Mu9CyySa)m9{&o`@ntz3H&XmX{*wHd8)p_B$VU*I;;lk^@}d3V4L5Em4ll5W zfxSq`L>#;vc^+5tIM$isXqZ{lShjGLp^Qit{=NlywP?!$A@A;@=CZkW6+>r9D?;2! zI=g+ET2>pMzM{+>Dyv03f#wijuC#etUxu8GkR$6HiJLN08ko|+lm@0WFr|Sh4NPfZ zN&{0Gn9{(M2BtJHrGfvK8j$x?$a^Wo5}xnLQo3fz#3{O?RM1;#!3={lV%*64FFq@1 z{^~f~^j!-w@*WJ@+ae?VKRA`e0b}fuVa-fNu9+X^$6mx;O~6NlzrKqs&M*MicUSa% zK?;wzSM!Vr#`fH*!`PPKX0Gs%dmAD;hPSu58FA>g#F>a#rh7yrbcW!keK9gPILwXY z!x;>oKj@W1c;A@QDG?B_@JfFk4ySB6-6i~Sbc@q+zeR}uKW54M(98m>6diF3yG7U= zh21Oceqrwv_AX)X7IsS5Bf=gP_L#8Qxr`g9uoYof3EM5~7GZA`cCWDeg}qbQyM(=4 z*ePL;2zyl6W5Sk~2RYBv)1e5vO4vI3_y5}aC+D?TCdVZz>!qwe5|_5TA4Age{ufDm z#r+C08hPJ~q~$#?l9u;g$av+wE|Qk_xky^x<05H!e~YB${TH&m$@^L)E$?ZOw7j21 z((+ywNy~dMXj_~Cw7hSn5H0Ulk^POlS4GnI3Hg$i_ozr(-k&0A zd2b4BOOuiJrAS)dlOkz(KZ>N~y(p5_rRd);Be%Ky<-I79&s_fU9u!&L^8OP^o6BF` zcOuJE-g6>pbNRj~^drkl-e)3dbNR{pOJsS-drKrO^C9&q>70#(Q`#v#Zu;xT4;g_| zyzB61#z}s^2`3r!XXYo2(*+#5K~j>TBPHXNy*3PW-2*e8GYy;t6HgWg9qJkwQf?}%5Iqyx8=rPgBVDe zmK%5T@###C&-u8W$#E+mpTXpKmycsml>@rLqZp&Q9DfZk(u3KEVnlRzF>X;+CdJE` z`@G5c9js+i+{rdpOvXQ($@z}ax0s!QhkZswcNeoWnY@qF=v$1Zb5&n9B9gy6cYm1C zw;0E3<-92$|1_Iy+%Cq`Q8~}a=f^Cq--zh$V#9rUM&Dv4XK@oKwLL3)mrl6mnc1L< z@YJLC0v$eI_|m~(3*?XfHyxn%L*`uk5&oJ9{{nE5vrEX4&l@ik_=vzi51LFP{)nGH zM1z|@Z-jjX{zyK1PoKHTdDwLVPn+WH6!=>vyocjwu!UE{0VC(Zx5G{Gj=DI^_;X7* zzl%SL_hpluM+AS%MLIu!ZVBg41^<|dpZXXJX4OhR957OEzk!?Nzi;CIt-#qXILNHg z^ZiFSNzTSNNBMJHa*c8PEM^z_k@BaZfF~_q;FRCpvOsik>`Z}=n()sHT&^bsJ6jH% z(ytEa2uN;La{Tmq-Y4Y9^@(6-w{rf|+spTWPnP~4asD${t*IR8EZt=MhXwye!H-09 z^GX5!ze;`@OvniSLi)5|FtMN?m`4@TWF||Gg9ab0YRvtB!sVRa4=fV=ay=%apl8Nx zl78uOF6Z=q<0J;+qDlJO0Qk>9edzV-lI3_E6F770xLmIca$LuZzuy=9&N>~Ha_Ex; z=v7ZM&lkYoFM!X$IH#N@g|P*|C%Z?q83|BmHQS#bXqn(2F||8-_Dp(c@#y^gIX9eF z30x8RlF#~Y;CQ}lqT&VcZx_Jd!~}6N{m^?SlpeQRk3&9-|0!@M^5qomPWNSOA8^vc zEK@%~>+H$ozg_?jlm3fNA0Lkw;GbokT>g0l@Glj>uPA^AIqqatU($1WLS&c@-&1~_ zru=@hfSi9RfYVomXG5R%0bQ^hU!E<%pDuuZEabTRbvcS|vFWIXlj;961@KyqV?4T4 z7a;dDRsg4RXZ=F3u+|ok69P{9nPbw=R^Up$2u|HmK+gRnrwID#&kyu4myeu@`4Y0v z&Ep(Di@jiKUk3}w|3d+Moa2}ecy+k}A-||Vd-)W{oor0BQ`ujA7WLT)Jp3oCo3O9t@-dFzreidI zlL;2!zqJ7Vj|K35mh$_#SnBk-`3c9*V$Ye%<>y=u<^%OQU$+SMTmkuS6u?iAeAE-O zex_miGFkmU7q}wgGFq1aKhFpV_tjhu`T@}{_@jkDgUhu`457vpJ7Qsrq9Uh7H_JwO^<7nE73h2G%C^~fz(Hm+T}-rv-^x?yee<*WVv z%B3~c)k1*&(y+e^ry&BkrdmH$;isFS+d>Rc(Tl?V+*`sd}khK*b^z5^aurO?~6vFc%c{hpSaoCAMNqucIgmLct_a3IT+s57W8-E zgh<5S7Tbyx>PIU&Dr>7Qav^t?*cHlP)&Tm6ly zkf37k#=pXMdA-NyzZ}OM8rS;Qdg^_RB$Z#Y-5!Z?b>t`g!fN;%@B4PU#>k9$5QZ+?en?$#q;?PdZ|vFcEMflo%|SCzVB&Q!{>YJc@eFz z78Q=lLcjPO#Kisd6QQUwPaK*v-4u`Fh=zj`%(^B!B4NLN2n|=sUk>RwROF}ADWZZ! zahNTDd+Q@x5GTLbK3@V=BlMT~prJ8Rhr@7;Ar|S%=h1UFQBI6^SJ2drh-edfVZ8(B zY3mLF=mkn8q33uS`$3w?pj7)}Cx2tfnFTHdqz z{q0-Zs6)e;a&sVG_~}*Mm{h%&5UE9}BFFi`(IFN}539scNObM6QD?Z_C0!_nKwmGb z#1Xwf<>pYVlE!D8Ox$LG_}R227%FuxPkr+e^reimci~(dtL)eoLKM0k?bCf^r616^VS?CO9tN$E25 zp->MY-H58KryIib;HZiWGm)Mi46VjV&41lZ(_Rby#Pl(@UoH2o<#S&d1MwQo=Rjbp zl?yNTwWX~Xnc(zt)^fcQnH?hL`)~(pF6T=J2##bPUgG zW&U@G_@!MX!eiRYjXC{oKOkJ3oGli}raXPSo-iwrOK=cUcR(+7WP z%=*6p9`r0)hL`*J(!Npzlt-fapmpKnOp`8VQ!!W3SvPo-V1=<&&48Ly;& z4u>)Q@_C80<$EKN->ko1i14{&wg^sPZ=4}R>b8@{-)#)f`UPjNZqqq9qfv|m z+_MmvWXbrI0iD4q#;4;UnQ|RhbSw8eTf|?LLv)7>|3wo{X(eN{W!=$z^k27#f48W> wX9He=KbddY|5EjoY1c#Qzhm2V`$zf7&&4ZwXTvdB`0r~v2YpA`XiOygU(6(Z3IG5A literal 0 HcmV?d00001 diff --git a/tools/unyaffs_0.9.7/test_yaffs.py b/tools/unyaffs_0.9.7/test_yaffs.py index 2fe6717c8..469c926dc 100644 --- a/tools/unyaffs_0.9.7/test_yaffs.py +++ b/tools/unyaffs_0.9.7/test_yaffs.py @@ -9,7 +9,7 @@ 注意: - 新版本 mkyaffs2image:支持 summary chunks -- 旧版本 mkyaffs2image_old:不支持 summary chunks +- 旧版本 mkyaffs2image.old:不支持 summary chunks - unyaffs 应该能够自动检测并兼容两个版本的镜像格式 - 脚本会尝试多种 pagesize 和 ecctype 组合 """ @@ -190,8 +190,8 @@ def main(): os.chdir(script_dir) # 检查工具 - mkyaffs2image_new = script_dir / "mkyaffs2image" / "mkyaffs2image" - mkyaffs2image_old = script_dir / "mkyaffs2image" / "mkyaffs2image_old" + mkyaffs2image_new = script_dir / "mkyaffs2image" + mkyaffs2image_old = script_dir / "mkyaffs2image.old" unyaffs = script_dir / "unyaffs" res_dir = script_dir / "res" diff --git a/tools/unyaffs_0.9.7/unyaffs.old b/tools/unyaffs_0.9.7/unyaffs.old new file mode 100644 index 0000000000000000000000000000000000000000..b510168852f586e695ba26f7e6a8be64334d2f83 GIT binary patch literal 26632 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 J(PL^|{|B{(e+mEq literal 0 HcmV?d00001 -- 2.17.1