对接黑白名单和网址白名单

This commit is contained in:
2024-09-14 09:34:49 +08:00
parent 84e3fa87fa
commit c6bec5cd43
15 changed files with 209 additions and 105 deletions

View File

@@ -29,8 +29,8 @@ android {
defaultConfig { defaultConfig {
applicationId "com.aoleyun.sn" applicationId "com.aoleyun.sn"
versionCode 154 versionCode 157
versionName "1.4.0708" versionName "1.4.0913"
//There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
minSdkVersion 24 minSdkVersion 24
@@ -552,7 +552,7 @@ dependencies {
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
// debugImplementation because LeakCanary should only run in debug builds. // debugImplementation because LeakCanary should only run in debug builds.
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1' debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.14'
//磁盘缓存 //磁盘缓存
implementation 'com.jakewharton:disklrucache:2.0.2' implementation 'com.jakewharton:disklrucache:2.0.2'
//阿里云推送 //阿里云推送

View File

@@ -1,5 +1,7 @@
package com.aoleyun.sn.bean; package com.aoleyun.sn.bean;
import androidx.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import java.io.Serializable; import java.io.Serializable;
@@ -26,4 +28,10 @@ public class AppID implements Serializable {
public void setPackages(String packages) { public void setPackages(String packages) {
this.packages = packages; this.packages = packages;
} }
@NonNull
@Override
public String toString() {
return packages + ":" + ids;
}
} }

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.bean;
import java.io.Serializable;
import java.util.List;
public class WhitelistBean implements Serializable {
private static final long serialVersionUID = 1686627090518410825L;
List<String> whitelist;
public List<String> getWhitelist() {
return whitelist;
}
public void setWhitelist(List<String> whitelist) {
this.whitelist = whitelist;
}
}

View File

@@ -105,6 +105,7 @@ public class CommonConfig {
/*应用ID管控*/ /*应用ID管控*/
public final static String AOLE_ACTION_APP_FORBID_ID = "aole_app_forbid_id"; public final static String AOLE_ACTION_APP_FORBID_ID = "aole_app_forbid_id";
public final static String APP_VIEW_CLICK_DISABLED = "app_view_click_disabled";
/*禁止应用滑动*/ /*禁止应用滑动*/
public final static String AOLE_ACTION_DISABLE_SLIDE = "aole_disable_slide"; public final static String AOLE_ACTION_DISABLE_SLIDE = "aole_disable_slide";
@@ -114,8 +115,10 @@ public class CommonConfig {
public final static String AOLE_ACTION_NETWORK_DISALLOW = "aole_network_disallow"; public final static String AOLE_ACTION_NETWORK_DISALLOW = "aole_network_disallow";
/*允许联网应用 G10P*/ /*允许联网应用 G10P*/
public final static String AOLE_ACTION_NETWORK_ALLOW = "aole_network_allow"; public final static String AOLE_ACTION_NETWORK_ALLOW = "aole_network_allow";
/*全局黑名单*/ /*全局黑名单 G10P*/
public static final String AOLE_APP_WEB_BLACK_LIST = "app_web_black_list"; public static final String AOLE_APP_WEB_BLACK_LIST = "app_web_black_list";
/*全局白名单 G10P*/
public static final String AOLE_APP_WEB_WHITE_LIST = "app_web_white_list";
/*存储卡管控*/ /*存储卡管控*/
public final static String AOLE_ACTION_SDCARD_FORBID_ON = "aole_sdcard_forbid_on"; public final static String AOLE_ACTION_SDCARD_FORBID_ON = "aole_sdcard_forbid_on";

View File

@@ -16,11 +16,6 @@ public class JGYActions {
/* /*
* 需要写到底层的数据 * 需要写到底层的数据
* */ * */
/*应用管理-允许联网*/
public final static String ACTION_HRRECEIVER_JGY = "qch_jgy_network_allow";
/*应用管理-禁止联网*/
public final static String ACTION_HRRECEIVER_JGY_DIS = "qch_jgy_network_disallow";
/*状态栏*/ /*状态栏*/
public final static String ACTION_STATUSBAR_STATUS = "jgy_statusbar_status"; public final static String ACTION_STATUSBAR_STATUS = "jgy_statusbar_status";

View File

@@ -55,6 +55,7 @@ import com.aoleyun.sn.bean.SnSetting;
import com.aoleyun.sn.bean.SnTimeControl; import com.aoleyun.sn.bean.SnTimeControl;
import com.aoleyun.sn.bean.StudentsInfo; import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.bean.TopApp; import com.aoleyun.sn.bean.TopApp;
import com.aoleyun.sn.bean.WhitelistBean;
import com.aoleyun.sn.bean.WhoisBean; import com.aoleyun.sn.bean.WhoisBean;
import com.aoleyun.sn.bean.WiFiAlias; import com.aoleyun.sn.bean.WiFiAlias;
import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.CommonConfig;
@@ -86,6 +87,7 @@ import com.aoleyun.sn.network.api.get.SnAppAttrApi;
import com.aoleyun.sn.network.api.get.SnSettingApi; import com.aoleyun.sn.network.api.get.SnSettingApi;
import com.aoleyun.sn.network.api.get.SnTimeControlApi; import com.aoleyun.sn.network.api.get.SnTimeControlApi;
import com.aoleyun.sn.network.api.get.TopAppControlApi; import com.aoleyun.sn.network.api.get.TopAppControlApi;
import com.aoleyun.sn.network.api.get.WhiteListApi;
import com.aoleyun.sn.network.api.post.AppLimitApi; import com.aoleyun.sn.network.api.post.AppLimitApi;
import com.aoleyun.sn.network.api.post.AppinsideWebApi; import com.aoleyun.sn.network.api.post.AppinsideWebApi;
import com.aoleyun.sn.network.api.post.BatteryInfoApi; import com.aoleyun.sn.network.api.post.BatteryInfoApi;
@@ -542,7 +544,7 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public Observable<BaseResponse<AppID>> getAppIDControlObservable() { public Observable<BaseResponse<List<AppID>>> getAppIDControlObservable() {
return mRetrofit.create(DeselectIDApi.class) return mRetrofit.create(DeselectIDApi.class)
.getDeselectIDApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial(mContext)) .getDeselectIDApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial(mContext))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
@@ -752,6 +754,13 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public Observable<BaseResponse<WhitelistBean>> getWhiteListObservable() {
return mRetrofit.create(WhiteListApi.class)
.getWhiteList(Utils.getSerial(mContext))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/* /*
* *
* API * API
@@ -1802,15 +1811,15 @@ public class NetInterfaceManager {
if (jsonString == null) { if (jsonString == null) {
getAppIDControl(lifecycle, callback); getAppIDControl(lifecycle, callback);
} else { } else {
Gson gson = new Gson(); // Gson gson = new Gson();
Type type = new TypeToken<AppID>() { // Type type = new TypeToken<AppID>() {
}.getType(); // }.getType();
AppID appID = gson.fromJson(jsonString, type); // AppID appID = gson.fromJson(jsonString, type);
if (appID == null) { // if (appID == null) {
JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); // JGYUtils.getInstance().writeDeselectIDtoSystem("", "");
} else { // } else {
JGYUtils.getInstance().writeDeselectIDtoSystem(appID.getIds(), appID.getPackages()); // JGYUtils.getInstance().writeDeselectIDtoSystem(appID.getIds(), appID.getPackages());
} // }
callback.onComplete(); callback.onComplete();
} }
} }
@@ -1835,29 +1844,23 @@ public class NetInterfaceManager {
.subscribe(getAppIDControlObserver(null)); .subscribe(getAppIDControlObserver(null));
} }
public Observer<BaseResponse<AppID>> getAppIDControlObserver(onCompleteCallback callback) { public Observer<BaseResponse<List<AppID>>> getAppIDControlObserver(onCompleteCallback callback) {
return new Observer<BaseResponse<AppID>>() { return new Observer<BaseResponse<List<AppID>>>() {
@Override @Override
public void onSubscribe(@NonNull Disposable d) { public void onSubscribe(@NonNull Disposable d) {
Log.e("getAppIDControl", "onSubscribe: "); Log.e("getAppIDControl", "onSubscribe: ");
} }
@Override @Override
public void onNext(@NonNull BaseResponse<AppID> baseResponse) { public void onNext(@NonNull BaseResponse<List<AppID>> baseResponse) {
Log.e("getAppIDControl", "onNext: " + baseResponse); Log.e("getAppIDControl", "onNext: " + baseResponse);
if (baseResponse.code == OK) { if (baseResponse.code == OK) {
AppID appID = baseResponse.data; List<AppID> appIDList = baseResponse.data;
cacheHelper.put(UrlAddress.GET_APPID, GsonUtils.toJSONString(appID)); cacheHelper.put(UrlAddress.GET_APPID, GsonUtils.toJSONString(appIDList));
String ids = appID.getIds(); JGYUtils.getInstance().writeDeselectIDtoSystem(appIDList);
String packages = appID.getPackages();
if (appID == null) {
JGYUtils.getInstance().writeDeselectIDtoSystem("", "");
} else {
JGYUtils.getInstance().writeDeselectIDtoSystem(ids, packages);
}
} else { } else {
cacheHelper.put(UrlAddress.GET_APPID, ""); cacheHelper.put(UrlAddress.GET_APPID, "");
JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); JGYUtils.getInstance().writeDeselectIDtoSystem(null);
} }
} }
@@ -4348,18 +4351,18 @@ public class NetInterfaceManager {
} }
public void getBlackList(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) { public void getBlackList(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
NetInterfaceManager.getInstance().getBlackListObservable() getBlackListObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getBlackListObserver(callback)); .subscribe(getBlackListObserver(callback));
} }
public void getBlackList(onCompleteCallback callback) { public void getBlackList(onCompleteCallback callback) {
NetInterfaceManager.getInstance().getBlackListObservable() getBlackListObservable()
.subscribe(getBlackListObserver(callback)); .subscribe(getBlackListObserver(callback));
} }
public void getBlackList() { public void getBlackList() {
NetInterfaceManager.getInstance().getBlackListObservable() getBlackListObservable()
.subscribe(getBlackListObserver(null)); .subscribe(getBlackListObserver(null));
} }
@@ -4407,5 +4410,61 @@ public class NetInterfaceManager {
}; };
} }
public void getWhiteList(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getWhiteListObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getWhiteListObserver(null));
}
public void getWhiteList(onCompleteCallback callback) {
getWhiteListObservable().subscribe(getWhiteListObserver(callback));
}
public void getWhiteList() {
getWhiteListObservable().subscribe(getWhiteListObserver(null));
}
public Observer<BaseResponse<WhitelistBean>> getWhiteListObserver(onCompleteCallback callback) {
return new Observer<BaseResponse<WhitelistBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getWhiteList", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<WhitelistBean> blacklistBeanBaseResponse) {
Log.e("getWhiteList", "onNext: " + blacklistBeanBaseResponse);
if (blacklistBeanBaseResponse.code == 200) {
WhitelistBean whitelistBean = blacklistBeanBaseResponse.data;
if (whitelistBean == null) {
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, "");
} else {
List<String> strings = whitelistBean.getWhitelist();
if (strings == null || strings.isEmpty()) {
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, "");
} else {
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, "");
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getWhiteList", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("getWhiteList", "onComplete: ");
if (callback != null) {
callback.onComplete();
}
}
};
}
} }

View File

@@ -107,7 +107,9 @@ public class UrlAddress {
/*获取管控APP设置*/ /*获取管控APP设置*/
public static final String APP_SETTING = "android/sn-control/app-setting"; public static final String APP_SETTING = "android/sn-control/app-setting";
/*获取设备批次全局黑名单*/ /*获取设备批次全局黑名单*/
public static final String BLACKLIST = "android/common/blacklist"; public static final String BLACK_LIST = "android/common/blacklist";
/*获取设备批次全局黑名单*/
public static final String WHITE_LIST = "android/common/whitelist";
/** /**
* 浏览器策略 * 浏览器策略

View File

@@ -9,7 +9,7 @@ import retrofit2.http.GET;
import retrofit2.http.Query; import retrofit2.http.Query;
public interface BlackListApi { public interface BlackListApi {
@GET(UrlAddress.BLACKLIST) @GET(UrlAddress.BLACK_LIST)
Observable<BaseResponse<BlacklistBean>> getBlackList( Observable<BaseResponse<BlacklistBean>> getBlackList(
@Query("sn") String sn @Query("sn") String sn
); );

View File

@@ -0,0 +1,16 @@
package com.aoleyun.sn.network.api.get;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.WhitelistBean;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface WhiteListApi {
@GET(UrlAddress.WHITE_LIST)
Observable<BaseResponse<WhitelistBean>> getWhiteList(
@Query("sn") String sn
);
}

View File

@@ -4,6 +4,8 @@ import com.aoleyun.sn.bean.AppID;
import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress; import com.aoleyun.sn.network.UrlAddress;
import java.util.List;
import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.Field; import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded; import retrofit2.http.FormUrlEncoded;
@@ -12,7 +14,7 @@ import retrofit2.http.POST;
public interface DeselectIDApi { public interface DeselectIDApi {
@FormUrlEncoded @FormUrlEncoded
@POST(UrlAddress.GET_APPID) @POST(UrlAddress.GET_APPID)
Observable<BaseResponse<AppID>> getDeselectIDApi( Observable<BaseResponse<List<AppID>>> getDeselectIDApi(
@Field("key") String key, @Field("key") String key,
@Field("sn") String sn @Field("sn") String sn
); );

View File

@@ -254,6 +254,10 @@ public class PushManager {
private static final String OPEN_APK = "73"; private static final String OPEN_APK = "73";
/*全局黑名单*/ /*全局黑名单*/
private static final String GLOBAL_BALCK_LIST = "74"; private static final String GLOBAL_BALCK_LIST = "74";
/*全局白名单*/
private static final String GLOBAL_WHITE_LIST = "75";
/*应用市场应用安装*/
private static final String APPSTORE_INSTALL = "76";
public void setPushContent(String title, String extras) { public void setPushContent(String title, String extras) {
@@ -660,6 +664,12 @@ public class PushManager {
break; break;
case GLOBAL_BALCK_LIST: case GLOBAL_BALCK_LIST:
NetInterfaceManager.getInstance().getBlackList(); NetInterfaceManager.getInstance().getBlackList();
break;
case GLOBAL_WHITE_LIST:
NetInterfaceManager.getInstance().getWhiteList();
break;
case APPSTORE_INSTALL:
break; break;
default: default:
} }

View File

@@ -89,6 +89,8 @@ public class MainSContact {
void getExclusiveAdminApp(); void getExclusiveAdminApp();
/*获取全局黑名单*/ /*获取全局黑名单*/
void getBlackList(); void getBlackList();
/*获取全局白名单*/
void getWhiteList();
/*获取wifi密码*/ /*获取wifi密码*/
void getWiFiPasswd(); void getWiFiPasswd();
@@ -168,8 +170,10 @@ public class MainSContact {
void getEbagCodeFinish(boolean activation); void getEbagCodeFinish(boolean activation);
/*获取学习应用*/ /*获取学习应用*/
void getExclusiveAdminAppFinish(); void getExclusiveAdminAppFinish();
/*获取wifi密码结束*/ /*获取全局黑名单结束*/
void getBlackListFinish(); void getBlackListFinish();
/*获取全局白名单结束*/
void getWhiteListFinish();
/*获取wifi密码结束*/ /*获取wifi密码结束*/
void setWiFiPasswd(); void setWiFiPasswd();

View File

@@ -621,6 +621,16 @@ public class MainSPresenter implements MainSContact.Presenter {
}); });
} }
@Override
public void getWhiteList() {
NetInterfaceManager.getInstance().getWhiteList(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override
public void onComplete() {
mView.getWhiteListFinish();
}
});
}
@Override @Override
public void getWiFiPasswd() { public void getWiFiPasswd() {
NetInterfaceManager.getInstance() NetInterfaceManager.getInstance()

View File

@@ -1333,6 +1333,12 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override @Override
public void getBlackListFinish() { public void getBlackListFinish() {
Log.e(TAG, "getBlackListFinish: "); Log.e(TAG, "getBlackListFinish: ");
mPresenter.getWhiteList();
}
@Override
public void getWhiteListFinish() {
Log.e(TAG, "getWhiteListFinish: ");
mPresenter.getWiFiPasswd(); mPresenter.getWiFiPasswd();
} }

View File

@@ -40,6 +40,7 @@ import androidx.core.content.ContextCompat;
import com.aoleyun.sn.BuildConfig; import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.bean.AdminAppInfo; import com.aoleyun.sn.bean.AdminAppInfo;
import com.aoleyun.sn.bean.AppID;
import com.aoleyun.sn.bean.AppListInfo; import com.aoleyun.sn.bean.AppListInfo;
import com.aoleyun.sn.bean.Appground; import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.BaseResponse;
@@ -97,6 +98,7 @@ import java.util.Set;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -772,41 +774,29 @@ public class JGYUtils {
if (!MTK11Tag.equals(JGYUtils.getInstance().getAppPlatform())) { if (!MTK11Tag.equals(JGYUtils.getInstance().getAppPlatform())) {
if (blackList == null || blackList.size() == 0) { if (blackList == null || blackList.size() == 0) {
// SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, "");
Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, ""); Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, "");
} else { } else {
String net_not = String.join(",", blackList); String net_not = String.join(",", blackList);
// SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not);
Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not); Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not);
Log.e(TAG, "setAppNetwork: " + net_not); Log.e(TAG, "setAppNetwork: " + net_not);
} }
} }
mMMKV.encode(CommonConfig.AOLE_ACTION_NETWORK_ALLOW, whiteList); mMMKV.encode(CommonConfig.AOLE_ACTION_NETWORK_ALLOW, whiteList);
if (whiteList == null || whiteList.size() == 0) {
if (whiteList == null) {
whiteList = new HashSet<>();
}
whiteList.add(BuildConfig.APPLICATION_ID);
whiteList.add("com.aoleyun.appstore");
List<String> filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(context, s)).collect(Collectors.toList());
Log.e(TAG, "setAppNetwork: filterList = " + filterList);
if (filterList.size() == 0) {
Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, ""); Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
} else { } else {
// TODO: 2024/6/28 暂时所有的都为白名单 Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList));
Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
String net_not = String.join(",", whiteList);
Log.e(TAG, "setAppNetwork: net_not = " + net_not);
List<String> filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(context, s)).collect(Collectors.toList());
if (filterList.size() == 0) {
// Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
} else {
// Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList));
}
Log.e(TAG, "setAppNetwork: filterList = " + filterList);
} }
//Intent netControlIntent = new Intent(CommonDatas.ACTION_HrReceiver_JGY_DIS);
//netControlIntent.putExtra("package_name", net_not);
//sendBroadcast(netControlIntent);
//Intent netControlNotIntent = new Intent(CommonDatas.ACTION_HrReceiver_JGY);
//netControlNotIntent.putExtra("package_name", net_ok);
//sendBroadcast(netControlNotIntent);
} }
public void updateNetworkWhiteList() { public void updateNetworkWhiteList() {
@@ -818,9 +808,9 @@ public class JGYUtils {
List<String> whiteList = new ArrayList<>(pkgs); List<String> whiteList = new ArrayList<>(pkgs);
List<String> filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList()); List<String> filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList());
if (filterList.size() == 0) { if (filterList.size() == 0) {
// Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
} else { } else {
// Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList));
} }
Log.e(TAG, "updateNetworkWhiteList: " + filterList); Log.e(TAG, "updateNetworkWhiteList: " + filterList);
} }
@@ -850,44 +840,25 @@ public class JGYUtils {
} }
} }
/** public void writeDeselectIDtoSystem(List<AppID> appIDList) {
* @param ids 需要管控的ID if (appIDList == null || appIDList.isEmpty()) {
* @param packages 应用程序包名 try {
*/ Settings.System.putString(crv, CommonConfig.APP_VIEW_CLICK_DISABLED, "");
public void writeDeselectIDtoSystem(String ids, String packages) { // TODO: 2024/9/11 修复1.4.0907版本数据为空系统报错
if (!TextUtils.isEmpty(ids) && !TextUtils.isEmpty(packages)) { CmdUtil.Result result = CmdUtil.execute(" settings delete system app_view_click_disabled");
ArrayList<String> idArrayList = new ArrayList<>(Arrays.asList(ids.split(","))); Log.e(TAG, "writeDeselectIDtoSystem: " + result);
ArrayList<String> packageArrayList = new ArrayList<>(Arrays.asList(packages.split(","))); } catch (Exception e) {
LinkedHashSet<String> idHashSet = new LinkedHashSet<>(idArrayList); e.printStackTrace();
LinkedHashSet<String> packageHashSet = new LinkedHashSet<>(packageArrayList);
ArrayList<String> idList = new ArrayList<>(idHashSet);
ArrayList<String> packageList = new ArrayList<>(packageHashSet);
StringBuilder idStringBuilder = new StringBuilder();
for (String id : idList) {
if (idStringBuilder.length() > 0) {
idStringBuilder.append(",");
}
idStringBuilder.append(id);
} }
StringBuilder packageStringBuilder = new StringBuilder();
for (String pkg : packageList) {
if (packageStringBuilder.length() > 0) {
packageStringBuilder.append(",");
}
packageStringBuilder.append(pkg);
}
String olddeselectViewArray = Settings.System.getString(crv, CommonConfig.AOLE_ACTION_APP_FORBID_ID);
Log.e("writeDeselectIDtoSystem", "olddeselectViewArray: " + olddeselectViewArray);
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_FORBID_ID, packageStringBuilder.toString());
Settings.System.putString(crv, "DeselectViewArray", idStringBuilder.toString());
Log.e("writeDeselectIDtoSystem", "aole_app_forbid_id: " + packageStringBuilder.toString());
Log.e("writeDeselectIDtoSystem", "deselectViewArray: " + idStringBuilder.toString());
} else { } else {
Log.e("writeDeselectIDtoSystem", "writeDeselectIDtoSystem is null:"); String s = appIDList.stream().map(new Function<AppID, String>() {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_FORBID_ID, ""); @Override
Settings.System.putString(crv, "DeselectViewArray", ""); public String apply(AppID appID) {
return appID.toString();
}
}).collect(Collectors.joining(";"));
Log.e(TAG, "writeDeselectIDtoSystem: " + s);
Settings.System.putString(crv, CommonConfig.APP_VIEW_CLICK_DISABLED, s);
} }
} }
@@ -1304,7 +1275,7 @@ public class JGYUtils {
pkgSet.addAll(ApkUtils.desktopAPP); pkgSet.addAll(ApkUtils.desktopAPP);
pkgSet.addAll(ApkUtils.aoleyunAPP); pkgSet.addAll(ApkUtils.aoleyunAPP);
pkgSet.addAll(ApkUtils.mJxwApp); pkgSet.addAll(ApkUtils.mJxwApp);
if ("K101".equals(Build.MODEL)||"AS001".equals(Build.MODEL)) { if ("K101".equals(Build.MODEL) || "AS001".equals(Build.MODEL)) {
pkgSet.addAll(ApkUtils.aihuaApp); pkgSet.addAll(ApkUtils.aihuaApp);
pkgSet.addAll(aihuaAppList); pkgSet.addAll(aihuaAppList);
} }
@@ -1687,10 +1658,10 @@ public class JGYUtils {
}}; }};
/** /**
* 隐藏系统所有应用 * 隐藏系统所有应用
* 除了设置,图库、视频、设置、文件管理器、通话、短信、日历、时钟、计算器 * 除了设置,图库、视频、设置、文件管理器、通话、短信、日历、时钟、计算器
*/ */
public void hideSystemAPP() { public void hideSystemAPP() {
PackageManager pm = mContext.getPackageManager(); PackageManager pm = mContext.getPackageManager();
try { try {