From 37463c0c2e729922d8ac2ea242c3d50494bb2919 Mon Sep 17 00:00:00 2001 From: zonarmr Date: Sun, 25 Jul 2021 01:10:32 -0500 Subject: [PATCH] Linux64: v2.3 --- .bin/imageinfo | Bin 0 -> 18744 bytes .bin/minigzip | Bin 104848 -> 104848 bytes .bin/mkbootfs | Bin 22952 -> 27072 bytes .bin/mkbootimg | Bin 22904 -> 27064 bytes .bin/unpackbootimg | Bin 14552 -> 31096 bytes .scripts/Instructions.txt | 4 +- .scripts/image_info | 52 +++++++++ .scripts/repack_img | 230 +++++++++++++++++++++----------------- .scripts/unpack_img | 53 ++++----- .working/.gitignore | 8 ++ .working/blank | 1 - LICENSE | 21 ---- README.md | 46 -------- carliv | 57 ++++++---- input/.gitignore | 8 ++ input/put_img_here | 1 - output/.gitignore | 0 17 files changed, 260 insertions(+), 221 deletions(-) create mode 100755 .bin/imageinfo create mode 100755 .scripts/image_info create mode 100644 .working/.gitignore delete mode 100644 .working/blank delete mode 100644 LICENSE delete mode 100644 README.md create mode 100644 input/.gitignore delete mode 100644 input/put_img_here delete mode 100644 output/.gitignore diff --git a/.bin/imageinfo b/.bin/imageinfo new file mode 100755 index 0000000000000000000000000000000000000000..fa58277e09e96e3c8004fbd15dc4dd3201be806b GIT binary patch literal 18744 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 Q|JuRJQ${B0LQk;&2kG{H#{d8T literal 0 HcmV?d00001 diff --git a/.bin/minigzip b/.bin/minigzip index 1f181be9309b08bc01b5c30fd9e71b4d6020c7c4..214f8bebb6e8f6bbc0c94301dfd77c7c45ad774a 100755 GIT binary patch delta 29898 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 F{{g(clRy9f literal 22952 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 delta 9030 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 d(AYCKjt*Nj(MCmQ`l^owEN0i!eu<&yHU z!eK)%DKAbfFRQ4XojQB?u+(8g(`qWyh6uYUpV+Ifn=E>gepEqG=hN|zF~Isio?>f0 zTbVG&a@IeyF5Wfj$a{~*X0xsQhs)pnnh#{}FzDwZ@Xw9FcShhlBJhVs;GZ9X-xPsw zkHB9Xf&UWtD*lDO=715-4>v~OkBGoOB?3Pw0)Jct{`3g^+amB4#8(l+X_%6iS5;kB z;VQ{1D!ol9sjPBVC{?wt8t`je1x2@!omWy&R<6{zs>@MXQsZ>qrp$ECESg!RloXX$ z);L+^s;n(nW)_r}R~9KHcT|_ToJvWxv!IxAOdaIq&4yT)kX~I>;1a!}IfdorQ7d*^ z?aG^3P=>y$oldZ4%&e?1*m=s;xno9-${Uh4G;lQ}Ei-U^DfoEBBKqZj@x~Qr1pkwD zoHH??IS=G~J-w`~Cuh(<3|{ToW!>3slR>-AA|0!I2%4{>mHDFN+Q6}tucWGcaoH8` zlrLYZiEk`jqH3Ut&v`3f=_bBhi&!_@#5b?kHWS~xUO7yB>Lg#|O?(`6?9 zX(qg*Zf`e-$C6X3DvpL0mqi;7A@o%V z`bW|nI$yq^zbDNO_Gkhs4(|=od(HD12K5{bPx$lq>-)UiKU9H`piJCr!TIF@NuJu!_UTaJcJ}m!iyQsq@EJ7e9u}#;cDz8mD)&znx!fQ|#+f!TL~htZ$FcZFF@>+B3=8 zU$MTKqu4KNwbma(<+@VfnrXYkz3CIgC{#;K{H%HxuMA5Fc3Dvpol-mHT-QlRqD!_$et^bsQJ(=Ia zN{4&rIu5+{M;Kmr)NidHjdAs4Cnu#S2NWesv9ZCcqCub6(ZG8NV zJd1=QiXE4pDm-Itcm{GD^Ec98Q>WQ)u}`y4x94qO{LQ;NrmVKdyt`u|c`7Ukae>PU zKxJ(o0&1=B7c968J&UpR(lZYCey#O4zrUfyTE7b_0AB^iAz-1?`;#z?G?KA(*VaLakw{G>pw&!Z>~?~_%1~G0Ln8mzQEOk2InD^H|;sg+P@wbu%d25jAQ<> z82BHJ*~>PE`ztC@O{s3*8oI#C`LM42-h9RG{!-iWU(__dAv#$TsL^7C*0n2IE$f^r z*JQ{VQ}h#MT|il$KID7vH~IKn@YiiAg$>1!S(oKzLuW-<~7;{;_BgLv>U1WiF8QXH*yVy$$^^zJhW`xGtSzxar>3xA+(+X`ecnvMJ zua4;V3go!^bw^*;``>1pQwyNZC&$o+aPR9Tbt};d{wX@d-X>DS7x$dz-r;@Egt->% zx~#R3s?^S{%UZ_^Yr|0Ji81qn(ze5(x}$M!%W_cG`}gTpPm`$cM$3=JTI(<7g%)G2 z--~MPkuGSCKBq&ij27RmaGM@t8_}EZ8<6gPqamQxV#7OHz0$i0{a5L~U9?m9uMeQQ|0*HJ-S1sWyWa|Fy8oKkhVTylyM*dX z|MjMb&i*?E>{d$y*<5G#i7U8v;l_XYs#lFHC*0h;MGudwDFuMJ$;?5seu2T`egkK3Tn3dObb z%W-AF)jEe0LhJz{w*uE{nE>&8`MMDNdJ3*Shi0vo;YP)t`?RrWQ<5epJLXTu4`bXP zPRGjVsQdQ7_(@}0TWoNuqjmk(JQl5q-O1F+7$NYUl!208H5a4hhaIDv^a>Q(Qe0bc| zCm`(?icHjD7#HbYx}lySe`;ohM26qnmUiFME6-mJZ#vqW6$iy?zg zdx&i8M;z|9sndL$j`;n;U$~QsMVYtLm0dz^r^~@Wzz%0quJ3=1g&W=Lb*Xou(&64s zEoMNPXHxP&ZvpjWcNs12K6CO_Mca!i1g{0x_U1cL9br<$qmOLtpMYzAz7W%93#91N zMtL-!TI__Rpd+-WNwNyJ5ziTpy3O&8_xX<>KYnD}fUPO>@N)Uw@2n$W{r8E_&zpy} zCHoym;|;Oy^$u(HkBV-EWBylhLWWPPhQPpTLL2mzVX9#7*B&~|b@G`!Rf)alayU`D z4-AjxVK5w?$CK$Q+;ICEH(WOa;D$?&@`lUc(Bloh_+`2Zd+g0iB6veP3ds&neX>os zyFPgyJq_An&C{G@`ioAzsZ)>Z z6t@Xz_k>PyBL(V7om!+*eQ43ZuM0J1f5y;)z`6#hy#Y2$y&*(y~K7Rqs1`I;E?A|`;tk`E?AZhWZ{ $-h8~0N-kh^l(H;g18zJ~Q;$(n?s8gZtt2hqP zps%zU5Ef==#tZgtZ6Tcz(0ePafZot-4VCwnVgSToIT{@{DEqzcm^j#MZ{7gQ!Z`-G zSV+eT@X=JP09)vQ;0mzp&te5=hoqp{+EXN1g(WDW(d!6^YWDoEo)$8;Yx*E>4~@v1 zX)Y%G13zM%`&>E|0r>&+%V-f+YCTZx$*c!^%FPXjt@VGx`2m4&8W{HG--;vJ+Z*j* z@3p{%u6XKQ!rlYu&}8qcBv}>JUII>F@A*Q;c5NO6I^3P?EfefE?Wu#b_r)o&ccC0p ztm_|YNdUmY4Ah9Rv^VeNcy-$7q*LL*txG!yc~ISm97IRD!~K55feW>vm8-T*X_d_p ztzw{Z8}rj0gWiW7JdCXneRMME5y5Wz$1?7v-#x(S-s$}jO3PIxhX6gK*VwR3G&iDB zzx}XHZsR;#teASY0GQF@O(-zhYNvogEv{C5dIsemB;esO$-}5Dk4miFM!MTG_Za4MV4m)51lQxY7srJ0ci4m z4M|o-jUEC*Js)zv93^CI*G58MnCQ7ku-mkv{n$}coOi6r%Kw0in1|MmqO9>KvKyCi zId!;?WxG=@1w(rbkTLE}jidZ2tg+Vna26W0A=iCSjJNwMoUFB<_i+sOYyU=>?MeCd zMpf}N&8AOczVU7;2@I^eUmL0rv&HPViHo$?Rv4VTW693k01T#X!>X=g>fQv>-drAe z3~od#i~*%#3#vy?T^9htktDkAr_87#lJDHcS?= z;h+jl^{k#|ij54iGoJ&7v2m+K#KsjM?afa{_8RR$Y)~3v!vc6{Y}lGaZ1e`u6dNBw zM=z_Q#s&c=h>cM~#&+#*5Ev#lJc8Y(ZP>&439NU8DK@fD3n$Z6*%zg}IEf>-Tk8t0 z9AJ^VXoZs6?U3NH+zU)x0~^?zTOsKpOD$V@EWJ^LTf^LzT-0F2>jkOSH{-4tX|1oo z?%|4Q*80UP-PZb-S;kr$dc*1S?u;2=t-l0U%m?UqnZ1FiT>CxT77Wrx>a>d5T$K64 z^+u2yTYUuUVpP+h&1mIm6tJF~0n>x7-4t{~fke=)K&9ai2HkPAGX>oxP_t9eO#y~W z(-8L2vy7OMfVK==tRER)XoofWZYkbz1!av5luP+h}@C#OzDb|LUk(km~ln(+c%B^VOdma@cKLQ-i&I2M?xT3$c;SH3K;juQn5P)g{XbGXuqC#7X zt6(;&WJ&P+YHV3?c1nS$M>jr#`U+~?r6s(yl&hp#PQLvK6uo}QP(tjhv?+y;w305a+s`hC4+ zS6UpBH8jr9F9Bh)cqYk{d4|3M0>fCGBG_%(w4Jng1}*M*hW;28u<(a#pgBJ#h;)YD z3!F*+6(F$!8!`VsoT0^Z41b0$6Mb|#Lr)ZJ;|$&KHRHSE89IgleKM}G;no}R44njE zhck35q~Q#`630KBp;hklI-R4R78uhxdS^Qq4W7XmG3VlVZg;o1H`ldW?d!Eu=I`?3 zFz2?sHwJf6_xf!2JMPTkkiY(yuIrD-um3fn?(2K!Z{7+_w%c+CJ|ef*wclHJ^i+4B z7tq4pbD3yoX(Ey7!TY`4&`rZ+taPoSQy9n)y%<&Y=B0(UNSla@ptr{|7BJ@SvpqdW z;}X$63PtnNXlKfE&3hVNe-xFsKAY^FKNoq%0A8&X3>V4mO5%!qv1tN-AbNaM**h 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 Exit script$c\n"; } +########################################################### +bin="$PWD/.bin"; +chmod -R 755 "$bin"/*; +cd "$PWD"; +imageinfo=$bin/imageinfo; +########################################################### +clear; +echo -e "$bb +***************************************************** +* * +* Carliv Image Kitchen for Android v2.3 * +* boot & recovery images (c)2021 carliv.eu * +* including support for MTK powered phones images * +* LINUX x64 version * +* * +*****************************************************$c +* Printing the image info script * +***************************************************** +"; +########################################################### +if [ ! "$1" ]; + then + echo -e "$r No image file selected. ERROR!$c"; + abort; + exit 1; +fi; +########################################################### +file=$(basename "$1"); +echo "Your image is: $file"; +echo " "; +########################################################### +echo -e "Display the informations for $y $file$c"; +echo " "; +if [ -e "file_info.txt" ]; + then + cat file_info.txt; + else + $imageinfo -i "$file"; + $imageinfo -i "$file" > "$file".txt; +fi; +echo "Done!"; +echo " "; diff --git a/.scripts/repack_img b/.scripts/repack_img index dd98b42..1fc9caf 100755 --- a/.scripts/repack_img +++ b/.scripts/repack_img @@ -3,7 +3,7 @@ e="\x1b[";c=$e"00m";y=$e"93;01m";cy=$e"96;01m";bb=$e"96;44;01m";r=$e"1;91m";g=$e ########################################################## # # # Carliv Image Kitchen for Android # -# boot+recovery images copyright-2020 carliv.eu # +# boot & recovery images (c)-2021 carliv.eu # # including support for MTK powered phones images # # # ########################################################## @@ -20,8 +20,8 @@ clear; echo -e "$bb ***************************************************** * * -* Carliv Image Kitchen for Android v2.1 * -* boot+recovery images copyright(c)2020 carliv.eu * +* Carliv Image Kitchen for Android v2.3 * +* boot & recovery images (c)2021 carliv.eu * * including support for MTK powered phones images * * LINUX x64 version * * * @@ -36,6 +36,10 @@ if [ ! "$1" ]; abort; exit 1; fi; +if [ ! -d "output" ]; + then + mkdir -p "output"; +fi; ########################################################### imgfolder=$(basename "$1"); echo -e "Processing the$y $imgfolder$c folder."; @@ -44,16 +48,17 @@ cd "$imgfolder"; ########################################################### echo "Repacking the image...."; echo " "; -getfile=$(find . -name "*.img-kernel"); -myname="${getfile%.*}"; -kernel="$myname".img-kernel; -if [[ -z "$kernel" ]]; +if [ ! -e "vendor_boot" ]; then - echo -e "$r The$c$y kernel$c$r file is missing. Check your folder!. ERROR!$c"; - abort; - exit 1; + if [ ! -e "kernel" ]; + then + echo -e "$r The$c$y kernel$c$r file is missing. Check your folder!. ERROR!$c"; + abort; + exit 1; + else + kernel=kernel; + fi; fi; -echo -e "The kernel is:$y $kernel$c"; echo " "; echo -e "Getting the$y ramdisk$c compression...."; echo " "; @@ -63,14 +68,20 @@ if [ ! -d "ramdisk" ]; abort; exit 1; fi; -compress=$(cat "$myname".img-ramdisk-compress); +if [ ! -e "ramdisk_compress" ]; + then + echo -e "$r The$c$y ramdisk_compress$c$r file is missing. Check your folder!. ERROR!$c"; + abort; + exit 1; +fi; +compress=$(cat ramdisk_compress); echo -e "Compression used:$y $compress$c"; echo " "; ########################################################### if [ "$compress" == "gz" ]; then - $mkbootfs ramdisk | $minigzip -c -9 > "$myname".img-ramdisk.gz; - ramdisk="$myname".img-ramdisk.gz; + $mkbootfs ramdisk | $minigzip -c -9 > ramdisk.gz; + ramdisk=ramdisk.gz; echo -e "The ramdisk is:$y $ramdisk$c"; if [ ! $? -eq "0" ]; then @@ -81,8 +92,8 @@ if [ "$compress" == "gz" ]; fi; if [ "$compress" == "lzma" ]; then - $mkbootfs ramdisk | xz --format=lzma -1zv > "$myname".img-ramdisk.lzma; - ramdisk="$myname".img-ramdisk.lzma; + $mkbootfs ramdisk | xz --format=lzma -1zv > ramdisk.lzma; + ramdisk=ramdisk.lzma; echo -e "The ramdisk is:$y $ramdisk$c"; if [ ! $? -eq "0" ]; then @@ -93,8 +104,8 @@ if [ "$compress" == "lzma" ]; fi; if [ "$compress" == "xz" ]; then - $mkbootfs ramdisk | xz -1zv -Ccrc32 > "$myname".img-ramdisk.xz; - ramdisk="$myname".img-ramdisk.xz; + $mkbootfs ramdisk | xz -1zv -Ccrc32 > ramdisk.xz; + ramdisk=ramdisk.xz; echo -e "The ramdisk is:$y $ramdisk$c"; if [ ! $? -eq "0" ]; then @@ -105,8 +116,8 @@ if [ "$compress" == "xz" ]; fi; if [ "$compress" == "bz2" ]; then - $mkbootfs ramdisk | bzip2 -v > "$myname".img-ramdisk.bz2; - ramdisk="$myname".img-ramdisk.bz2; + $mkbootfs ramdisk | bzip2 -v > ramdisk.bz2; + ramdisk=ramdisk.bz2; echo "The ramdisk is: $ramdisk"; if [ ! $? -eq "0" ]; then @@ -117,8 +128,8 @@ if [ "$compress" == "bz2" ]; fi; if [ "$compress" == "lzo" ]; then - $mkbootfs ramdisk | lzop -v > "$myname".img-ramdisk.lzo; - ramdisk="$myname".img-ramdisk.lzo; + $mkbootfs ramdisk | lzop -v > ramdisk.lzo; + ramdisk=ramdisk.lzo; echo "The ramdisk is: $ramdisk"; if [ ! $? -eq "0" ]; then @@ -129,8 +140,8 @@ if [ "$compress" == "lzo" ]; fi; if [ "$compress" == "lz4" ]; then - $mkbootfs ramdisk | lz4 -l stdin stdout > "$myname".img-ramdisk.lz4; - ramdisk="$myname".img-ramdisk.lz4; + $mkbootfs ramdisk | lz4 -l stdin stdout > ramdisk.lz4; + ramdisk=ramdisk.lz4; echo "The ramdisk is: $ramdisk"; if [ ! $? -eq "0" ]; then @@ -144,184 +155,197 @@ echo " "; echo " "; echo "Getting the image repacking arguments...."; echo " "; +bkernel=""; +bramdisk=""; bboard=""; bbase=""; pagesz=""; bkoff=""; brmoff=""; bsecoff=""; -second=""; +bsecond=""; btgoff=""; bdt=""; -dtb=""; +bdtb=""; bdtboff=""; -dtbo=""; -acpio=""; +bdtbo=""; +bacpio=""; bosver=""; bpaklev=""; bhdrver=""; bhashtp=""; +bcmdline=""; +bout=""; +bmtk=""; +######################### KERNEL ########################### +if [ ! -e "vendor_boot" ]; + then + if [ -e "kernel" ]; then + bkernel=" --kernel $kernel"; + echo -e "The kernel is:$y kernel$c";echo " "; + fi; +fi; +######################### RAMDISK ########################### +if [ -f "$ramdisk" ]; + then + if [ ! -e "vendor_boot" ]; + then + bramdisk=" --ramdisk $ramdisk"; + else + bramdisk=" --vendor_ramdisk $ramdisk"; + fi; + echo -e "The ramdisk is:$y $ramdisk$c";echo " "; +fi; ######################### BOARD ########################### -if [[ -f "$myname".img-board ]]; +if [ -e "board" ]; then - bname=$(cat "$myname".img-board); - if [[ -n "$bname" ]]; then + bname=$(cat board); + if [ -n "$bname" ]; then bboard=" --board $bname"; echo -e "Board:$y $bname$c";echo " "; fi; fi; ########################## BASE ############################ -if [[ -f "$myname".img-base ]]; +if [ -e "base" ]; then - base=$(cat "$myname".img-base); + base=$(cat base); bbase=" --base $base"; echo -e "Base:$y $base$c";echo " "; fi; ######################## PAGESIZE ########################## -if [[ -f "$myname".img-pagesize ]]; +if [ -e "pagesize" ]; then - pagesize=$(cat "$myname".img-pagesize); + pagesize=$(cat pagesize); pagesz=" --pagesize $pagesize"; echo -e "Pagesize:$y $pagesize$c";echo " "; fi; ######################## CMDLINE ########################### -if [[ -f "$myname".img-cmdline ]]; +if [ -e "cmdline" ]; then - lcmd=$(cat "$myname".img-cmdline); + lcmd=$(cat cmdline); + if [ ! -e "vendor_boot" ]; + then + bcmdline=" --cmdline "; + else + bcmdline=" --vendor_cmdline "; + fi; echo -e "Command line:$y $lcmd$c";echo " "; fi; ##################### KERNEL OFFSET ######################## -if [[ -f "$myname".img-kernel_offset ]]; +if [ -e "kernel_offset" ]; then - keoff=$(cat "$myname".img-kernel_offset); + keoff=$(cat kernel_offset); bkoff=" --kernel_offset $keoff"; echo -e "Kernel offset:$y $keoff$c";echo " "; fi; ##################### RAMDISK OFFSET ####################### -if [[ -f "$myname".img-ramdisk_offset ]]; +if [ -e "ramdisk_offset" ]; then - ramoff=$(cat "$myname".img-ramdisk_offset); + ramoff=$(cat ramdisk_offset); brmoff=" --ramdisk_offset $ramoff"; echo -e "Ramdisk offset:$y $ramoff$c";echo " "; fi; ###################### SECOND OFFSET ######################## -if [[ -f "$myname".img-second_offset ]]; +if [ -e "second_offset" ]; then - flsec=$(cat "$myname".img-second_offset); + flsec=$(cat second_offset); bsecoff=" --second_offset $flsec"; echo -e "Second offset:$y $flsec$c";echo " "; fi; #################### SECOND BOOTLOADER ###################### -if [[ -f "$myname".img-second ]]; +if [ -e "second" ]; then - secboot="$myname".img-second; - second=" --second $secboot"; - echo -e "Second bootloader:$y $secboot$c";echo " "; + bsecond=" --second second"; + echo -e "Second bootloader:$y second$c";echo " "; fi; ###################### TAGS OFFSET ########################## -if [[ -f "$myname".img-tags_offset ]]; +if [ -e "tags_offset" ]; then - tagoff=$(cat "$myname".img-tags_offset); + tagoff=$(cat tags_offset); btgoff=" --tags_offset $tagoff"; echo -e "Tags offset:$y $tagoff$c";echo " "; fi; ############################ DT ############################## -if [[ -f "$myname".img-dt ]]; +if [ -e "dt" ]; then - ldtb="$myname".img-dt; - bdt=" --dt $ldtb"; - echo -e "Device tree blob:$y $ldtb$c";echo " "; + bdt=" --dt dt"; + echo -e "Device tree blob:$y dt$c";echo " "; fi; ############################ DTB ############################# -if [[ -f "$myname".img-dtb ]]; +if [ -e "dtb" ]; then - ldtbb="$myname".img-dtb; - dtb=" --dtb $ldtbb"; - echo -e "Device tree blob:$y $ldtbb$c";echo " "; + bdtb=" --dtb dtb"; + echo -e "Device tree blob:$y dtb$c";echo " "; fi; ####################### DTB OFFSET ########################## -if [[ -f "$myname".img-dtb_offset ]]; +if [ -e "dtb_offset" ]; then - dtboff=$(cat "$myname".img-dtb_offset); + dtboff=$(cat dtb_offset); bdtboff=" --dtb_offset $dtboff"; echo -e "Device tree blob offset:$y $dtboff$c";echo " "; fi; ############################ DTBO ############################ -if [[ -f "$myname".img-dtbo ]]; +if [ -e "recovery_dtbo" ]; then - ldtbbo="$myname".img-dtbo; - dtbo=" --recovery_dtbo $ldtbbo"; - echo -e "Device tree blob overlay:$y $ldtbbo$c";echo " "; + bdtbo=" --recovery_dtbo recovery_dtbo"; + echo -e "Device tree blob overlay:$y recovery_dtbo$c";echo " "; fi; ########################### ACPIO ############################ -if [[ -f "$myname".img-acpio ]]; +if [ -e "recovery_acpio" ]; then - lacpio="$myname".img-acpio; - acpio=" --recovery_acpio $lacpio"; - echo -e "Non AB ACPIO:$y $lacpio$c";echo " "; + bacpio=" --recovery_acpio recovery_acpio"; + echo -e "Non AB ACPIO:$y recovery_acpio$c";echo " "; fi; ####################### OS VERSION ########################## -if [[ -f "$myname".img-os_version ]]; +if [ -e "os_version" ]; then - osvers=$(cat "$myname".img-os_version); + osvers=$(cat os_version); bosver=" --os_version $osvers"; echo -e "OS version:$y $osvers$c";echo " "; fi; ######################## OS PATCH ########################## -if [[ -f "$myname".img-os_patch_level ]]; +if [ -e "os_patch_level" ]; then - paklev=$(cat "$myname".img-os_patch_level); + paklev=$(cat os_patch_level); bpaklev=" --os_patch_level $paklev"; echo -e "OS release date:$y $paklev$c";echo " "; fi; ##################### HEADER VERSION ######################## -if [[ -f "$myname".img-header_version ]]; +if [ -e "header_version" ]; then - hdrver=$(cat "$myname".img-header_version); + hdrver=$(cat header_version); bhdrver=" --header_version $hdrver"; echo -e "Boot header version:$y $hdrver$c";echo " "; fi; ####################### HASH TYPE ########################## -if [[ -f "$myname".img-hashtype ]]; +if [ -e "hashtype" ]; then - hashtp=$(cat "$myname".img-hashtype); + hashtp=$(cat hashtype); bhashtp=" --hashtype $hashtp"; echo -e "Boot hash type:$y $hashtp$c";echo " "; fi; -########################################################### -stamp=cik-$(date +"%H%M"); -if [[ -f recovery.txt ]]; +####################### MTK ########################## +if [ -e "mtk" ]; then - filetype=$(cat recovery.txt); -elif [[ -f boot.txt ]]; + lmtk=$(cat mtk); + bmtk=" --mtk $lmtk"; +fi; +######################## OUTPUT ########################### +if [ ! -e "vendor_boot" ]; then - filetype=$(cat boot.txt); -else - filetype="boot"; + bout=" --output"; + else + bout=" --vendor_boot"; fi; -newimage="$filetype"_temp.img; -packedimg="$imgfolder"_"$stamp".img; +########################################################### +stamp=cik-$(date +"%H%M"); +newimage=cika.img; +packedimg="$imgfolder"-"$stamp".img; echo " "; echo "Executing the repacking command...." echo " "; -if [[ -f "$myname".img-mtk ]]; - then - $mkbootimg --kernel $kernel --ramdisk $ramdisk$second$dtb$dtbo$acpio --cmdline "$lcmd"$bboard$bbase$pagesz$bdt$bkoff$brmoff$bsecoff$btgoff$bdtboff$bosver$bpaklev$bhdrver$bhashtp --mtk 1 -o ../output/"$newimage"; - if [ ! $? -eq "0" ]; - then - abort; - exit 1; - fi; - else - $mkbootimg --kernel $kernel --ramdisk $ramdisk$second$dtb$dtbo$acpio --cmdline "$lcmd"$bboard$bbase$pagesz$bdt$bkoff$brmoff$bsecoff$btgoff$bdtboff$bosver$bpaklev$bhdrver$bhashtp -o ../output/"$newimage"; - if [ ! $? -eq "0" ]; - then - abort; - exit 1; - fi; -fi; -compramdisk="$myname".img-ramdisk."$compress"; -rm -f "$compramdisk"; +$mkbootimg$bkernel$bramdisk$bsecond$bdtb$bdtbo$bacpio$bcmdline"$lcmd"$bboard$bbase$pagesz$bdt$bkoff$brmoff$bsecoff$btgoff$bdtboff$bosver$bpaklev$bhdrver$bhashtp$bmtk$bout ../output/$newimage; +rm -f "$ramdisk"; cd ../; mv -f output/"$newimage" output/"$packedimg"; echo " "; diff --git a/.scripts/unpack_img b/.scripts/unpack_img index e6c5de1..1a28623 100755 --- a/.scripts/unpack_img +++ b/.scripts/unpack_img @@ -3,7 +3,7 @@ e="\x1b[";c=$e"00m";y=$e"93;01m";cy=$e"96;01m";bb=$e"96;44;01m";r=$e"1;91m";g=$e ########################################################## # # # Carliv Image Kitchen for Android # -# boot+recovery images copyright-2020 carliv.eu # +# boot & recovery images (c)-2021 carliv.eu # # including support for MTK powered phones images # # # ########################################################## @@ -18,8 +18,8 @@ clear; echo -e "$bb ***************************************************** * * -* Carliv Image Kitchen for Android v2.1 * -* boot+recovery images copyright(c)2020 carliv.eu * +* Carliv Image Kitchen for Android v2.3 * +* boot & recovery images (c)2021 carliv.eu * * including support for MTK powered phones images * * LINUX x64 version * * * @@ -59,7 +59,7 @@ fi; mkdir -p "$filename"; chmod 777 "$filename"; ########################################################### -if [[ -z "$wimage" ]]; +if [ ! -e "$wimage" ]; then echo -e "$r No image to process. ERROR!$c"; abort; @@ -69,11 +69,11 @@ echo -e "Unpacking the$y $file$c to$y $filename$c folder...."; echo " "; $unpackbootimg -i "$wimage" -o "$filename"; cd "$filename"; -comprfile=$(find . -name "*-ramdisk.*"); +comprfile=$(find . -name "ramdisk.*"); compress="${comprfile##*.}"; echo -e "Compression used:$y $compress "; -filecomp="$wimage"-ramdisk-compress; -if [ ! -f "$filecomp" ] +filecomp=ramdisk_compress; +if [ ! -e "$filecomp" ] then echo "$compress" > "$filecomp" ; fi; @@ -85,7 +85,7 @@ cd ramdisk; ########################################################### if [ "$compress" == "gz" ]; then - gzip -dcv "../$wimage-ramdisk.gz" | cpio -i ; + gzip -dcv "../ramdisk.gz" | cpio -i ; if [ ! $? -eq "0" ]; then echo -e "$r Your ramdisk archive is corrupt or is packed with an unsupported archive format. ERROR!$c"; @@ -93,12 +93,12 @@ if [ "$compress" == "gz" ]; exit 1; fi; cd ../ ; - rm -f "$wimage-ramdisk.gz"; + rm -f "ramdisk.gz"; cd ../ ; fi; if [ "$compress" == "lzma" ]; then - xz -dcv "../$wimage-ramdisk.lzma" | cpio -i ; + xz -dcv "../ramdisk.lzma" | cpio -i ; if [ ! $? -eq "0" ]; then echo -e "$r Your ramdisk archive is corrupt or is packed with an unsupported archive format. ERROR!$c"; @@ -106,12 +106,12 @@ if [ "$compress" == "lzma" ]; exit 1; fi; cd ../ ; - rm -f "$wimage-ramdisk.lzma"; + rm -f "ramdisk.lzma"; cd ../ ; fi; if [ "$compress" == "xz" ]; then - xz -dcv "../$wimage-ramdisk.xz" | cpio -i ; + xz -dcv "../ramdisk.xz" | cpio -i ; if [ ! $? -eq "0" ]; then echo -e "$r Your ramdisk archive is corrupt or is packed with an unsupported archive format. ERROR!$c"; @@ -119,12 +119,12 @@ if [ "$compress" == "xz" ]; exit 1; fi; cd ../ ; - rm -f "$wimage-ramdisk.xz"; + rm -f "ramdisk.xz"; cd ../ ; fi; if [ "$compress" == "bz2" ]; then - bzip2 -dcv "../$wimage-ramdisk.bz2" | cpio -i ; + bzip2 -dcv "../ramdisk.bz2" | cpio -i ; if [ ! $? -eq "0" ]; then echo -e "$r Your ramdisk archive is corrupt or is packed with an unsupported archive format. ERROR!$c"; @@ -132,12 +132,12 @@ if [ "$compress" == "bz2" ]; exit 1; fi; cd ../ ; - rm -f "$wimage-ramdisk.bz2"; + rm -f "ramdisk.bz2"; cd ../ ; fi; if [ "$compress" == "lzo" ]; then - lzop -dcv "../$wimage-ramdisk.lzo" | cpio -i ; + lzop -dcv "../ramdisk.lzo" | cpio -i ; if [ ! $? -eq "0" ]; then echo -e "$r Your ramdisk archive is corrupt or is packed with an unsupported archive format. ERROR!$c"; @@ -145,12 +145,12 @@ if [ "$compress" == "lzo" ]; exit 1; fi; cd ../ ; - rm -f "$wimage-ramdisk.lzo"; + rm -f "ramdisk.lzo"; cd ../ ; fi; if [ "$compress" == "lz4" ]; then - lz4 -dv "../$wimage-ramdisk.lz4" stdout | cpio -i ; + lz4 -dv "../ramdisk.lz4" stdout | cpio -i ; if [ ! $? -eq "0" ]; then echo -e "$r Your ramdisk archive is corrupt or is packed with an unsupported archive format. ERROR!$c"; @@ -158,10 +158,10 @@ if [ "$compress" == "lz4" ]; exit 1; fi; cd ../ ; - rm -f "$wimage-ramdisk.lz4"; + rm -f "ramdisk.lz4"; cd ../ ; fi; -if [ "$compress" == "unknown" ]; +if [ "$compress" == "bin" ]; then echo -e "$r Your ramdisk archive is corrupt or is packed with an unsupported archive format. ERROR!$c"; abort; @@ -169,16 +169,17 @@ if [ "$compress" == "unknown" ]; fi; ########################################################### echo " "; -if [[ ! -f "$filename"/ramdisk/sbin/recovery ]]; +if [ ! -e "$filename"/ramdisk/sbin/recovery ]; then - echo "boot" > "$filename"/boot.txt; - if [[ -f "$filename"/ramdisk/system/bin/recovery ]]; then - echo "boot_rec" > "$filename"/boot.txt; + if [ -e "$filename"/mtk ]; then + echo "1" > "$filename"/mtk; fi; fi; -if [[ -f "$filename"/ramdisk/sbin/recovery ]]; +if [ -e "$filename"/ramdisk/sbin/recovery ]; then - echo "recovery" > "$filename"/recovery.txt; + if [ -e "$filename"/mtk ]; then + echo "2" > "$filename"/mtk; + fi; fi; ########################################################### echo -e "Done! Your image is unpacked in$y $filename$c folder."; diff --git a/.working/.gitignore b/.working/.gitignore new file mode 100644 index 0000000..3551166 --- /dev/null +++ b/.working/.gitignore @@ -0,0 +1,8 @@ +# git does not allow empty directories. +# Yet, we need to add this empty directory on git. +# To achieve that, we created this .gitignore file, so that the directory will not be empty thus enabling us to commit it. +# Since we want all generated files/folders in this directory to be ignored by git, we add a rule for this. +* +# And then add an exception for this specifc file (so that we can commit it). +!.gitignore + diff --git a/.working/blank b/.working/blank deleted file mode 100644 index 8b13789..0000000 --- a/.working/blank +++ /dev/null @@ -1 +0,0 @@ - diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 853b46d..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 9c6ff90..0000000 --- a/README.md +++ /dev/null @@ -1,46 +0,0 @@ -

-##############################################################################
-#                                                                            #
-#                 Carliv Image Kitchen for Android v2.1                      #
-#              for android phones copyright(c)2016 carliv@xda                #
-#             including support for MTK powered phones images                #
-#                              LINUX version                                 #
-#                                                                            #
-##############################################################################	
-
-To use this Android images kitchen is very easy. First, place your image files in corresponding folders: boot images in [boot-resources] and recovery images in [recovery-resources]. - -Start the kitchen by double click on { carliv } file, then choose [Run in Terminal] and follow the informations on the screen - it's easy. All menu letters are case Insensitive and you can type how you want [B or b, etc.], and the numbers... are just numbers :). If the "carliv" script doesn't run with double click, or if you don't see the dialog for Run in Terminal, Display, Run etc, but instead it opens in a text window, check the executable permission, because maybe your system changed that after unpack. If still don't see that dialog box after you checked the permissions, open a terminal window in the Kitchen folder and type [ ./carliv ] then enter, to start it manually. - -ATTENTION again! When you unpack the archive, it is better to not use the fancy file-roller or whatever archive GUI application you have: use the terminal commands. - -If your phone is MTK powered, the built binaries and the scripts will handle these images automatically. - -After you finished your modding job, to repack the image do the same, but this time select the repack menu items. NOTE: If you have unpacked more than one image, to repack select that image again from boot or recovery images list section, and the script will know to find corresponding folder for repacking (if you have deleted that folder it will display an error on process). To go to boot or recovery list selection menu, just type [E] - Go Back to select from unpack/repack scripts menu, then select the image you worked on and want to repack it back. - -The new image will have original name with a time stamp appended to it and will be saved in [output] folder. NOTE: These scripts and binaries are dependent on type of image integrated in name: boot for boot images and recovery for recovery images. If your image has a different name (let's say a recovery named twrp.img), the script will append automatically the type on it's name, based on the folder you select the image from (in that example it will be recovery-twrp.img), and the repacked image will have that name plus the time stamp. - -If you don't want to unpack the image but only to see or to check it's informations (offsets, sizes, addresses, cmdline, etc.) for various reasons, just select the { image info menu } and you will see all these on terminal. Also a text file with all informations will be saved in utility's root folder. - -ATTENTION! This Image Kitchen is built to work on any path, but to avoid any possible breackage, please don't use folders or images with spaces or special characters in name; use only letters [a-Z], numbers [0-9] and usual signs [- or _], and stay away from [!@~`%$#*&(){}[]<>\/....] or other like these. - -My tool doesn't have restrictions on placement. For me it worked in last partition, in sub-subfolder, without problems. - -Please respect my work and if you use it don't forget to hit the THANKS button in my thread or to make a donation to buy me a coffee. And if you take it and share it on other sites, or integrate it in other tools, give proper credits for my work. - -I built from source every working module, and the lz4 binary. For everything to work well you need to have installed in your system these (my example is for ubuntu): - -- sudo apt-get install bzip2 -- sudo apt-get install lzop -- sudo apt-get install xz-utils -- sudo apt-get install liblz4-tool -
	
-##############################################################################
-#                                CREDITS                                     #
-#  * michfood from xda.developers for the initial starting ideea;            #
-#  * osm0sis from xda.developers for his Android Image Kitchen, which gave   #
-#  me some hints;                                                            #
-#  * Cyanogenmod Project and Omnirom for the initial source code             #
-#  of binaries;                                                              #
-##############################################################################		
-
diff --git a/carliv b/carliv index c63663e..4d65ce7 100755 --- a/carliv +++ b/carliv @@ -3,7 +3,7 @@ e="\x1b[";c=$e"00m";y=$e"93;01m";cy=$e"96;01m";bb=$e"96;44;01m";r=$e"1;91m";g=$e ########################################################## # # # Carliv Image Kitchen for Android # -# boot+recovery images copyright-2020 carliv.eu # +# boot & recovery images (c)-2021 carliv.eu # # including support for MTK powered phones images # # # ########################################################## @@ -58,9 +58,9 @@ exit; img_unpack() { -cp -f "$working"/"$workfile" cl.img > /dev/null 2>&1; -"$scripts"/unpack_img cl.img "$workfile"; -rm -f cl.img > /dev/null 2>&1; +cp -f "$working"/"$workfile" cika.img > /dev/null 2>&1; +"$scripts"/unpack_img cika.img "$workfile"; +rm -f cika.img > /dev/null 2>&1; pause; imgmenu; } @@ -77,6 +77,15 @@ pause; imgmenu; } +img_info() +{ +cp -f "$working"/"$workfile" "$workfile" > /dev/null 2>&1; +"$scripts"/image_info "$workfile"; +rm -f "$workfile" > /dev/null 2>&1; +pause; +imgmenu; +} + clean_all() { find . -maxdepth 1 -type f ! -name "image_info" ! -name "repack_img" ! -name "carliv" ! -name "unpack_img" ! -name "Instructions.txt" ! -name "*.img" ! -name "." ! -name ".*" ! -name "logo.png" -exec rm -f {} \; > /dev/null 2>&1; @@ -88,12 +97,12 @@ main; clean_output() { -cd output; -find . -maxdepth 1 -type f -exec rm -f {} \; > /dev/null 2>&1; -find . -maxdepth 1 -type d -exec rm -rf {} \; > /dev/null 2>&1; -cd ../; -echo -e "\n$y Done! Your output directory is clean now.$c"; -sleep 2; +if [ -d "output" ]; + then + rm -rf "output"; + echo -e "\n$y Done! Your output directory is deleted.$c"; + sleep 2; +fi; main; } @@ -103,8 +112,8 @@ clear; echo -e "$bb ***************************************************** * * -* Carliv Image Kitchen for Android v2.1 * -* boot+recovery images copyright(c)2020 carliv.eu * +* Carliv Image Kitchen for Android v2.3 * +* boot & recovery images (c)2021 carliv.eu * * including support for MTK powered phones images * * LINUX x64 version * * * @@ -137,12 +146,12 @@ for filename in `ls input`; do echo "---------------------------------------------------"; done printf '%b' "Type the file number, then press ENTER: "; -read -n1 benv; -if [[ "$benv" = "I" || "$benv" = "i" ]]; +read benv; +if [ "$benv" == "I" ] || [ "$benv" == "i" ]; then setimg; fi; -if [[ "$benv" = "Q" || "$benv" = "q" ]]; +if [ "$benv" == "Q" ] || [ "$benv" == "q" ]; then main; fi; @@ -173,8 +182,8 @@ clear; echo -e "$bb ***************************************************** * * -* Carliv Image Kitchen for Android v2.1 * -* boot+recovery images copyright(c)2020 carliv.eu * +* Carliv Image Kitchen for Android v2.3 * +* boot & recovery images (c)2021 carliv.eu * * including support for MTK powered phones images * * LINUX x64 version * * * @@ -198,15 +207,18 @@ echo " "; echo "][*************************][*************************]["; echo -e "][ $cy 1. Unpack image$c ][ $y I. Other image$c ]["; echo "][*************************][*************************]["; -echo -e "][ $cy 2. Repack image$c ][ Q. Back to Main menu ]["; +echo -e "][ $cy 2. Repack image$c ][ $m F. Display image info$c ]["; +echo "][*************************][*************************]["; +echo "][ Q. Back to Main menu ]["; echo "][*************************][*************************]["; echo " "; -printf '%b' "Type your option [ 1 - 2 - I - Q ] then press ENTER: "; +printf '%b' "Type your option [ 1 - 2 - I - F - Q ] then press ENTER: "; read -n1 imgenv; case $imgenv in 1) img_unpack;; 2) img_repack;; i|I) setimg;; + f|F) img_info;; q|Q) main;; *) wrongimg;; esac @@ -214,12 +226,15 @@ esac main() { +cd "$working"; +find . -maxdepth 1 -type f -exec rm -f {} \; > /dev/null 2>&1; +cd ../; clear; echo -e "$bb ***************************************************** * * -* Carliv Image Kitchen for Android v2.1 * -* boot+recovery images copyright(c)2020 carliv.eu * +* Carliv Image Kitchen for Android v2.3 * +* boot & recovery images (c)2021 carliv.eu * * including support for MTK powered phones images * * LINUX x64 version * * * diff --git a/input/.gitignore b/input/.gitignore new file mode 100644 index 0000000..3551166 --- /dev/null +++ b/input/.gitignore @@ -0,0 +1,8 @@ +# git does not allow empty directories. +# Yet, we need to add this empty directory on git. +# To achieve that, we created this .gitignore file, so that the directory will not be empty thus enabling us to commit it. +# Since we want all generated files/folders in this directory to be ignored by git, we add a rule for this. +* +# And then add an exception for this specifc file (so that we can commit it). +!.gitignore + diff --git a/input/put_img_here b/input/put_img_here deleted file mode 100644 index 8b13789..0000000 --- a/input/put_img_here +++ /dev/null @@ -1 +0,0 @@ - diff --git a/output/.gitignore b/output/.gitignore deleted file mode 100644 index e69de29..0000000