From b1f9fa80bbb827e8e8064a1e5835943d48ecb02d Mon Sep 17 00:00:00 2001 From: YAWAsau <229953100a@gmail.com> Date: Sun, 24 Oct 2021 13:12:50 +0800 Subject: [PATCH] bug fix --- .../META-INF/com/google/android/update-binary | 50 +++++++----- tools/bin/appinfo.dex | Bin 94504 -> 94516 bytes tools/script/Get_DirName | 8 +- tools/script/restore | 28 +++---- 備份應用.sh | 61 +++++++++------ 執行狀態日誌.txt | 74 ++++++++++++++++++ 6 files changed, 156 insertions(+), 65 deletions(-) create mode 100644 執行狀態日誌.txt diff --git a/tools/META-INF/com/google/android/update-binary b/tools/META-INF/com/google/android/update-binary index 6879ef3..26860fe 100644 --- a/tools/META-INF/com/google/android/update-binary +++ b/tools/META-INF/com/google/android/update-binary @@ -90,7 +90,7 @@ Backup_apk() { ui_print "$1" [[ $lxj -ge 95 ]] && ui_print "$data空間不足,達到$lxj%" && exit 2 rm -rf "$Backup_folder"/*.apk - [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name}$" | head -1) = "" ]] && echo "$name2 $name" >>"$Backup/應用列表.txt" + [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "$name1 $name2" >>"$Backup/應用列表.txt" find "$apk_path" -maxdepth 1 -name "*.apk" -type f | while read; do path="$REPLY" b_size="$(ls -l "$path" | awk '{print $5}')" @@ -105,11 +105,11 @@ Backup_apk() { esac) echo_log "備份$apk_number個Apk" if [[ $result = 0 ]]; then - [[ $PackageName = "" ]] && echo "PackageName=\"$name\"" >>"$app_details" - [[ $ChineseName = "" ]] && echo "ChineseName=\"$name2\"" >>"$app_details" + [[ $PackageName = "" ]] && echo "PackageName=\"$name2\"" >>"$app_details" + [[ $ChineseName = "" ]] && echo "ChineseName=\"$name1\"" >>"$app_details" [[ ! -f $Backup_folder/還原備份.sh ]] && cp -r "$MODDIR/script/restore2" "$Backup_folder/還原備份.sh" fi - if [[ $name = com.android.chrome ]]; then + if [[ $name2 = com.android.chrome ]]; then #刪除所有舊apk ,保留一個最新apk進行備份 ReservedNum=1 FileNum="$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l)" @@ -121,16 +121,16 @@ Backup_apk() { done [[ -f $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null) && $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l) = 1 ]] && cp -r "$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null)" "$Backup_folder/nmsl.apk" fi - [[ $name = bin.mt.plus && -f $apk_path/base.apk && ! -f $Backup/$name2.apk ]] && cp -r "$apk_path/base.apk" "$Backup/$name2.apk" + [[ $name2 = bin.mt.plus && -f $apk_path/base.apk && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path/base.apk" "$Backup/$name1.apk" unset PackageName ChineseName ; D=1 } #檢測數據位置進行備份 Backup_data() { unset zsize case $1 in - user) data_path="$path2/$name" ;; - data) data_path="$path/$1/$name" ;; - obb) data_path="$path/$1/$name" ;; + user) data_path="$path2/$name2" ;; + data) data_path="$path/$1/$name2" ;; + obb) data_path="$path/$1/$name2" ;; *) [[ -f $app_details ]] && data_path="$2" && Compression_method=tar && zsize=1 ;; esac if [[ -d $data_path ]]; then @@ -172,26 +172,34 @@ starttime1="$(date -u "+%s")" { while [[ $i -le $r ]]; do ui_print "備份第$i個應用 總共$r個 剩下$((r-i))個應用" - name="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" - name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" + name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" + name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" lxj="$(df -h "$data" | awk 'END{print $4}' | sed 's/%//g')" - if [[ $name2 = *! || $name2 = *! ]]; then - name2="$(echo "$name2" | sed 's/!//g ; s/!//g')" - ui_print "跳過備份$name2 所有數據" + if [[ $name1 = *! || $name1 = *! ]]; then + name1="$(echo "$name1" | sed 's/!//g ; s/!//g')" + ui_print "跳過備份$name1 所有數據" No_backupdata=1 else [[ $No_backupdata != "" ]] && unset No_backupdata fi - Backup_folder="$Backup/${name2}[${name}]" + Backup_folder="$Backup/$name1" app_details="$Backup_folder/app_details" - [[ -f $app_details ]] && . "$app_details" - [[ $name = "" ]] && ui_print "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" && exit 1 + if [[ -f $app_details ]]; then + . "$app_details" + if [[ $PackageName != $name2 ]]; then + unset ChineseName PackageName + Backup_folder="$Backup/${name1}[${name2}]" + app_details="$Backup_folder/app_details" + [[ -f $app_details ]] && . "$app_details" + fi + fi + [[ $name2 = "" ]] && ui_print "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" && exit 1 apk_path="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $3}')" if [[ -d $apk_path ]]; then starttime2="$(date -u "+%s")" - ui_print "備份$name2 ($name)" - [[ $name = com.tencent.mobileqq ]] && ui_print "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" - [[ $name = com.tencent.mm ]] && ui_print "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" + ui_print "備份$name1 ($name2)" + [[ $name2 = com.tencent.mobileqq ]] && ui_print "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" + [[ $name2 = com.tencent.mm ]] && ui_print "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" apk_number="$(find "$apk_path" -maxdepth 1 -name "*.apk" -type f 2>/dev/null | wc -l)" if [[ $apk_number = 1 ]]; then if [[ $Splist = false ]]; then @@ -213,10 +221,10 @@ while [[ $i -le $r ]]; do #備份user數據 [[ $Backup_user_data = true ]] && Backup_data "user" fi - endtime 2 "$name2備份" + endtime 2 "$name1備份" ui_print "完成$((i*100/r))% $hx$(df -h "$data" | awk 'END{print "剩餘:"$3"使用率:"$4}')" else - ui_print "$name2[$name]不在安裝列表,備份個寂寞?" + ui_print "$name1[$name2]不在安裝列表,備份個寂寞?" fi ui_print " " diff --git a/tools/bin/appinfo.dex b/tools/bin/appinfo.dex index 3f892c98a3bf72d1220e5bdb8cd8e6e4be37ac09..8a12c13d644254cc1111ec9008c305b62dfd0871 100644 GIT binary patch literal 94516 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≪U!?J9i9rGLUtkuhm!+v^vWSwz}2~ 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

o0@XBgc$Fj(G;S5BcRApbPTL_Q)xT zTiIhpJ~ll^m!E72OFsdWRMnMht*mRsX*@79e5DAV*?=eOz$wW zWp*zBZUe>xut8c3|A$}P09?m=f8vhgDZCx_Vf=^Z8NiOf6kq^w7ye>H5g^UGyszQ? zYe@&V`0WmeERu%borRz5nTi!;8T0OPowo8i3xVY zDw=w2FcKA5ZzY!^%Q%USNDTY6IEiyDHF0?1n6?tH2%lt$vHZKvO z=fxgtv#O1@$LdGA2cXeCTjnOpqPk^h9uj|$XKjlUyIqZ;*g9EKle?{$)T9$RV&Pcv z$F4a$qr_^=RKLz#;2!i-SP8Ujku(J4Eg_HIJ5 ziA;u3#lUtz z9RNXx@@rd()jazV_a>gb0hDXX21@eaW^ThY6VKs=d~AWES`HoyPPdPR%NW7?nI~eW zxQ^tJBzPOFuiD;pA~v(*QFB8)Zi=tF-`Y8IHk8}B6&75gxE zYCFZGqm$KcbWNgyhrmo7bm%9d< z7un1_^cgDUF!k&@Ls=5m46-gYy3R01nHPt@av~Q&(I>0$hA?v=vVn9*QUBkV3x_NJ zi4k&7gv``1(H(5M&WQ3+v-iS# zWoqYiWglZqWuhWAEM3`Gy`?Mq5gydxN2OE!jWH?0Pe`W*=(jV|sa@0?ZG(%}d+$hN zsRr*o#`^^Cy`1-n-aArWYLfRJ=ly8!J;D1i-utnjMc5`Sgg5t&aOr;yjbc#1VPvlI=hJjcm-mdNUW+o@8|0g;m;JEE0$ zA{UtMVJdIhl8*cVN07YFy4GfPe5WV`7MBTkKNTl}HaRg|oeLHkx+Q^38QCSk&HbDd zb|TLQ-G1^WaWjz>u-Z&iT^)pybs+uA6>}9KnLhgS70Ibl}{pj?10>{2@qPeE4q&c(S1OZ z8qjgPx1O^pz<JcW84#&a>JLgR!T!*c;o_P2~B zJcCfgpgC+;b6BG}?0PJ@Z$y_$eAErb4#*xK6Q_Nex0~W8n&!+`GxGbHgd7$+25q!^J|+~2h2gO)^* zPmn2Iyi2bxsqGkj5+t3#Y9sr7hQB!RO0esGq%CbpoxnC5`x|o8w9+;klSmq375tb} zK2FhbITOg5hObY6|Bpw?vCqD&DfuHk>yE?rI?)G8_l7AgZ%DAKn&=#GM>ZvIr|x!Q zN}?+^mh6g~mnbf+1QHkvW$ltViqS43qjg%XW zX*K1XL7P_dt=Y^>aQR9ZB^XC4*61TttA0!yV-o4un1maa z64J)02c%=C9)J`ba1-J)*N8^v!SVD8=_S$n8}k)!p#=EK*=n5T8sV&Nff0sAptW*0 zJJE90%dC_WCbtP3uj0-(g27B8x#dabMD`>Q{p>p7$tt$CzDAux3^VK=plcBf&8H_t zVjV2Ds@pnc7bqHoBwuz)enQMpMi-JPA#!?b)8+6FKm?N&MzWRHJ& zGul*j%Hyx9UyxD~CU;RtUTPJaC^xlaDlOV3=x%VV399XCO}7&#Ud^y2`EmaPcA!

iKu2p9~Aj_xNws+S=PBq(&JdeU zVm_R0GUEqU$vF$Q2;OPn@1$at7Z^Vf{vh4a6zH`Z|U6Bk21Y58Jz+nT~Zo6HO2!kTLGQ95*JeV{{70sV;bn z!uYT;ki5{oXQ>Hg&*1kdA$N-&{~#EzYR^d1_c15BlbR=4Y@a~vUo7`VCw!g4M2**I zc?7G+>hkCA9W|DZ$zgS^Q#RU<)x&gsfp!&a4&PLPt}NJ@tXa853lDayuKdUpaVFaVc%suYms_n zgCl@0$OjeRbZ_=S`T_d_JFy;_1_&Nc2F?Kv$7cI(WPw+a1=8U4-N*p@F!HAZ-vPq2 z|G`u6yC+XshlowL;PXI0Y_IzQHGr&XhVqne^a#!iKbLX%3=nxjcy%Lq{RrW0;k9Fr zp%*uyvz0R#vXe5`E(_1IL!7dBi&gWAko&zyow4uFnC>oFE-bt_W;fWPHK@(@Bys-5 zZ|PaVt~&H2dTu0gcq;pWw_PNf;y#qxNP2yq<8w-T(Q+S2+vUcjIQp|VwAP+(qMa^( zPSsIx(_ED<2bb?i+uhB^I5Z?K_;L?t{l8S>rcMOi$;>w0#U8$MGN3UIT~IM+adzTV zh3U*r=DwVph;R>!)@W=^=dvV z?3SE5>+e(@$+?DdRz;jC-$FIMWwn2f!Xu?&m)J+h zO;mNp=glK+k?Ir$h!0ky_PXgl;sl>oy(24rmHU2HP~xK@poZ!A_RI`T>*c(iWB)=a ztFS`ZJBNSi0JdRLQqKshk2>StW~Lmxbr8COp+H}7aX38o=nLVQ?1zqp$6g1Iy#qY_ z>#g7x{B;y~*ax2a>q=zs)#zi9#clL|tDkp_G2q`X$l=exTMs7dF2MG{8-Vb|bAZo* zoq^*3%nyv)cXbUcldZjJus$F*C`N3OQxvcH1u zy&6%$mo4bbj%6m?%s7B;39wDZApRp`z*^FNR*js@CG%y$NB6;WysvM(z|6QCbeB2h zW7RxTnE6<`ysznA?_nK!?mSnJGH(J$Cn(Gl9F0`+P0G6>XtLZn=mmto9th^ewd^eY z&=B93Ql5l{pA6yHsgM4e&fTx6BRBg9xA!VBhb@2qhCvSof8jYsg{mb4+j6DlivjY z;$n@fR}iAFn;#EG=EcMDfr2~ny{JuwS{*>oCR^slL&!?+a3_%DpxS7763s#L+oOqs+`DUY<&Ijs+xN5(DhJeSns zZAyQ&ne&8dv=l~4IioD4gIn7?k}f8HAk{rz5%t~eA6`Fp%cMf^ImfxdeDrq=n2-8fwZyX!L??0PFf6Q zmNq48;1Zq9F4$r<8Oy1GjXjRsWiW$WyO`QuaG059b)>9G17byb1}V971)h)&9BQV6 z+@dVjNI|S(0^RyGa*xjMMpyY2?ACt*zdD;ELbj#s`9qV;G*nsEvg68ZBOBWc^4?p= zt$~kX5rw{>+N)nB>sgnvaybdqg}Unynh2-ni=;I>Tc**Sx@O~dSGM(XK3n=dhHgh> z4{0x?3pb?X54uUM9k>O@2%I_W#A$pVavI^HKNUK+gvkGNZ)HhGiQ@!3cl9qpW*rRu>!5fnO)ha=5bE!k-@hD_+2$~|1>9jw3(A@h^ zjEdUJQ0H(zX>q^N6iK_Xx{y#beaRonJT9qE3nyPO-Q`Y2wZbs5Tep&O`}z-M?ro!j zRzTlTbGF%-LUu`EYv7gW);RHw3d4kcr4wlAFzvUJShB~{hI^63OB*MHMfopN+V>#? zS;#SRy2_BVYBSmQxDsxl?HI%0;Y+y^xF3fYjVU-Y#vgCpj(T@3o;>t)m zNy$IO?Lph-@=hD4H>S%^Z`7*>DJ^5%ypDNME-rhD7H7Y`K0=ESyLZ+gL)PWjt2|Zd zVaKRc98i8q3A*PPReFqbUEHytM|i#w4ri<{U;jF(dqLLY{|IrCGrEsTucSKCXJQgZ zZhkbQT63W5b;~)jt}()m7JaC8XqSZ0>{#3r20u|!e*_CLue6ays7&w2(hFVK7tK*a zGc0{=C1np&c*8Zh8Y;?Son(5w&Ak;;$E||yJSQ|>aV??Qk}6$xlDa`Y9MXA7OHWfW zPRbaHT=O-wRQ5r)n$I4`0(1vgI>yDo@4#!UIfBSJ+seKty2t_OA8U|vj)$%u`Y8LR z$TopDkdc_-+kl&20HOn+VMILJnM;UpNKGOsDyfeZ?GoC%hFK})da?q18QV`{))^0Z&&3`VdowcG zAiB73bsRY-E~#TsfzMmy%(mq1B>M#1r?Tr5373=Gjo3^r?==~>g1h%6z0lNe{)K+9 z<_pmW@s(%6!A)S?lRW2uKaZ(+sia41s551caVoY|vqez`H4C`orrNzk@>HW=c}jLg ztZywjz=>b2W{#!{r$nqY=lG_(1y9#ej3XH|xhwlTjBBL}_5X|B!C zq)n#c;2f$msq1TA9d&A%Yv{2XoxpHKy@W1Us*X^EG-o$kbS-Nsts9gCIYiA*v~>L) zbCIGYvYxS+pB5(y!bls}GXfR#D|;xkuwFF(#-&RCw@l4v36WeyyI8LB&v2I^bH*0e z4NF+sm~&X#o^u$MfT~`S#;uf)`9`Gt-lbZrc#f=O3{$mH<*Mi>b4O8u_nLM5Xf$1E zPi;&=HHA9u=ETlZR9EE6bh$m%O0!cJbN7(g>t>y^b;0PRo#;%JzfcN~KJ=29BaO0f zz7Lx%_i-oksLEIFi?GrW!;H9FOH4h+C;P@&dgP-3cRZ9G&8XeaJc^a2!zYuf%m|n1 z{uk{2Co)q9<96097qG7|4IM&%@cKFAq_fc<9JLJn0Qh_gFc0{Uy@gt2CfQFIf$rdD zU_9%Wy;#4zj1FO6a9s3)Zv)4_O&BvBc?Pbm@0}98g2+OHfL{U8^Y6xUFwdQM)&R?a z=K!Gruy>_16n#Q}ejdy7Ql27v@oKyU?#rE?9e9_opg6$;)cDJ6>=}Fj-wLo>>*y8t z2-XLu(dvaB2FHR!f+P5Ssdr1xp1jW?Oj6Xb+R_-Ve+$N@(yl7y3e!E{tZli0G}ur^ zPY3@IboX(Bzj05PM@xc(gUo}mPH9eHl;% zNIu_^$y3aa|IQos%$-8*nLLaXbCagEXVQSqDy_CZ#<#; zx8WOQkA@pIlOg(cGcjbW#g0Bdlazd^DE+%wti))gmf@yH(kau67faVeQMr$U)z1Qj z_nKNykEE(2nXDYg&3wz8fb4syuW$!+2sch~r>46kos`^^URm>sLmlfeHIgD(h_sMO zx#v$zYU=C7ghxoZ!gH1?ny)CIi43Gl6&Xmr{(XFl;6#(ME{eegnJvk)nMFsmILU>y z{E(Kkeedb4SL}YBoa86?jBc5mEH9szOhyLDEi_4PC=WQv$;jTD9fbfV6Ojsf21NFI zBRz|oN*h>5e8XH48Z7csV*q*-kXeb=Mt#lYRQwo+z)bv>co?H^IlUYXuV;eBJnmTw zy07SW?WW2q$|@{oK39=CfpwPqgcG=y8+XPcnRs&uYAU618pnKH;hxAK9K}tW2e@~7 zaRP(IuHkSeFf{01>&@9fz4-0w1g?Yo>iY0|A14s8+|Ii6m`*p$3Cs<;XXoN{cLD~d zO$zeak#uVQO8?Xu)3Ae9e2h|vo+=@^^PX zuDr(JN*SYfhw{uII?T!ZNWa`qni%&qbN5r`-JqM2xRLU$jIOKhJ^rj0y;(XM*NsLgjpG2imxQOR9rYzK%J2 zqOY&dps&$FX$sCw5zyE2M?E*)!dG+O0N$upU8 z)#ZC-d)B*~OYXP5G0XQd;rr0~tFpyjecUdj)8pX9eh{p0$YOmae6OtioZw^1N3C?| zhwuZc9--4BslDXRHtDf+;Ld~_(r+&haLVVa65(0&>_S!E-13U_{Bn3;d3kC`xwP>E zxw)xa^I0A9EH7rVa`~fa+u9>LbLu%k;FNzJaNl%N7b~8bB4;aAZm621tv%$q~) zGkTHd?B^IMwK<^NSEdxAAe zHEWcwfWt-p1a?RMdkvqpCZ$1K_`zJJNYh=#rp;ID9%KoI>9VtBQES@Lw z6g}@mV1M3)R=o@C%x^i@CF_@Sfsuf$VXg*_2aW_r0Sk#EHku6pS1RyjIgy*-f#xvT zl1Ek*dZz!D#7on&R4i4VrDsmE%BR2h50nlfjaEwRVmUP=ccw7LY9+`9VyaeVcJe9F zB`j1DW`nVsQCJ?8n6<$}RjNHLGd8W}Z*odFxr*9Ij@(4$Ck()>AQ7kSuXVH5~0sZAE}(bEeNeO^tlyA z!=emM-PGuFp}~El5cSV*g{9+7WehNrkByO&C`8=WQX=~T0+--Y{ z*>#QN@g^FIiKdjL-z3Iv(R5JC;ncl~qswWeMOlk3=x0$mx>w#L7SfXHufkd!s>+d3 zkXo;z2RM6O+^;paaXW}@c1`x5E1JsF6uu~(MHoJ-WGE%2v!f}R671%qty|obdE} zQ&DbBN@|syrcmO0%#p2&;z)^lf2B{9JC@;qdS-Nz)eM-AoMlX-4$VAY$;(;X5_4j4 zZHyh%9O+Y3N|VxkX4`Z(`MpVg&9n(kTdP^!WSpULsrWCs+(PR6$>mJi#T{O)a*=lN z71UO~DPsx}Tpb#j)*(&m#H-w^Q5+(A+icx?B6EtR&RE)Ta#360$Gu~6DqNet3{Il+f+9IR?8Q3GjrC&TU6I=3kaeCt~KHW_z9B{;)Jj*1@k z8ek^Xk#APRMe|DTG!{xGx8x=%2Tll|V5g?29!ej*T=da8#);w9B~LEf1`gBP=yvY} zV^qM5sr|!XIx6wgA@0P5evWvC8x4AGFl)^Gu34RNZBc1?ZWZ#Vfyb{DHSnh`rUv=6 zR#e}gqUng7jbOA&mW31neU;Ny=(9@3$Wy?*=-FE4Xz!vPkdi%(2b4kZ`v~G~0}XBl zlhCZT!kOauEf!yYB>p^}--b%Zm-TWMXJ!!Zn=;4vgZ#hzAM%%*dY=xVPb1wEZRDS& z^iuylpahSRe+6^%;iCNIn;$1p7mXpmM^YyXpH)<@)r~}ED7+O`XGV^dL}Hpp8ujJ){@^co@;ns!*eyy8hUmW&o62DN}lJ^ zb2kLBhA_G90&9Xg<1Tz3&&e2WEgB@!%q7lD>UJ%mzw>)e&@s=H@8uZ}k>+xImypvL z#7Yr*5x@VY_MBvPgt2ixFXWg%D6S~Fm2e_EW6(*`lP#pXj`Syl{1S-tCby9i{u$pr z$V+qDU(SraUBX|^biQ1|U(U=vS;AkwEVH77zpP7cE8#DCxNA!I%gmow!e82VZV7*p z+fFOtFScfXFX3N-|AZ3$^0nTBO8CoHdiN>eFJI>!Qo>&}8@)^T3qRYggntzOP9^;1 z3>Zd8t;S1kE47M!8@UN6P!t!v)Yrwn!{O+~zP*r;ihXP33&=(JCc%MXU+TM}NRpR1 zrZMglt_Y2)l|bPNOSB^`$eY8Mw`M!(-zB|XN$B*hw?dQjACUfLF!Q4#PM$CSjYw)@ zetqXpy_(efQTqCJN`EDiI#FcR;<{f?>SMvx_S*iON_}mK)Mu0W70O=NPT5aIQe*RF z`)fXl)CtO--cIVrRO;-y)}MNJQol&A?OC$dKj$+QX@8i)SuF8+>KO1I@9f5+Gfo=lKLHL-lLt=*D8HWwrqc& zW7ld7rEHs76KB?NoUhF~EK#{+N6z1Vtg4JtX#bb(jQb*$T1x>k-(^=(&v&$$Mh&S~ zwo~>(mAcfNyOPvzQS-&^q+ZZw&1JRMm(-`XlX`y1nj>i)iabfrPi?2wb4!*?+CfOR zL3e1|y?tpxsoCBpWf#srFk*e%DfMENHakvWxZ1Ho%1es;c(c;p%P(cYgKQ@&0xP6srk~B>d`VEnP&Pi^nn6M>cCPi> z;liJ}t-1u(G+Nz^vuea*p?8%L9E?7i8#xNrAMPQJ@ms(hRVwwA4%`K6TxXV^BWYvO zjI=#z26up$C^^jzL)xw`N8@aAvrvf`nyQ>1K|5U1nzsXG4=AW>cCDn_j;c^e!S>IL zRLK3Bg^e}C`0H$R*T9A6vgdZ5{?^L#JbyW#?=t}{*yvTDD}N677AU(=-(Rwl{ouju z=RE?v12hAx*xP#yFtGV~9T+=L+x1OH$9@DlcG>sa3~XG8J{^cGf{FmL7x*sl0{ejz z(7itn1kk_F04@e(k8l+r-?1~7p-BX`zLh!yH{Qls2w(;9K2XkH^iIG#fQjyY4SR}j zqPtI{x0n0e`U7JD(c_&cslSLum?6xi-2v}FW{ye<51uv;BuhHGt6<|Vc_g% zkvN{iCKC7=*o}RKkAWMWXK&$k_RoQx*R%fs90Pm+i2Y*{xCOZHO>AP=f9SA*x&Su- z7-t!0u_>?{YsqKWedk}vv z`7Y+S+WpIv8^-&u_)P+?qMXA>doAx64jD^GU(Iu8o`>`Nj5Kl{XD!bYN%OJz6F!Bq-=`e8&u$fAkMcg8GCt<_B;s8`ne$0M zgXe$nYa-4#Nzd~t(!a<1Cp<4D4Iis8PLOIgx_fLX(HZp{Jx#= z&iK8K-#>vp$Y(nFTn60A@3(l$-t^Vf=X&yC3&J>z{O<)Y!8Xp|_lv|?1~d`>Ve&P& z5nKL_@Idy7^5ZIooYZg zwpMrFt*0JRXSrYRZQx@-`bF;9le_RX0dn77*A?7F0(=g9^`O2ZZ|FnR@3$(WH{aN- zXy{;UKmHExOkHk0HzQI0`45Y>{wR3L=uU6$IKKXzd6N&N$g#j^U_W3VU{7E-U^p-Y z7zl_RKtDj*BztahUdaWv1EgKmKxd#6&;gKkv8Au>{$p6M`4k$727ssh(Z#IJ`m$rA zzZ=c)<^G2AmPQZSjTy7Oia7=Qv4px5sSjaKZntdU4g8-!a0UN24!m#R!hy?h?;dz- zV(5y&D|)OLu%Zs=v10ob)6-8q^z=htJ|ymz&pLhCa^=&!tp(11=)#BQdGF0v#-Ds} z(`%cb9r*G?mp^pLL$ez8bum?E6ssHN(hjKWv!8ur4j;e8?$+ch}RqtTn(Z-@<3 zIGHkgMkf7E}k7h4F6$BQD)ArK8W&I*E&{xK*{N6$=$-Oa(ExXF=Tk@KQ zgz~yqUry&4m1vU0Hq*VKbClXAkD+CDw3_$MoW7b^z5`#TO2^q#L#OrPj&^yfbGMfp zjn0X^xaDY6BF;@m<>n)CJJ#(*w9u91{C>z-Qtkv+DVa+wWg>K3khIPhYTd+ci zzDIlRW)E-2-LOZqo*n2!FQ$*?81tiL=DimTiK1_denmacT`jG z5x<y-C5PmJbHc*g2gZ~Pd*elNIL^EedUx=Mc zT-8ZNDit>GGDn*0-TRu7f0NsyuufC+uzYa2#6F4j$TK;tBkn-+b@%F~UhjcFcB~fr zp}cj7#Gh(RtEn^Y@M;#LOz%?sEcQ&=I z)3yG+&m)qu9N*J;e#3h06#4=iLBWrKPHcZd#E#ZTm*lpaM75=O`)QR>z#<>qWgk56Di8Wyj zSo7~r%mB&%Ex7?Qb{_fbuT0h%o4}op#%tis_rPAP19rL;9Stz?GVtIEY&;hsi!Mf6 z5B_WfdR(KwEqw)e^gKAU1ljolWZhezbc{QJo1Ou0kWHt6JLiEnB0qEmt_RivuLB}y zgqfQ^@q8Q*IpkvC7(n>*eBft5c)G{{f@@+Xemk%k5WfE)fK9Eke>o5Q5dRbuR=yRZ z&(QWX@5RrvUNVQ67gEmk+)<1@t$7Xa6MbQf<6(SZBn*h7PjaFuC>$GF!{GQnTcvVJy~2i*ByzI;!F5jE=ra_4w;(CzBw zggdrLQmpn>YndzNd(51Z!H{n)x4hA0mQzc|tYHRmn*?{N$(#_rRA(GRDtMOU z!yV?LJvqelkrHn*-LD+;0n&}a#xrhgI-hgsz@E@uSsU8(nM=%*TUon34885aTI^uf zQxB|U4aa(CGi#Pg#^rB-(9cVN9f0Y;*?`DxLL(;uGEYPX6}nh~hC^hWrHu70%!k&r z(1}D86%k(9Gcte}x~IH;iPT5F;q-%^4PGDOCluu)Zrs}2azAd2Ff)|T27EpM`{g^E zLaRKA6&W09A^sPJ#B9i={hA&UsYS<>QI|7}{*qF5r7dH=82ZPUCuhJqaW!)xpK?e z%e3H1ZaF)lt4MHzh5H}ul%1^lQ!LHRoy=0)Zq<_h*rThfs@x0YFv`Oyd#eoA6Q_Ka|JD#{75m(vL>bManax(N&$CYx{imVd3 zLA6zSpHr;R&#jF2kv-moc6J8`zPNyMEa1Ukp`SOS6S)EzL~!EP%h4e~Pv@c6coVwW zc&FA+>?aUjoyOp*zC3}!Ey9%48^5854_{PjJra*T@n|>3c)fXG# z-sAzMphZh_Z?j1Ij~rpgnrdpzrC9LGHzm*j5%*6opA)cc-VFVTp-X>}k*}05a>Y1b zOijh2jnn1Ow7kz+=#l=Ow^-I?s2Mk4$FwCOmd052Vb=itN|*0sr1q2Dp5;e~y`=az zahD}uh$Ma=mH)I}Kbnu=>);!Ua8gOlensn-VR6D5!v$m13HJ)>K#imxvYybt#?|!7ojk=Jl-P;2ec+H@Pih6wq#2?vQMcHr4zG9xS$w zcd5Rd&bP1_jWQ>2n4&g{77Pmq%z*-xdXDfrH!gUI#eY$ zJ9%T6F+M@hkO_&)KBUT1dRXp#$i`9QWp@zFus3iK%Y56m-$4MTs{(97MnIj%D2dqF0nmOWWYrvD%Dl`O~3aZ1epXv~uN_iIUYYU*{8xh`t63S-Z~ z+EdX|cw97mL!B`kiR>v=U#%&Sn+XQ6Za9YZg6&(!!;_+iTAUOzw$E7!QnzS$b)C^A zdzQyrq5m3icXXn&s7t&h$6c$P=!}pH*OzgEl0@aM)IXc~1_00Bnsq!WKVOu{{()>IWpD~mjOS(`<8$!S0f7sSuZ>Z-`ke;_Htl5^yi{a z{|9{UBlw;Rzv~Xadj*jDMC({T)UkdT4}_Q_Co^wm0fH-nBNG8xQwwi|ORBYY51xAf zF9EV9{}d3O7X?HYDsm-TLd<_T+i5ZjCCpUkh$5`CEixV;ji*7koUmB!2!W>sBtTvnu_|Z^|Pms zoYWC~t8WuLIF^FH4u`)6d#3IHuOlgLx#!fqm8syn41JmDlaW}J_KaIRhR8W`+ezIL zbiK1Fa=N@hd^TP1bN_M7_76k$!t04ttadz1=EZ6kducRR!NDyH=s zX>F{S81Kt{DaZjezZ!oiUbx77nR}&PW5ck3KJgU3LiUV<+7n zqgGq`R-#d4slP>uQG}Hr;r#z|JE9HtHE0walR38Y< z4sWo$a&#%&F7T|}A~CI|#q7-OS=6&y@=NuSmi{?h#!9f7Tdw(>K)2VAG{VvF!0^-T z2b%8gT2gTAd5R)RA7^vNYNcpyXN()4fsO>lb>mWszinw_+~{<0+-Od{sy-2}%vau8 z#hPm*EYVoZL#`ai=s@?Nh@0pYZhf)oH(DneD`=wW{?s~k+W0N5zilC$3jLCGm7@Hz z-pQtxF^HhU;;1S5=ij(v!)$Jy&)kYka;{NP(a7z5gXP4P@wMCmV_%_iQ~kiQo10`? z)qZ|OB9SqA4}Lm3O3WPax7xAiOS+2gyl~H29Ak#@X9HTj!XHdn-ohwn(@y!+GF}#x6ODO!W=@B0J};_FEw_<%-1`f#pGMxh zhQtn1g^DfPGeTx&~-`5_?tPZur?_z-K@RS#SrS625lq z+uXe-!}Z-hu`M`vOgw!UXSv`jzZlrCi_RCV-ubz*6me1Eo;Etfw6Z6tO1+N zv0rGeMv(dw9$3wdI#ZL9v#s!>-CR;6;DnM}VVCMp_;@v3zgjFGdmY8CTDok1-nwqGra6+>ZHG@y?nt=YnjpMh z{`H?u{}0ZB?9J`k;yX9b30c=PO@v7Ky*DK0Cncv!lE| z(`AYq0-B5+bNyXh=RS!OO8UY>dZm-d2AM zBfLvH{VDU4FGIDNp1w-T&Q5Xus&2^>a%qckqrn?zE@4x+K{no>ZkO~(al7=~+D-LE z@%Tl^b1%lHLvH;1b424@Kk6J*>HT54zofl;*-ncn4XuiYABqS+5VcE?BlDG)LQ@Pz8FNE(?xx)$53LH%9H!-k`qhj zsmqLzC(O6RoYVQrszmxeUl*0m6x#5I36-b+OVK-_OM4Nb`@laox-HO-n%<->9M}Aq zAEw5Lu%imvbO^^2XaAI_BZiV4e zWT^f+;C4G;JbbYKm^e0#LF{`2)1_^q;O5cPW@#(H}k9p&bVn)mgXqQ1IvPs=e9yA~~z} zs9oVgywd$E^gtwOU7uol1OD_H>T7H3`g(l1CQ(!;o&O=og@2_^?d88~$^6yashLW? z#bdAAD>CmP)V;7>di)M8^4Dpkz55o0>AE_M+fIZP(+WNInpRA$89<$~_)|C^xfeLs zR{t1i92u9(ySSf)-}cM(gJ1s9b%UP_?_(tU6!(P=7utDnE`L9r(e3U_+hnR0_Lat= zZGCmlw@2qIa{UxvI7N7WdR~pkCqM3jbU+|>^Sd|n|uE8()na%yP6y?_Q%n(l&t4OmJ)i=Avd=EvC)0p ziN4x_o++MFI$U_V>l=gCVz+@0w3n8L_ow=r`(~s+i^p#i!%MY8XxtFm(L2|U;yERF_#e6^n|Ho!-S2~_+n$VR;e6F$!kgu-R9ILtjBuwZ0(=rZLR&~ccE-pJf>U`?5&;s zW3T6jr+4U;_R-|xzGWTQM&J5rOTKRZUB(buE-z~p_pjvJgEBP@`G4Wb{=9YncOh@F zLM)sQdD`UXGx;{@@#)t_y282dAM>_w)jt-h>{h(7IFJ7oPxAcA-*(-;LSEyqgRW<( zHHFkf|EY1Uk-OnF9{TI3`xgFRBVXn$>{}fsI5V=S|FSqy3V&6fC$;?SFRO69wpCGi z`LWFN8Gm{mE_`!xj^_NY{JS_G=5oyt@+t0<|F({j{+wFVEmw!)@hV&g6w`~*ZS-e9 z<~SSNt;RvOTgIV1{wTCoZqzU4-+DZR!W7bR-OhoEk4&wROVryM|2>Q9o2}E-q?}x9 ztIQE?rt_~E{bQ)}ZF{Yv=Usl?=EnuSHW1p_N9iA%dNo2H3)`&oKala8kQ@8r@zFfr zKd!o5(Tm5u@u6wnpQbT_iG}^A%W7N3)!||CWJAsCLw|cTZWpf;isv$Oqh`O7_^rpd zZC!<~gV62#`oN#Ru0!#fr?_thkVm+Uxhwe4GuK9cT3tSC*JM3uv$!ZR^q&gHV$iP- zDXyQ;*g|>9Uxpq#*?Xu~_4B9K{gc&M9?}L5h`#JQs#G|abl+%R+*C6@*Z-u}7f$G5iVhd+;EI*>14hY6kDlMWPG zkpI*3ptO!tkJ$*7#$O-*{F>T^tfzQUfv&f8ng4D7vNX@oZD~(0UP!n6eWd$2!WifG zA^hPw@Bh2~WN;fUXMWGeUyiOrY584;<@fFU z?bH2QxQFS_SK(BZ#p{>!EJ$qvPMR=98OZ&PmUO00{e4A~3v z*GI>1Z(T3*pm@!y>0?{+YukKMx3BGeRvlg_3;NsVpCf+$?vJDMC|pbU+pO!Z?Fan) zK+~Dxb*b(n8Pno5mo7_aP=4>ukFPqMwW4o-w{%@g?$RuW=ry1}T=)6^vM*Y=4lM55{>;EadF_9b^-Av{>%I{h-`?K1@VwHt0y@3O zJ$d^Df4g;f+cr)*T=evQn~Xdy(DO$4L=e;~T!-j6C>U8v=OnT-(8^xp|3!CGtb>#_ zP-$C;{CwAXYk!~UxuEOU)}EPen~Z*8n{|H`?rHhws}2WmeS4FByw%}_Hf_b}8BgDy zn?Jp7myB1|=71`Cf10M}_i+8`bh(APZhxQT@~tV}pVDD@yOH923vKL*!)1QAr^6Rs zQcEi|FDXt>*=^Xn72?qsbzftqKVBb1lC*7X>UY)-$RXU#yT6_C+#r4#7SAKt8R%sgsjdRk%w$|axYf7)f zHT}uj_xS6t=~J-{r@u~m%nEH7{NcLJc{>w-SbnbL_fY)h=jKXHu|0=Q+xDKGPOD^p z`lOIg>a-%$S=;*U zti6i!&^REj#sU9aD&)0!y9Iy0N=o($5hRLnNavlm4ff}qpQqYxuei-ZFa7pr`To{4 zNqVkutnztk+gE=*bw5je)wnb9?kp=Zqs zZrRK&hg%yRV`kw$2Z+6YhvTy`4a4Tl3V!#UX_9W$b(R@jFV3CM;H(wr&hMWM1kC8BTXDX-2j|m=aaKNwGxvF%1?zB@zJ>G0+c+P7gtPHW`S}gb z+@EpQ{f4vjoS>u)a_OS6gL4=an)OIfDm3>|0&W#&*3&pkpU1iQWt=Uqqnfc#aSiJMsa5SgtJtfHR5a(=O=OI{)}^{I4_CwwKy05B7Wkm6=#z;vwy|8TAbD5 zY!v4Yah7huStZU!akhxF=r^3@;%pG-Cvh(R56+$9tQF@&ac2FFvs9dw;%pFSi#QAZ zz*#QNI&r=eXYQZkC(e3t<~HNpDb8APJ{4zH3(it;R*SPyoLRF%_=&Spob}@TB+i1f zaF&a+Mx0IJ%sv}usW_{}`49(lryZjY&{*+UbPmo+an_0RlQ;`z<180voj6~MGv{2K zrQ)m>=RlAAU3Y@oyNf1Gd;z+hn}dmtZoUh1FTljLiG%Ai zFmzyG=s*+|6&1BAYCSncMMXu$3nmO57#J8jFfcH5=-}_`#U_0C=U4iagysK0p-{l| zx(FbH8aCkH5Gk}^c_M%uS}-?-2Qie;gL6wnu!J?Zx5WY~=wRxL5OQe1+z}omP{9DR zyCQ-L2C(mm5K?Hs1R{V8TCnbm5He`NdLRPGp#|%q@F9Z+*5HO>0fo>JIXC{ZJ?;ps zN5X>`Di~n)SVT}l53?s^P{0bzTm+Cp4I6NuiWrtKfcuOLDj2|iE<(t`ii8gtG+SFK>"$txt" find "$MODDIR" -maxdepth 1 -type d | sort | sed 's/\[/ /g ; s/\]//g' | while read; do - case ${REPLY##*/} in - 媒體|backup_*|Backup_*|bin) ;; - *) echo "${REPLY##*/}">>"$txt" ;; - esac + if [[ -f $REPLY/app_details ]]; then + . $REPLY/app_details + echo "${REPLY##*/} $PackageName">>"$txt" + fi done echoRgb "$txt重新生成" \ No newline at end of file diff --git a/tools/script/restore b/tools/script/restore index 9d4c434..9384b0c 100644 --- a/tools/script/restore +++ b/tools/script/restore @@ -23,7 +23,7 @@ echo_log() { } Release_data() { tar_path="$1" - X="$path2/$name" + X="$path2/$name2" FILE_NAME="${tar_path##*/}" FILE_NAME2="${FILE_NAME%%.*}" echoRgb "恢復$FILE_NAME2數據" "2" @@ -50,10 +50,10 @@ Release_data() { if [[ $result = 0 ]]; then if [[ $FILE_NAME2 = user ]]; then if [[ -d $X ]]; then - if [[ -f /config/sdcardfs/$name/appid ]]; then - G="$(cat "/config/sdcardfs/$name/appid")" + if [[ -f /config/sdcardfs/$name2/appid ]]; then + G="$(cat "/config/sdcardfs/$name2/appid")" else - G="$(dumpsys package "$name" | awk '/userId=/{print $1}' | cut -f2 -d '=' | head -1)" + G="$(dumpsys package "$name2" | awk '/userId=/{print $1}' | cut -f2 -d '=' | head -1)" fi ; G="$(echo "$G" | grep -Eo '[0-9]+')" if [[ $G != "" ]]; then echoRgb "路徑:$X" @@ -70,7 +70,7 @@ Release_data() { echoRgb "路徑$X不存在" "0" fi elif [[ $FILE_NAME2 = data ]]; then - chown -R "1023:1078" "$path/data/$name" + chown -R "1023:1078" "$path/data/$name2" fi fi } @@ -85,15 +85,15 @@ while [[ $i -le $r ]]; do #let bn++ #[[ $bn -ge 37 ]] && bn=31 echoRgb "恢複第$i個應用 總共$r個 剩下$((r-i))個應用" - name="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" - name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" - Backup_folder="$MODDIR/${name2}[${name}]" + name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" + name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" + Backup_folder="$MODDIR/$name1" Backup_folder2="$MODDIR/媒體" - [[ $name = "" ]] && echoRgb "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" "0" && exit 1 + [[ $name2 = "" ]] && echoRgb "應用包名獲取失敗" "0" && exit 1 if [[ -d $Backup_folder ]]; then - echoRgb "恢複$name2 ($name)" + echoRgb "恢複$name1 ($name2)" starttime2="$(date -u "+%s")" - if [[ $(pm path "$name") = "" ]]; then + if [[ $(pm path "$name2") = "" ]]; then apkfile="$(find "$Backup_folder" -maxdepth 1 -name "apk.*" -type f 2>/dev/null)" if [[ $apkfile != "" ]]; then rm -rf "$TMPDIR"/* @@ -136,14 +136,14 @@ while [[ $i -le $r ]]; do else echoRgb "存在當前系統中略過安裝Apk" fi - if [[ $(pm path "$name") != "" ]]; then + if [[ $(pm path "$name2") != "" ]]; then #停止應用 - [[ $name != $Open_apps ]] && am force-stop "$name" + [[ $name2 != $Open_apps ]] && am force-stop "$name2" find "$Backup_folder" -maxdepth 1 ! -name "apk.*" -name "*.tar*" -type f | sort | while read; do Release_data "$REPLY" done else - echoRgb "$name2沒有安裝無法恢復數據" "0" + echoRgb "$name1沒有安裝無法恢復數據" "0" fi endtime 2 "恢複" && echoRgb "完成$((i*100/r))%" && echoRgb else diff --git a/備份應用.sh b/備份應用.sh index dc50490..69a9a17 100644 --- a/備份應用.sh +++ b/備份應用.sh @@ -95,8 +95,8 @@ echo_log() { Backup_apk() { #創建APP備份文件夾 [[ ! -d $Backup_folder ]] && mkdir -p "$Backup_folder" - [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name}$" | head -1) = "" ]] && echo "$name2 $name" >>"$Backup/應用列表.txt" - if [[ $apk_version = $(dumpsys package "$name" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1) ]]; then + [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "$name1 $name2" >>"$Backup/應用列表.txt" + if [[ $apk_version = $(dumpsys package "$name2" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1) ]]; then unset xb ; result=0 echoRgb "Apk版本無更新 跳過備份" else @@ -104,7 +104,7 @@ Backup_apk() { rm -rf "$Backup_folder"/*.apk #備份apk echoRgb "$1" - [[ $name != $Open_apps ]] && am force-stop "$name" + [[ $name2 != $Open_apps ]] && am force-stop "$name2" echo "$apk_path" | sed -e '/^$/d' | while read; do path="$REPLY" b_size="$(ls -l "$path" | awk '{print $5}')" @@ -120,12 +120,12 @@ Backup_apk() { esac) echo_log "備份$apk_number個Apk" if [[ $result = 0 ]]; then - echo "apk_version=\"$(dumpsys package "$name" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1)\"" >>"$app_details" - [[ $PackageName = "" ]] && echo "PackageName=\"$name\"" >>"$app_details" - [[ $ChineseName = "" ]] && echo "ChineseName=\"$name2\"" >>"$app_details" + echo "apk_version=\"$(dumpsys package "$name2" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1)\"" >>"$app_details" + [[ $PackageName = "" ]] && echo "PackageName=\"$name2\"" >>"$app_details" + [[ $ChineseName = "" ]] && echo "ChineseName=\"$name1\"" >>"$app_details" [[ ! -f $Backup_folder/還原備份.sh ]] && cp -r "$script_path/restore2" "$Backup_folder/還原備份.sh" fi - if [[ $name = com.android.chrome ]]; then + if [[ $name2 = com.android.chrome ]]; then #刪除所有舊apk ,保留一個最新apk進行備份 ReservedNum=1 FileNum="$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l)" @@ -137,20 +137,21 @@ Backup_apk() { [[ -f $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null) && $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l) = 1 ]] && cp -r "$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null)" "$Backup_folder/nmsl.apk" fi fi - [[ $name = bin.mt.plus && ! -f $Backup/$name2.apk ]] && cp -r "$apk_path" "$Backup/$name2.apk" + [[ $name2 = bin.mt.plus && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path" "$Backup/$name1.apk" unset ChineseName PackageName ; D=1 } #檢測數據位置進行備份 Backup_data() { unset zsize case $1 in - user) Size="$userSize" && data_path="$path2/$name" ;; - data) Size="$dataSize" && data_path="$path/$1/$name" ;; - obb) Size="$obbSize" && data_path="$path/$1/$name" ;; + user) Size="$userSize" && data_path="$path2/$name2" ;; + data) Size="$dataSize" && data_path="$path/$1/$name2" ;; + obb) Size="$obbSize" && data_path="$path/$1/$name2" ;; *) [[ -f $app_details ]] && Size="$(cat "$app_details" | awk "/$1Size/"'{print $1}' | cut -f2 -d '=' | tail -n1 | sed 's/\"//g')" ; data_path="$2" ; Compression_method=tar ; zsize=1 esac if [[ -d $data_path ]]; then if [[ $Size != $(du -ks "$data_path" | awk '{print $1}') ]]; then + [[ $name2 != $Open_apps ]] && am force-stop "$name2" [[ $lxj -ge 95 ]] && echoRgb "$data空間不足,達到$lxj%" "0" && exit 2 echoRgb "備份$1數據" "2" case $1 in @@ -183,7 +184,7 @@ Backup_data() { fi } recovery_backup() { - echo "$name2 $name $apk_path2" >>"$script_path/應用列表.txt" + echo "$name1 $name2 $apk_path2" >>"$script_path/應用列表.txt" if [[ $i = $r ]]; then if [[ -f $tools_path/META-INF/com/google/android/update-binary ]]; then echoRgb "輸出用於recovery的備份卡刷包" ; rm -rf "$MODDIR/recovery卡刷備份.zip" ; mkdir -p "$MODDIR/tmp" @@ -217,29 +218,37 @@ TIME="$starttime1" ERROR=1 { while [[ $i -le $r ]]; do - name="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" - name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" - [[ $name = "" ]] && echoRgb "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" "0" && exit 1 - apk_path="$(pm path "$name" | cut -f2 -d ':')" + name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" + name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" + [[ $name2 = "" ]] && echoRgb "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" "0" && exit 1 + apk_path="$(pm path "$name2" | cut -f2 -d ':')" apk_path2="$(echo "$apk_path" | head -1)" ; apk_path2="${apk_path2%/*}" if [[ -d $apk_path2 ]]; then if [[ $Hybrid_backup = false ]]; then echoRgb "備份第$i個應用 總共$r個 剩下$((r-i))個應用" - if [[ $name2 = *! || $name2 = *! ]]; then - name2="$(echo "$name2" | sed 's/!//g ; s/!//g')" - echoRgb "跳過備份$name2 所有數據" "0" + if [[ $name1 = *! || $name1 = *! ]]; then + name1="$(echo "$name1" | sed 's/!//g ; s/!//g')" + echoRgb "跳過備份$name1 所有數據" "0" No_backupdata=1 else [[ $No_backupdata != "" ]] && unset No_backupdata fi - Backup_folder="$Backup/${name2}[${name}]" + Backup_folder="$Backup/$name1" app_details="$Backup_folder/app_details" - [[ -f $app_details ]] && . "$app_details" + if [[ -f $app_details ]]; then + . "$app_details" + if [[ $PackageName != $name2 ]]; then + unset userSize ChineseName PackageName apk_version + Backup_folder="$Backup/${name1}[${name2}]" + app_details="$Backup_folder/app_details" + [[ -f $app_details ]] && . "$app_details" + fi + fi lxj="$(df -h "$data" | awk 'END{print $4}' | sed 's/%//g')" starttime2="$(date -u "+%s")" - echoRgb "備份$name2 ($name)" - [[ $name = com.tencent.mobileqq ]] && echo "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" - [[ $name = com.tencent.mm ]] && echo "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" + echoRgb "備份$name1 ($name2)" + [[ $name2 = com.tencent.mobileqq ]] && echo "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" + [[ $name2 = com.tencent.mm ]] && echo "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" apk_number="$(echo "$apk_path" | wc -l)" if [[ $apk_number = 1 ]]; then if [[ $Splist = false ]]; then @@ -260,7 +269,7 @@ while [[ $i -le $r ]]; do #備份user數據 [[ $Backup_user_data = true ]] && Backup_data "user" fi - endtime 2 "$name2備份" + endtime 2 "$name1備份" echoRgb "完成$((i*100/r))% $hx$(df -h "$data" | awk 'END{print "剩餘:"$3"使用率:"$4}')" echoRgb recovery_backup @@ -268,7 +277,7 @@ while [[ $i -le $r ]]; do recovery_backup fi else - echoRgb "$name2[$name]不在安裝列表,備份個寂寞?" "0" + echoRgb "$name1[$name2]不在安裝列表,備份個寂寞?" "0" fi if [[ $i = $r ]]; then endtime 1 "應用備份" diff --git a/執行狀態日誌.txt b/執行狀態日誌.txt new file mode 100644 index 0000000..4aaf7dc --- /dev/null +++ b/執行狀態日誌.txt @@ -0,0 +1,74 @@ + -13:05:57 + --------------歡迎使用⚡️🤟🐂纸備份-------------- + -當前腳本執行路徑:/data/media/0/Download/數據備份v10 + -busybox路徑:/data/backup_tools/busybox + -busybox版本:v1.34.1-osm0sis + -appinfo版本:2021-10-24(59) + -腳本版本:V10.6 2021/10/22-20:59 + -設備架構arm64-v8a + -品牌:OnePlus + -設備代號:OnePlus8T + -型號:KB2003 + -Android版本:11 + -SDK:30 + -終端:MT管理器 + -13:05:58 -壓縮方式:zstd + -13:05:58 -提示 腳本支持後台壓縮 可以直接離開腳本 + -或是關閉終端也能備份 如需終止腳本 + -請再次執行備份應用.sh即可停止 + -備份結束將發送toast提示語 + -13:05:58 沒有檢測到USB於本地備份 + -13:05:58 當前backup_settings.conf的 + -Backup_obb_data為0將不備份外部數據 + -13:05:58 備份第1個應用 總共4個 剩下3個應用 + -13:05:58 備份1DM+ (idm.internet.download.manager.plus) + -13:05:58 Split Apk支持備份 + -13:05:58 base.apk 9.37MB(9595.70KB) + -13:05:58 split_config.arm64_v8a.apk 18.59MB(19041.17KB) + -13:05:58 split_config.xxhdpi.apk 0.57MB(587.89KB) + -13:05:58 備份3個Apk成功 + -13:05:58 備份user數據 + -13:05:59 備份user數據成功 + -13:05:59 1DM+備份用時:1秒 + -13:05:59 完成25% 本地剩餘:183.8G使用率:18% + -13:05:59 + -13:05:59 備份第2個應用 總共4個 剩下2個應用 + -13:05:59 備份AIDA64 (com.finalwire.aida64) + -13:05:59 非Split Apk + -13:05:59 base.apk 8.94MB(9153.26KB) + -13:06:00 備份1個Apk成功 + -13:06:00 備份user數據 + -13:06:00 備份user數據成功 + -13:06:00 AIDA64備份用時:1秒 + -13:06:00 完成50% 本地剩餘:183.8G使用率:18% + -13:06:00 + -13:06:00 備份第3個應用 總共4個 剩下1個應用 + -13:06:00 備份APK編輯器 (com.gmail.heagoo.apkeditor.pro) + -13:06:00 非Split Apk + -13:06:00 base.apk 6.24MB(6391.15KB) + -13:06:00 備份1個Apk成功 + -13:06:00 備份user數據 + -13:06:02 備份user數據成功 + -13:06:02 APK編輯器備份用時:2秒 + -13:06:02 完成75% 本地剩餘:183.8G使用率:18% + -13:06:02 + -13:06:02 備份第4個應用 總共4個 剩下0個應用 + -13:06:02 備份AccuBattery (com.digibites.accubattery) + -13:06:02 非Split Apk + -13:06:02 base.apk 8.98MB(9196.41KB) + -13:06:02 備份1個Apk成功 + -13:06:02 備份user數據 + -13:06:02 備份user數據成功 + -13:06:02 AccuBattery備份用時:0秒 + -13:06:02 完成100% 本地剩餘:183.8G使用率:18% + -13:06:02 + -13:06:02 輸出用於recovery的備份卡刷包 + -13:06:03 打包卡刷包成功 + -13:06:03 輸出:/data/media/0/Download/數據備份v10/recovery卡刷備份.zip + -13:06:03 應用備份用時:5秒 + -13:06:03 你要備份跑路?祝你卡米9008 + -13:06:03 備份資料夾路徑:/data/media/0/Download/數據備份v10/Backup_zstd + -13:06:03 備份資料夾總體大小88.6M + -13:06:03 本次備份: 83mb + -13:06:03 批量備份完成 + -13:06:03 批量備份開始到結束用時:5秒