From 32bad14c1387f70279de5602e2d7e1839d6c7b8c Mon Sep 17 00:00:00 2001 From: Fanhuitong <981964879@qq.com> Date: Tue, 4 Apr 2023 18:14:18 +0800 Subject: [PATCH] =?UTF-8?q?version:1.1.8=20fix:=20update:=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=9B=BE=E6=A0=87=EF=BC=8C=E5=A2=9E=E5=8A=A0sd?= =?UTF-8?q?=E5=8D=A1=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 6 +- .../zyappstore/activity/MainActivity.java | 1 + .../zyappstore/service/main/MainService.java | 1 + .../com/uiui/zyappstore/utils/ApkUtils.java | 26 +++- .../com/uiui/zyappstore/utils/JGYUtils.java | 132 ++++++++++++++++++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 4654 -> 4387 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 4654 -> 4387 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4654 -> 4387 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 4654 -> 4387 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 4654 -> 4387 bytes 10 files changed, 161 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 72a1e2d..689687e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'kotlin-android' apply plugin: "com.tencent.android.tpns" def appName() { - return "ZYAppStore" + return "CubeZYAppStore" } def releaseTime() { @@ -18,8 +18,8 @@ android { minSdkVersion 26 targetSdkVersion 29 - versionCode 5 - versionName "1.1.3" + versionCode 10 + versionName "1.1.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java b/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java index 44f2dbd..42bedbf 100644 --- a/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java +++ b/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java @@ -69,6 +69,7 @@ public class MainActivity extends BaseActivity { Log.e(TAG, "onCreate"); startService(new Intent(MainActivity.this, DownloadService.class)); starService(); + JGYUtils.getInstance().checkLocalExternalFiles(); } @Override diff --git a/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java b/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java index 8cabc2b..6764693 100644 --- a/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java +++ b/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java @@ -95,6 +95,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo file.mkdirs(); } mPresenter.getSnTag(); + JGYUtils.getInstance().checkLocalExternalFiles(); } @Override diff --git a/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java b/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java index 945d286..33d87b6 100644 --- a/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java +++ b/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java @@ -803,10 +803,32 @@ public class ApkUtils { public static HashSet ownApp = new HashSet() {{ this.add(BuildConfig.APPLICATION_ID); this.add("com.android.uiuios"); + this.add("com.safe.uiui"); + this.add("com.uiuios.aios"); + this.add("com.uiuios.sn"); + this.add("com.uiuios.appstore"); + this.add("com.uiuios.browser"); + this.add("com.uiui.aios"); + this.add("com.uiui.sn"); + this.add("com.uiui.appstore"); + this.add("com.uiui.browser"); + this.add("com.aoleyun.os"); + this.add("com.aoleyun.sn"); + this.add("com.aoleyun.appstore"); + this.add("com.aoleyun.browser"); + this.add("com.aoleyun.info"); + this.add("com.aoleyunos.dop1"); + this.add("com.aoleyunos.dop2"); + this.add("com.aoleyunos.diy"); + this.add("com.teclast.zyos"); + this.add("com.teclast.zy"); + this.add("com.teclast.zyappstore"); + this.add("com.teclast.zybrowser"); this.add("com.uiui.zyos"); + this.add("com.uiui.zy"); + this.add("com.uiui.zyappstore"); this.add("com.uiui.zybrowser"); this.add("com.uiui.zysn"); - this.add("com.uiui.aios"); - this.add("com.safe.uiui"); + this.add("com.uiui.calendar"); }}; } diff --git a/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java b/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java index acc8fa8..bbcb6ce 100644 --- a/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java +++ b/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java @@ -20,16 +20,29 @@ import android.util.Log; import androidx.core.content.ContextCompat; +import com.blankj.utilcode.util.FileUtils; import com.uiui.zyappstore.BuildConfig; import com.uiui.zyappstore.receiver.BootReceiver; import java.io.File; +import java.io.IOException; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.LinkedHashSet; +import java.util.List; +import java.util.function.BiConsumer; + +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.ObservableEmitter; +import io.reactivex.rxjava3.core.ObservableOnSubscribe; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; public class JGYUtils { @@ -438,4 +451,123 @@ public class JGYUtils { //true为打开,false为关闭 return powerManager.isInteractive(); } + + public List externalPkg = new ArrayList() {{ + this.add("com.aoleyun.appstore"); + this.add("com.aoleyun.browser"); + this.add("com.aoleyun.sn"); + this.add("com.aoleyun.info"); + + this.add("com.qi.studycomputer.launcher"); + this.add("com.wyt.evaluating"); + this.add("com.qi.childsystem.launcher"); + this.add("com.qi.TFSystem"); + this.add("com.yixuetong.user"); + this.add("com.wyt.tongbuyouxue"); + this.add("air.wyt.modloader"); + + this.add("com.alibaba.android.rimet"); + this.add("com.tencent.wemeet.app"); + }}; + + private static final String AOLE_DIR = "aole"; + public HashMap mPackageListMap = new HashMap<>(); + + public void checkLocalExternalFiles() { + File[] externalFiles = mContext.getExternalFilesDirs(null); + Log.e(TAG, "checkLocalAppInstall: externalFiles = " + Arrays.toString(externalFiles)); + + String SdPath = Environment.getExternalStorageDirectory().getAbsolutePath(); + Log.e(TAG, "checkLocalAppInstall: SdPath = " + SdPath); + String aolePath = SdPath + File.separator + AOLE_DIR; + File file = new File(aolePath); + String[] apkName = file.list(); + if (apkName == null || apkName.length == 0) { + Log.e(TAG, "checkLocalAppInstall: apkName is empty"); + } else { + Observable.create(new ObservableOnSubscribe>() { + @Override + public void subscribe(@NonNull ObservableEmitter> emitter) throws Throwable { + HashMap packageListMap = new HashMap<>(); + for (String fileName : apkName) { + String apkPath = aolePath + File.separator + fileName; + Log.e(TAG, "subscribe: " + apkPath); + String pkg = ApkUtils.getPackageName(mContext, apkPath); +// if (externalPkg.contains(pkg)) { + packageListMap.put(pkg, apkPath); +// } else { +// Log.e(TAG, "checkLocalAppInstall: skip: " + pkg + " fileName: " + fileName); +// } + } + mPackageListMap = packageListMap; + emitter.onNext(packageListMap); + } + }).subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("checkLocalAppInstall", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull HashMap stringStringHashMap) { + Log.e("checkLocalAppInstall", "onNext: " + stringStringHashMap); + stringStringHashMap.forEach(new BiConsumer() { + @Override + public void accept(String key, String value) { + if (ApkUtils.isAvailable(mContext, key)) { + Log.e("checkLocalAppInstall", "accept: installed: " + key); + } else { +// copyFile(value); + ApkUtils.installApp(mContext, value); + } + } + }); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("checkLocalAppInstall", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("checkLocalAppInstall", "onComplete: "); + + } + }); + } + } + + private void copyFile(String filePath) { + Log.e(TAG, "copyFile: " + filePath); + File file = new File(filePath); + String fileName = file.getName(); + String newFilePath = getDownLoadPath() + fileName; + File newFile = new File(newFilePath); + String fileMD5 = com.blankj.utilcode.util.FileUtils.getFileMD5ToString(file); + String newFileMD5 = FileUtils.getFileMD5ToString(newFile); + if (newFile.exists()) { + if (fileMD5.equals(newFileMD5)) { +// AdminManager.getInstance().installPackage(newFilePath); + } else { + newFile.delete(); + try { + Files.copy(file.toPath(), newFile.toPath()); +// AdminManager.getInstance().installPackage(newFilePath); + } catch (IOException e) { + e.printStackTrace(); + Log.e("Files.copy", "IOException:" + e.getMessage()); + } + } + } else { + try { + Files.copy(file.toPath(), newFile.toPath()); +// AdminManager.getInstance().installPackage(newFilePath); + } catch (IOException e) { + e.printStackTrace(); + Log.e("Files.copy", "IOException:" + e.getMessage()); + } + } + } } diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index 9b06c7c4069a77c17c4358bb918659ef742978a6..3e98f6ebb7961b2d0fdbe95c0413a933ca28b73a 100644 GIT binary patch delta 3689 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 delta 3959 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 delta 3959 zcmZ{nXEYlQ_s2=8n5BqSq_!erZ#80ztyEEJhQthNCJ18hQmwsbNmR}HX?al8NbG8> z!=ANU)u+$-|KI*z-E;1}pYwfj&-tGFtrTbxYSjlgYAdP8D!`yJ%JRDUGBSEF6$Pk* zzAhB1tDvl;EF-5Q0Dg=LfWuW`{%#>C4?naKOhe#r2jY%!SN(rh_TSjt3IO!~1a$TF z|7}SC9E`T|@KkmGcLC_XvAK|IIvCMN*(eGMrV1mNw$0rE({rYoyT2>y zoqT_^BNfHEJd5O6a9HqJ{2-JUN83TMOtFmU$VG}Se014%dUqG;RPlAsy(ek+9$fy- z%$GSN`|`_R=lH^_cO99#0rh`c>v1f=ho7}Oq}x!S(yg37gk6tF{Zt1%H^_iYFEW!@ z>=kJ>Sm~?itEu|pV!Y=$1|ZwEG8vl4=-T9bX{|{1)l{pzm_k=mlLt;4KukP?{2nIp zYr5w_EBQC4iXCJ_E6M$?Sm{jf*G{sOx5qVxPSu|oY<&oLEdNO}-#qt8BX$Ql*`^_R zf_%(37lo3}#|D($B^`HWSa5x)y!hbUgk^pgGZdOiMhpd}u0>j7WB@-Q%N$h@3DEgf zWCGm=Q^#->lSGMu^t{>wL#m}2E{N4CCnikp{s&uk|I?iNUJ#Nw!U{q6$3H8_dO9^CMMO-I^Yc4~Twf=XA-tHP za?5L_0EgW?(`vE*h}!0C4=jE(^{jPL@|cCQf_Rw5Z%#_04)1e*H*TgnaFY9is0$)3 z73uq6Lg#W;kkx2ez3e@fWUZq_q~=>s8$m?U%d&7AQSGaOsVbJx0y8G{ORspPlEQ-vX?j3`?)(O)7u>ia!9 z;fnVDbxvMRbvT0Qy9lxEC?+z;+kD%zy9X1^fqKxE=-}kc%|J8a*)e4yr1iTz(73V% zrbU#wFO_E|G&?C}CcU!U_AFGsX_YJnSL0dQe0WWCqm^X7pZE(QriqZ8E|hFvvNV`i zez37t^AZhDH`n{*v)yi}t|)5YAy;bJ_Ov@k1nH;U3rWc|-T#FrGFp!KzPQ&vuZHod zn^-ZNAJ*UKJD}jDJ(-%ekPgxN?ICrGUTGF}8nLwJV5HVyXIV?M)$nA+Cu~%gR30yV z7B5OMu$d%V?M_XG1>9|4r*&e(>B>fM8L~BhF!g}pq9`<2YKP417W>+ZB_2oH3Mwr6 zoR7b>Qn>4Xn{`OcXcXNbiL>?!nZa;_-k&I-(9go;qEk?>dWx5BaRm1sF0h4|XUwFo zByDyPUrd*;246CgzB#UFc_zV?K2a}U)`ZA0T;G`~(+!thGe%~|OwfHImqm&a*kveRb5HMufOPo~BOo&^FI4HUig*MfzO18=4 zH^^_*k!&|qE&pg|>}U)WQMj~l3$;j{Xf9gLXt>TE2>v;{^wlvZ3PUJ!3&0O$4u36= zQRU*g^Gv-(k}3}_r$+N-fGhgiIx~EZyWv&$2&zlIy)u~?cw^lZUHG0*$Xp+BuA^`#zTXumDiox+s3X4Ah!SfFNW&GwAhK(7RDF!_(v%R_zI_+^luq2GT zSDLkc+`%Uka-oAJLT?1Kh6E5yz9aDJVh{4D+08}ABE%}1sO29XC9aM81_r%eEoT}= zhhf;)`S2Ldkjp4{N=x=@0)}~dcx`ieZC%MMO+S%In1Kx`S%kHMYpS9syOn!$tZXsX z0~>Jb`HM2deMFBOINHFpACn^k;5rz#~Z6L@m3VNM5XE~XX z8AP&!`<{Er8(q2EC(}%nzkAjh$w*mF`*t17jd#N)09IW(!S5}BmNjGzb(XC6|A1Fa zrKR{RRA_@ZX;R+~PE+e>qje_f-AuL32&7wq%*9Z3+F1ANmo>TJxyG&8y4B)Nh}rw$ zTmWMa6)qK%#2t4KZA+==4XsCIR-J55S*3Dg>2K$T(1S2KLsl$}vaOu0vul=#C(icQ zKJk}Y^n|co%SZ_E)a*Ef75@A}`4-i0Hw{>_pM{myt<-^-A0=!#wqBka))hF@mW*z9 z_N@4BCKf3eX9W**x9!!HUh%0nDJx9 zahcG^zQsbh$?Ir4|CRmVZW^z(5{88`pR%)|MYQ$sd^>l2w2sqEt1u_FaVr83>s%p+ z{d5))bQ=+GF3dTsjKz>rzwS$oed0Gy+%&)XdQ2+6=8k625Iig$ARfpLGhOQFGR3%sM z4%rKn7LwaE?sniXswAMNmXz(vVxbbxh3zEC?KwXd{%2y(rD~H^Y5Mod2Fu?GVEO~` z(JWZpR5iM!rg+v`e&n1geK-ShuG-ST;ZQQ&}m!X9=iBj89p_xTC`*WduCNQn+(^6z{BFh;;M=FYAQ9}Zt8%p@8Z{^RD=7;uBS{>E){ z=MfMyfHymb{3gGF zsRyiZi2@*Ao|4gomzEydM2iRAWNx9;6gd%+q-d83RiTW1NaX$dimwG|k*-ULfZgZM z+Ni7EQ>9~TlF<+VV10ovD}q&?Z%SUfiw@{gb!b%Ild>+}J)WO3bk75f_}NT$9Rhs1 z8_}gCDS`pFhd&hQT5w3-nU5-k=xc%hlQ@xcW>kES;g@{rFeuWkg`PgJOq!q}72^B2 zWG;$#?EAz;lc}CqByJbdQAQ@N0)1XbySI5ZT2OkNy${V{P~@gP529g*N;gftJS@CH zcwj=%ueut0!ZML`@V!fi$zpts4j3G{I7f_5UBfsEvY;8GPEZqJkw*xEv3MCnC&e$S zW$q6DoF+MvoTxnifL*5VYYDoh^oJ>N0tVd$yNVr5hs%UG^jB$QzpI+#R{Y-_MEGC8 zV^m6880m;@PH4`U5WbQsQeGB|5c*>?sbJ0nY!eThuA zvSzO=H7d!Hf4~2E-;clN%RT3wd(Zvwobx=lR;m3{>_`Fa1KqhYlarl(Q#zzVXs>T&+X)U5bUk_2H(C3UjEhB zAOfk)9|Mn}Q%S`s@3GRBx)Z!I2aQ1aCDz3bvNkE4qBi%kJ@V+S&{Y#;-y z0g@VV*ZBt{Edv$YL9_*?O4cAXL(sXC}O7|_zMBaxTGo$}<@v|_=2CyXpRS~L;~^Ohy-lnD^` z*_V@9c;ET1HEj!j_+Z_Z9Y}`iSH#LF{#38vlfoGl1L|xWF%g?eYXwHTO~TEk%1QEt_GzNnWEP3erL`*_?W)M~a4>+)+ptZ#z+-uGqz4wd`jC6h zGS^5{k-CY~_+cC$pL4Y1-=0?KH+8$j7bq`#*|t0D(`W!+vv+J(Pao0_cy~Y2;06$_$roP z++83lA%qCl(z=|n4!6Mu&J`H^xFt`;w_y$nJ+WtQ9UADV-m@8mHcUBRxJL$;V7bXt z1C^Ykq`P}^Q1u@a@K0dGh{CzW-rns?*S?m`ny^pCQhalqPv6Ji^tzhsallyJ9BO1C z=-q=HS7_|ed9meO5gjLYbo5Lm^l%Ajn_h9U86?8Cc{nqZF*$bQw-s# z3g+q_HcRFx%LLWh0dnO0dL=!3vuKqd{fbL|-;DKH8yIMpkh$!QT3`kV&ELk>5pk z#NnKmcad2ZC<*Aw5|OPWAW!nSL*KAlIXv`xl<`R7UGNV-imzFYz$67&$~TNAx4T(?kRWyDKBe2_HO?+IP`375MH=*-=7_*MGH>dwKv&c_tldq zLYZm+FC@CJW8&L9WJk^T_}Oz_u#fjD{(ve=n77cv)ZPzN5G^fcRmlwSfjS3oFraf_ zEA2|&#P{#^@>3p3`r%h5r@p?9Ynpbs8eb`8m%+U1A$>!`So&K>tIhi2$vniTA$Tt1 zE?nDEBQ>^+XJR+9$;+lBRLOl+aP+1YBe`44>q$`BfYINuE?A{6S) zzx}Vv6`I5IX@<7+zuS)kGfc`5Qz>VUL-)b+e;he-s^0-K6Y6_`3{cLDcv!Dc@($Xb z^O!LC$oozek&PDqbMBv%?5V*GcwcLP`Bps}1I?>BK9-6IphyL-MC4E0ji%97P zvOVkhHf9i0A52u+GL}vP4Fn4GMZ0m0t@mHU1t z5fC5F$W=|z)#8Wg1dFB6X@bHxCw^ZLrA|pS7QLg1Y{M7+a6>JePLpD~S-T_O#@&QC0Z$|%d8 zn+#H7W{>_1&pMaHhqT}8qr|tlWZ|tWDoL1Qd{JD49NLAE+AEuJw-LP~13ii2EGeyN z@cMOSG?t=hG0(yDeW>2FH^tx!^@~m5?G+3M*2#fqG02SC4Hwk_IUjscn|7_8`dMaEK=~c4S;E9|FNRI62!blK5)9dG1qkM2iqNxcpB~VMy!tuUee4Ng>%synBIu> z;*rhXt>mZA?m&24co~C3PB9QFpv#9|aS?_rPLn6W${W^`t=NYTKP#8?ZtabKb@5-_#>YCkgGOCGbH(~NSp^Ng#wC)` zC3hakjV5>ry|}60T)|b#@%cF5X{DWH89*ke`rP##rRzEM2xe^tEB^8Ek;<47R!mci z$(ACOGpYaOtGjC0Jl_F_@Vk>vT&CPnToIRqqdWMQSnm?W4o4yyFh+S{BI;m(zP{)! zDza^5@0qhurn96@_vu%=u+XH9dqpOe3-@VCAg`*n|`+nv|lri9T%;3itf7Q2eN~MY4gy^qGKg}_s zDnxx5OXA9854HD`?Z7ak!vQ^w_hR?A{IF@0O?AFEMEJFNRt#GMtf5Wz455+_fJBuylNJDvlthxcoleGKCT~;5-x`H`ki6B2n4?C3zyv!VaixRlYC&eS9V5RCPhoO zG31U1?eU-NO$hT2X5?p+y~74sm_b^Xa*G4|^VXv;&vPEIu<%4?mh~(>bE|$lz(o{6 zGW9#i-R9(45l-SW;ngnUkmN>KXrWHmMxHXDu~T|xN5JrTUEu0d6mWv^pVq}MUUX%Z zS;BZ6g&O+@6EP@tvt>{h@HPW~;@l~|Bq{Dck1qX2{5fRww>gpM8(Klpujs$U(PDw% z%oaEA^DJ99r;C64-+trF8)9BHE!fZWZ#lfBr1YMFjiqW+NIKEinKqs<7@W);kU9VW9N)~*f85}cYg@m~~)DIaEIvdB$<@@~$4osM&q4{+62V*Yl+d@Y3i z<|$Q|o-tDRvoA%lVcOv3;*Df)Vdt=f-7>0>lQcb}c|RqCBj~BkFeTDU*-qImamuI1 yupuE;P==+~U&wH>N5n;WtIkD&cyb0{r)!rw)_Zm!WyVhTcl5N3v9;)1k^cuqNW?V& delta 3959 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 delta 3959 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 delta 3959 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