diff --git a/app/build.gradle b/app/build.gradle index 2d2e30e..738a433 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { defaultConfig { applicationId "com.aoleyun.sn" - versionCode 161 - versionName "1.4.1014" + versionCode 168 + versionName "1.4.1126" //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. minSdkVersion 24 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b832374..e283f32 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -35,6 +35,8 @@ + + @@ -164,11 +166,11 @@ android:label="一键加速" android:launchMode="singleInstance" android:theme="@style/activity_styles"> - - + + - - + + > getWallpaperObservable() { + return mRetrofit.create(WallpaperApi.class) + .getWallpaper(Utils.getSerial(mContext)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } + /* * * API @@ -823,10 +831,6 @@ public class NetInterfaceManager { return mRetrofit.create(SendDownloadInfoApi.class); } - public SendScreenshotApi getScreenshotApi() { - return mRetrofit.create(SendScreenshotApi.class); - } - public SendScreenshotCall getScreenshotCall() { return mRetrofit.create(SendScreenshotCall.class); } @@ -1496,31 +1500,6 @@ public class NetInterfaceManager { }); } - public void getDeveloper(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { - ConnectMode connectMode = ConnectMode.ONE_HOUR; - if (refresh) { - connectMode = ConnectMode.ONE_MINUTE; - } - if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_DEVELOPER, connectMode)) { - Log.e(TAG, "getDeveloper: cache2"); - getDeveloper(lifecycle, callback); - } else { - String jsonString = cacheHelper.getAsString(UrlAddress.GET_DEVELOPER); - //为 "" 是已经请求成功的 - if (jsonString == null) { - Log.e(TAG, "getDeveloper: cache2"); - getDeveloper(lifecycle, callback); - } else { -// Gson gson = new Gson(); -// Type type = new TypeToken() { -// }.getType(); -// DeveloperBean developerBean = gson.fromJson(jsonString, type); -// JGYUtils.getInstance().setDeveloperOptions(developerBean.getIs_developer()); -// callback.onComplete(); - } - } - } - public void getDeveloper(BehaviorSubject lifecycle, onCompleteCallback callback) { getDeveloperControl() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) @@ -2644,7 +2623,7 @@ public class NetInterfaceManager { tagSets.add(JGYUtils.MT8768Tag); } else if (platform == JGYUtils.AUDG104Platform) { tagSets.add(JGYUtils.AUDG104Tag); - }else if (platform == JGYUtils.HL500Platform) { + } else if (platform == JGYUtils.HL500Platform) { tagSets.add(JGYUtils.HL500Tag); } }); @@ -2702,14 +2681,15 @@ public class NetInterfaceManager { } private Observable getUpdateDeviceInfoObservable() { - String add = Utils.getAddressJsonString(mContext); - cacheHelper.put(UrlAddress.UPDATE_DEVICEINFO, add); + String addressJsonString = Utils.getAddressJsonString(mContext); + cacheHelper.put(UrlAddress.UPDATE_DEVICEINFO, addressJsonString); return getUpdateDeviceInfo().updateDeviceInfo( Utils.getSerial(mContext), NetInterfaceManager.HTTP_KEY, Utils.getMachine(mContext), Utils.getHardware(mContext), - add + addressJsonString, + Utils.getOtherInfo() ); } @@ -4396,20 +4376,38 @@ public class NetInterfaceManager { @Override public void onNext(@NonNull BaseResponse blacklistBeanBaseResponse) { Log.e("getBlackList", "onNext: " + blacklistBeanBaseResponse); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + + } else { + try { + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_black_list"); + Log.e(TAG, "getBlackList: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } if (blacklistBeanBaseResponse.code == 200) { BlacklistBean blacklistBean = blacklistBeanBaseResponse.data; if (blacklistBean == null) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, ""); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } else { List strings = blacklistBean.getBlacklist(); if (strings == null || strings.isEmpty()) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, ""); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } else { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, String.join(",", strings)); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + // TODO: 2024/10/31 需要多写一次保证数据库变化 + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, String.join(",", strings)); + } } } } else { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, ""); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } } @@ -4454,20 +4452,40 @@ public class NetInterfaceManager { @Override public void onNext(@NonNull BaseResponse blacklistBeanBaseResponse) { Log.e("getWhiteList", "onNext: " + blacklistBeanBaseResponse); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + + } else { + try { + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_white_list"); + Log.e(TAG, "getWhiteList: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } if (blacklistBeanBaseResponse.code == 200) { WhitelistBean whitelistBean = blacklistBeanBaseResponse.data; if (whitelistBean == null) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, ""); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } else { List strings = whitelistBean.getWhitelist(); if (strings == null || strings.isEmpty()) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, ""); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } else { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + // TODO: 2024/10/31 需要多写一次保证数据库变化 + strings.add("ttstd.com"); + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); + strings.remove("ttstd.com"); + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); + } } } } else { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, ""); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } } @@ -4487,4 +4505,50 @@ public class NetInterfaceManager { } }; } + + public void getWallpaper() { + getWallpaperObservable() + .subscribe(getWallpaperObserver(null)); + } + + public void getWallpaper(BehaviorSubject lifecycle, onCompleteCallback callback) { + getWallpaperObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getWallpaperObserver(callback)); + } + + public Observer> getWallpaperObserver(onCompleteCallback callback) { + return new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getWallpaper", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("getWallpaper", "onNext: " + baseResponse); + if (baseResponse.code == 200) { + Wallpaper wallpaper = baseResponse.data; + String url = wallpaper.getFile_url(); + JGYUtils.getInstance().setWallpaper(url); + } else { + mMMKV.encode(CommonConfig.WALLPAPER_URL_KEY, ""); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getWallpaper", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getWallpaper", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; + } } diff --git a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java index 5e7ff23..c500b54 100644 --- a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java +++ b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java @@ -108,7 +108,7 @@ public class UrlAddress { public static final String APP_SETTING = "android/sn-control/app-setting"; /*获取设备批次全局黑名单*/ public static final String BLACK_LIST = "android/common/blacklist"; - /*获取设备批次全局黑名单*/ + /*获取设备批次全局白名单*/ public static final String WHITE_LIST = "android/common/whitelist"; /** @@ -132,6 +132,8 @@ public class UrlAddress { public static final String GET_DESKTOPS_DIY_UPDATE = "Sn/getDesktopsDiyUpdate"; /*获取系统默认程序*/ public static final String GET_DEFAULT_APP = "app/getDefaultApp"; + /*获取壁纸设置*/ + public static final String GET_WALLPAPER = "android/sn/wallpaper"; /** * 开发人员调试 diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/WallpaperApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/WallpaperApi.java new file mode 100644 index 0000000..ede2b3a --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/WallpaperApi.java @@ -0,0 +1,16 @@ +package com.aoleyun.sn.network.api.get; + +import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.Wallpaper; +import com.aoleyun.sn.network.UrlAddress; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface WallpaperApi { + @GET(UrlAddress.GET_WALLPAPER) + Observable> getWallpaper( + @Query("sn") String sn + ); +} diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/SendScreenshotApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/SendScreenshotApi.java index 392d2ec..4ff2c7b 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/SendScreenshotApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/SendScreenshotApi.java @@ -12,6 +12,7 @@ import retrofit2.http.POST; import retrofit2.http.Part; import retrofit2.http.QueryMap; +@Deprecated public interface SendScreenshotApi { @Multipart @POST(UrlAddress.SEND_SCREENSHOT) diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/UpdateDeviceInfoApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/UpdateDeviceInfoApi.java index b399c4a..2b5e93f 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/UpdateDeviceInfoApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/UpdateDeviceInfoApi.java @@ -16,6 +16,7 @@ public interface UpdateDeviceInfoApi { @Field("key") String key, @Field("machine") String machine, @Field("hardware") String hardware, - @Field("address") String address + @Field("address") String address, + @Field("other") String other ); } diff --git a/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java b/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java index 78893e5..b8239a9 100644 --- a/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java +++ b/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java @@ -39,7 +39,7 @@ public class RepeatRequestInterceptor implements Interceptor { // Response copy = response.newBuilder().body(responseBody).build(); ResponseBody copy = ResponseBody.create(responseBody.contentType(), content); if (BuildConfig.DEBUG) { - if (content.length() < 1024) { + if (content.length() < 10240) { Log.e(TAG, "请求体返回:| Response: " + request.url() + "\t body: " + content); }else { Log.e(TAG, "请求体返回:| Response: " + request.url() + "\t body: too long" ); @@ -87,7 +87,7 @@ public class RepeatRequestInterceptor implements Interceptor { final Request copy = request.newBuilder().build(); final Buffer buffer = new Buffer(); copy.body().writeTo(buffer); - if (buffer.size() > 1024) { + if (buffer.size() > 10240) { return "-too long"; } return buffer.readUtf8(); @@ -100,7 +100,7 @@ public class RepeatRequestInterceptor implements Interceptor { try { final Buffer buffer = new Buffer(); body.writeTo(buffer); - if (buffer.size() > 1024) { + if (buffer.size() > 10240) { return "-too long"; } return buffer.readUtf8(); diff --git a/app/src/main/java/com/aoleyun/sn/push/PushManager.java b/app/src/main/java/com/aoleyun/sn/push/PushManager.java index 1c40ce7..959b64a 100644 --- a/app/src/main/java/com/aoleyun/sn/push/PushManager.java +++ b/app/src/main/java/com/aoleyun/sn/push/PushManager.java @@ -258,7 +258,8 @@ public class PushManager { private static final String GLOBAL_WHITE_LIST = "75"; /*应用市场应用安装*/ private static final String APPSTORE_INSTALL = "76"; - + /*设置壁纸*/ + private static final String wallpaper = "78"; public void setPushContent(String title, String extras) { switch (title) { @@ -670,11 +671,18 @@ public class PushManager { break; case APPSTORE_INSTALL: + break; + case wallpaper: + setWallpaper(extras); break; default: } } + private void setWallpaper(String extras) { + NetInterfaceManager.getInstance().getWallpaper(); + } + private void refreshFocusMode() { // Intent intent = new Intent(); // ComponentName componentName = new ComponentName("com.aoleyunos.dop6", "com.aoleyunos.dop6.service.main.MainService"); diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java index dd0cbd8..5a9c7c7 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java @@ -54,6 +54,8 @@ public class MainSContact { void getDefaultDesktop(); /*设置开机动画*/ void setLogoImg(); + /*获取壁纸*/ + void getWallpaper(); /*获取所有app详细信息*/ void getAllAppList(); /*获取浏览器书签设置管控*/ @@ -138,6 +140,8 @@ public class MainSContact { void getDefaultDesktopFinish(); /*设置开机动画*/ void setLogoImgFinish(); + /*获取开机动画结束*/ + void getWallpaperFinish(); /*获取所有app详细信息*/ void getAllAppListFinish(); /*获取浏览器书签设置管控结束*/ diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java index 0a4b117..c8a667f 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java @@ -11,7 +11,6 @@ import com.alibaba.sdk.android.push.CommonCallback; import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory; import com.aoleyun.sn.bean.AdminAppInfo; import com.aoleyun.sn.bean.BaseResponse; -import com.aoleyun.sn.bean.BlacklistBean; import com.aoleyun.sn.bean.StudentsInfo; import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.JGYActions; @@ -114,7 +113,6 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void setPushTag(String tag) { mView.setTagsFinish(TextUtils.isEmpty(tag)); - } }); String tagSets = mMMKV.decodeString(CommonConfig.DEVICES_TAG); @@ -293,8 +291,9 @@ public class MainSPresenter implements MainSContact.Presenter { */ @Override public void getDeveloper() { + Log.e(TAG, "getDeveloper: "); NetInterfaceManager.getInstance() - .getDeveloper(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + .getDeveloper(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.getDeveloperFinish(); @@ -393,6 +392,16 @@ public class MainSPresenter implements MainSContact.Presenter { } } + @Override + public void getWallpaper() { + NetInterfaceManager.getInstance().getWallpaper(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getWallpaperFinish(); + } + }); + } + @Override public void getAllAppList() { NetInterfaceManager.getInstance() diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java index 931c7d2..aa183b4 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java @@ -1125,8 +1125,8 @@ public class MainService extends Service implements MainSContact.MainView, Netwo } else { mPresenter.getFirstConnect(); mPresenter.getStudesInfo(); - mPresenter.getDeveloper(); } + mPresenter.getDeveloper(); mPresenter.sendMacAddress(); } @@ -1234,6 +1234,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void setLogoImgFinish() { + mPresenter.getWallpaper(); + } + + @Override + public void getWallpaperFinish() { mPresenter.getAllAppList(); } diff --git a/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java b/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java index 593afff..7545fb1 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java @@ -104,6 +104,7 @@ public class ApkUtils { * 桌面app */ public static final Set desktopAPP = new HashSet() {{ + this.add("com.aoleyunos.dop"); this.add("com.aoleyunos.dop1"); this.add("com.aoleyunos.dop2"); this.add("com.aoleyunos.dop3"); @@ -1410,6 +1411,7 @@ public class ApkUtils { this.add("com.aoleyun.sn"); this.add("com.aoleyun.browser"); this.add("com.aoleyun.appstore"); + this.add("com.aoleyunos.dop0"); this.add("com.aoleyunos.dop1"); this.add("com.aoleyunos.dop2"); this.add("com.aoleyunos.dop3"); diff --git a/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java b/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java index 2c9bd8c..a28087f 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.ActivityTaskManager; +import android.app.WallpaperManager; import android.app.role.RoleManager; import android.content.ComponentName; import android.content.ContentResolver; @@ -18,6 +19,8 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; @@ -38,6 +41,7 @@ import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.core.content.ContextCompat; +import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory; import com.aoleyun.sn.BuildConfig; import com.aoleyun.sn.bean.AdminAppInfo; import com.aoleyun.sn.bean.AppID; @@ -61,6 +65,9 @@ import com.aoleyun.sn.service.GuardService; import com.aoleyun.sn.service.StepService; import com.aoleyun.sn.service.main.MainService; import com.blankj.utilcode.util.FileUtils; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.target.SimpleTarget; +import com.bumptech.glide.request.transition.Transition; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; @@ -77,6 +84,7 @@ import com.tencent.mmkv.MMKV; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -773,13 +781,47 @@ public class JGYUtils { } } + public static final Set DEFAULT_ALLOW_NETWORK_APP_SET = new HashSet() {{ + this.add(BuildConfig.APPLICATION_ID); + this.add("com.aoleyun.appstore"); + this.add("com.aoleyun.camera"); + this.add("com.aoleyun.calculator"); + this.add("com.aoleyun.gallery3d"); + this.addAll(ApkUtils.mJxwApp); + this.addAll(ApkUtils.desktopAPP); + this.add("com.android.settings"); + this.add("com.aoleyunos.dop"); + this.add("com.aoleyunos.dop1"); + this.add("com.aoleyunos.dop2"); + this.add("com.aoleyunos.dop3"); + this.add("com.aoleyunos.dop4"); + this.add("com.aoleyunos.dop5"); + this.add("com.aoleyunos.dop6"); + this.add("com.aoleyunos.dop7"); + this.add("com.aoleyunos.dop8"); + this.add("com.aoleyunos.dop9"); + this.add("com.aoleyunos.dop10"); + }}; + public void setAppNetwork(HashSet blackList, HashSet whiteList) { Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 blackList =" + blackList); Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 whiteList =" + whiteList); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + + } else { + try { + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + CmdUtil.Result result = CmdUtil.execute(" settings delete system aole_network_allow"); + Log.e(TAG, "setAppNetwork: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (!MTK11Tag.equals(JGYUtils.getInstance().getAppPlatform())) { if (blackList == null || blackList.size() == 0) { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, ""); + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, null); } else { String net_not = String.join(",", blackList); Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not); @@ -796,19 +838,19 @@ public class JGYUtils { } else { pkgs = new HashSet<>(whiteList); } - pkgs.add(BuildConfig.APPLICATION_ID); - pkgs.add("com.aoleyun.appstore"); - pkgs.add("com.aoleyun.camera"); - pkgs.add("com.aoleyun.calculator"); - pkgs.add("com.aoleyun.gallery3d"); - pkgs.addAll(ApkUtils.mJxwApp); - + pkgs.addAll(DEFAULT_ALLOW_NETWORK_APP_SET); List filterList = pkgs.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList()); Log.e(TAG, "setAppNetwork: filterList = " + filterList); - if (filterList.size() == 0) { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, ""); - } else { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if (filterList.size() == 0) { + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + } else { + // TODO: 2024/10/31 需要多写一次保证数据库变化 + filterList.add("com.ttstd.utils"); + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + filterList.remove("com.ttstd.utils"); + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + } } } @@ -816,6 +858,44 @@ public class JGYUtils { * 应用安装之后添加到白名单 */ public void updateNetworkWhiteList() { + Log.e(TAG, "updateNetworkWhiteList: "); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + + } else { + try { + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + CmdUtil.Result result = CmdUtil.execute(" settings delete system aole_network_allow"); + Log.e(TAG, "updateNetworkWhiteList: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } + + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + + } else { + try { + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_black_list"); + Log.e(TAG, "updateNetworkWhiteList: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } + + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + + } else { + try { + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_white_list"); + Log.e(TAG, "getWhiteList: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } + + Set pkgs; int is_app_install = Settings.System.getInt(crv, CommonConfig.AOLE_APP_ALLOW_INSTALL, 0); if (is_app_install == 1) { @@ -824,24 +904,23 @@ public class JGYUtils { } else { pkgs = mMMKV.decodeStringSet(CommonConfig.AOLE_ACTION_NETWORK_ALLOW, new HashSet<>()); } - - pkgs.add(BuildConfig.APPLICATION_ID); - pkgs.add("com.aoleyun.appstore"); - pkgs.add("com.aoleyun.camera"); - pkgs.add("com.aoleyun.calculator"); - pkgs.add("com.aoleyun.gallery3d"); - pkgs.addAll(ApkUtils.mJxwApp); - + pkgs.addAll(DEFAULT_ALLOW_NETWORK_APP_SET); List whiteList = new ArrayList<>(pkgs); - List filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList()); Log.e(TAG, "updateNetworkWhiteList: filterList = " + filterList); - if (filterList.size() == 0) { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, ""); - } else { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if (filterList.size() == 0) { + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + } else { + // TODO: 2024/10/31 需要多写一次保证数据库变化 + filterList.add("com.ttstd.utils"); + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + filterList.remove("com.ttstd.utils"); + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + } } + Log.e(TAG, "updateNetworkWhiteList: " + filterList); } @@ -873,7 +952,7 @@ public class JGYUtils { public void writeDeselectIDtoSystem(List appIDList) { if (appIDList == null || appIDList.isEmpty()) { try { - Settings.System.putString(crv, CommonConfig.APP_VIEW_CLICK_DISABLED, ""); + Settings.System.putString(crv, CommonConfig.APP_VIEW_CLICK_DISABLED, null); // TODO: 2024/9/11 修复1.4.0907版本数据为空系统报错 CmdUtil.Result result = CmdUtil.execute(" settings delete system app_view_click_disabled"); Log.e(TAG, "writeDeselectIDtoSystem: " + result); @@ -1279,9 +1358,17 @@ public class JGYUtils { this.add("com.android.uiuios"); this.add("com.aoleyun.os"); this.add("com.aoleyun.audos"); + this.add("com.aoleyunos.dop"); this.add("com.aoleyunos.dop1"); this.add("com.aoleyunos.dop2"); this.add("com.aoleyunos.dop3"); + this.add("com.aoleyunos.dop4"); + this.add("com.aoleyunos.dop5"); + this.add("com.aoleyunos.dop6"); + this.add("com.aoleyunos.dop7"); + this.add("com.aoleyunos.dop8"); + this.add("com.aoleyunos.dop9"); + this.add("com.aoleyunos.dop10"); this.add("com.aoleyun.info"); this.add("com.calculator.uiui"); this.add("com.notepad.uiui"); @@ -1673,9 +1760,18 @@ public class JGYUtils { this.add("com.aoleyun.sn"); this.add("com.aoleyun.browser"); this.add("com.aoleyun.os"); + this.add("com.aoleyunos.dop"); this.add("com.aoleyunos.dop1"); this.add("com.aoleyunos.dop2"); this.add("com.aoleyunos.dop3"); + this.add("com.aoleyunos.dop4"); + this.add("com.aoleyunos.dop5"); + this.add("com.aoleyunos.dop6"); + this.add("com.aoleyunos.dop7"); + this.add("com.aoleyunos.dop8"); + this.add("com.aoleyunos.dop9"); + this.add("com.aoleyunos.dop10"); + }}; HashSet aihuaAppList = new HashSet() {{ @@ -2653,7 +2749,7 @@ public class JGYUtils { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("sn", Utils.getSerial(context)); jsonObject.addProperty("mac", Utils.getAndroid10MAC(mContext)); - jsonObject.addProperty("jpush_id", "0000"); + jsonObject.addProperty("jpush_id", PushServiceFactory.getCloudPushService().getDeviceId()); jsonObject.addProperty("devices_version", Utils.getCustomVersion()); jsonObject.addProperty("appstore_version", BuildConfig.VERSION_NAME); jsonObject.addProperty("store_version", Utils.getAPPVersionName(PackageNames.APPSTORE, mContext)); @@ -3360,4 +3456,40 @@ public class JGYUtils { return pkgs.contains(pkg); } } + + + public void setWallpaper(String url) { + String oldUrl = mMMKV.decodeString(CommonConfig.WALLPAPER_URL_KEY, ""); + if (oldUrl.equals(url)){ + Log.e(TAG, "setWallpaper: Already set" ); + return; + } + +// Bitmap bitmap = BitmapFactory.decodeFile(path); + //利用WallpaparManager,添加权限set_wallpaper + WallpaperManager wallpaperManager = WallpaperManager.getInstance(mContext); + +// // 获取当前壁纸(非缩略图) +// Drawable drawable = wallpaperManager.getDrawable(); +// // 获取当前壁纸的缩略图 +// Bitmap bitmap = wallpaperManager.getBitmap(); +// // 获取当前壁纸的尺寸 +// int width = wallpaperManager.getDesiredMinimumWidth(); +// int height = wallpaperManager.getDesiredMinimumHeight(); + Glide.with(mContext).asBitmap().load(url).into(new SimpleTarget() { + @Override + public void onResourceReady(@androidx.annotation.NonNull Bitmap resource, @Nullable Transition transition) { + try { + wallpaperManager.setBitmap(resource); + mMMKV.encode(CommonConfig.WALLPAPER_URL_KEY, url); + Log.e("setWallpaper", "onResourceReady: set wallpaper Successful"); + } catch (IOException e) { + e.printStackTrace(); + Log.e("setWallpaper", "onResourceReady: " + e.getMessage()); + Log.e("setWallpaper", "onResourceReady: set wallpaper failed"); + } + } + }); + + } } diff --git a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java index ee198ea..fb19167 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java @@ -71,6 +71,7 @@ public class SysSettingUtils { setSystemAppDisable(context, jsonObject); setNotification(context, jsonObject); setPanelShow(context, jsonObject); + setDisAllowCamera(context, jsonObject); } /** @@ -535,6 +536,8 @@ public class SysSettingUtils { //状态栏显示开关 int setting_statusbar = changeNum(jsonObject.get("setting_statusbar").getAsInt()); + Log.e(TAG, "setting_statusbar: " + setting_statusbar); + // int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0); // if (oldNum != setting_statusbar) { //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 @@ -1004,19 +1007,19 @@ public class SysSettingUtils { setTF(context, changeNum(is_memory_card)); } else { - TimeUtils.setEmpty(context); - TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(context); - if (null != c) { - Log.e("getTimeControl", c.toString()); - } - Settings.Global.putInt(context.getContentResolver(), CommonConfig.AOLEYUN_APPSTORE_INSTALL, 1); - setUsb(context, 0); - setBluetoothTransmission(context, 0); -// JGYUtils.getInstance().setDeveloperOptions(0); - setCanReset(context, 0); - setActionBar(context, 0); - setNavigationBar(context, 0); - setTF(context, 0); +// TimeUtils.setEmpty(context); +// TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(context); +// if (null != c) { +// Log.e("getTimeControl", c.toString()); +// } +// Settings.Global.putInt(context.getContentResolver(), CommonConfig.AOLEYUN_APPSTORE_INSTALL, 1); +// setUsb(context, 0); +// setBluetoothTransmission(context, 0); +//// JGYUtils.getInstance().setDeveloperOptions(0); +// setCanReset(context, 0); +// setActionBar(context, 0); +// setNavigationBar(context, 0); +// setTF(context, 0); } } @@ -1160,4 +1163,14 @@ public class SysSettingUtils { context.sendBroadcast(intent); } } + + public static void setDisAllowCamera(Context context, JsonObject jsonObject) { + JsonElement jsonElement = jsonObject.get("camera_ctrl"); + if (jsonElement != null && !jsonElement.isJsonNull()) { + int camera_ctrl = jsonElement.getAsInt(); + Log.e("setDisAllowCamera", "setDisAllowCamera: " + camera_ctrl); + Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_DISALLOW_CAMERA, changeNum(camera_ctrl)); + } + + } } diff --git a/app/src/main/java/com/aoleyun/sn/utils/Utils.java b/app/src/main/java/com/aoleyun/sn/utils/Utils.java index 82c6bac..6b6eded 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/Utils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/Utils.java @@ -48,6 +48,7 @@ import android.widget.Toast; import androidx.annotation.RequiresApi; import androidx.annotation.VisibleForTesting; +import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory; import com.aoleyun.sn.BuildConfig; import com.aoleyun.sn.R; import com.aoleyun.sn.comm.CommonConfig; @@ -109,7 +110,7 @@ import static android.content.Context.WIFI_SERVICE; public class Utils { - private static String TAG = "Utils"; + private static final String TAG = "Utils"; // MD5 设备地址标识 public static String getMAC(Context context) { @@ -795,7 +796,7 @@ public class Utils { * @return */ public static String getSerial(Context context) { - if ("HL500".equals(Build.MODEL)){ + if ("HL500".equals(Build.MODEL)) { return getIMEI(context); } if (TECLAST_BRAND.equalsIgnoreCase(Build.BRAND)) { @@ -1470,8 +1471,8 @@ public class Utils { jsonObject.addProperty("screen_rate", screen_rate); jsonObject.addProperty("working_time", SystemClock.elapsedRealtime() / 1000); jsonObject.addProperty("restart_count", (int) SPUtils.get(context, "restart_count", 0)); - jsonObject.addProperty("storage_usable", getRemnantSize(context)); - jsonObject.addProperty("storage_total", getDataTotalSize(context)); + jsonObject.addProperty("storage_usable", getDataTotalSizeGb(context)); + jsonObject.addProperty("storage_total", getDataTotalSizeGb(context)); String jsonString = jsonObject.toString(); Log.e(TAG, "getMachine: " + jsonString); return jsonString; @@ -1486,9 +1487,12 @@ public class Utils { String storage = getRemnantSize(context) + "/" + getDataTotalSize(context); int CPU = getNumCores(); JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("electric", electric); jsonObject.addProperty("charging", charging); jsonObject.addProperty("memory", memory); + jsonObject.addProperty("memory_used", Utils.getSizeGb(getFreeMemory(context))); + jsonObject.addProperty("memory_total", Utils.getSizeGb(getTotalMemory(context))); jsonObject.addProperty("storage", storage); jsonObject.addProperty("battery_capacity", Utils.getBatterymAh(context)); jsonObject.addProperty("CPU", CPU + "核"); @@ -1509,6 +1513,15 @@ public class Utils { jsonObject.addProperty("longitude", longitude); jsonObject.addProperty("latitude", latitude); String jsonString = jsonObject.toString(); + Log.e(TAG, "getAddressJsonString: " + jsonString); + return jsonString; + } + + public static String getOtherInfo() { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("push_id", PushServiceFactory.getCloudPushService().getDeviceId()); + String jsonString = jsonObject.toString(); + Log.e(TAG, "getOtherInfo: push_id = " + jsonString); return jsonString; } @@ -1751,6 +1764,23 @@ public class Utils { return String.format(Locale.getDefault(), " %.2f %s", size, units[index]); } + public static String getSizeGb(long size) { + DecimalFormat df = new DecimalFormat("#.00"); + return df.format((double) size / 1073741824); + } + + public static String getDataTotalSizeGb(Context context) { + StatFs sf = new StatFs(context.getCacheDir().getAbsolutePath()); + long blockSize = sf.getBlockSize(); + long totalBlocks = sf.getBlockCount(); + return getSizeGb(blockSize * totalBlocks); + } + + public static String getRemnantSizeGb(Context context) { + StatFs sf = new StatFs(context.getCacheDir().getAbsolutePath()); + long availableSize = sf.getAvailableBytes(); + return getSizeGb(availableSize); + } public static String getDataTotalSize(Context context) { StatFs sf = new StatFs(context.getCacheDir().getAbsolutePath());