正在查看: 管控平台 v5.2.3.0. 应用的 MDMApp.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 管控平台 v5.2.3.0. 应用的 MDMApp.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.iflytek.mdmservice;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.Application;
import android.app.DownloadManager;
import android.app.PendingIntent;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.multidex.MultiDex;
import androidx.work.Configuration;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
import com.baidu.mapapi.SDKInitializer;
import com.iflytek.mdmcommon.FileLog;
import com.iflytek.mdmcommon.FileUtils;
import com.iflytek.mdmcommon.LogUtil;
import com.iflytek.mdmcommon.SpHelper;
import com.iflytek.mdmcommon.UserInfoUtil;
import com.iflytek.mdmcommon.Utils;
import com.iflytek.mdmcommon.log.LogCacheManager;
import com.iflytek.mdmlibrary.MdmSdk;
import com.iflytek.mdmservice.MDMApp;
import com.iflytek.mdmservice.db.DBManager;
import com.iflytek.mdmservice.db.DownloadTaskManager;
import com.iflytek.mdmservice.db.UsageModelManager;
import com.iflytek.mdmservice.db.dao.DaoSession;
import com.iflytek.mdmservice.db.entity.UsageModel;
import com.iflytek.mdmservice.model.Policy;
import com.iflytek.mdmservice.policy.receiver.TimeReceiver;
import com.iflytek.mdmservice.policy.service.WorkService;
import com.iflytek.mdmservice.receiver.AdminReceiver;
import com.iflytek.mdmservice.receiver.BatteryReceiver;
import com.iflytek.mdmservice.receiver.PendingIntentRcv;
import com.iflytek.mdmservice.receiver.SDCardMonitorReceiver;
import com.iflytek.mdmservice.receiver.ScreenBroadcastReceiver;
import com.iflytek.mdmservice.receiver.ToastReceiver;
import com.iflytek.mdmservice.receiver.UsbStatusReceiver;
import com.iflytek.mdmservice.service.CheckUpdateService;
import com.iflytek.mdmservice.service.ClearTaskService;
import com.iflytek.mdmservice.service.InitMdmService;
import com.iflytek.mdmservice.service.MediaFileService;
import com.iflytek.mdmservice.service.MonitorService;
import com.iflytek.mdmservice.service.WarningService;
import com.iflytek.mdmservice.ui.LockActivity;
import com.iflytek.mdmservice.utils.DeviceHelper;
import com.iflytek.mdmservice.utils.ObservableUtil;
import com.iflytek.mdmservice.utils.j;
import com.iflytek.mdmservice.utils.r;
import com.iflytek.mdmservice.work.MockDataWorker;
import com.iflytek.user.combo.ComboManage;
import com.iflytek.user.tea.TeaLogin;
import com.igexin.sdk.PushConsts;
import com.igexin.sdk.PushManager;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.PriorityQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import net.sqlcipher.BuildConfig;
import net.sqlcipher.database.SQLiteDatabase;
public class MDMApp extends Application implements Configuration.Provider {
private static MDMApp m;
private static DaoSession n;
private static com.iflytek.mdmservice.n.b o;
static final HandlerThread r;
private static final Handler s;
private ExecutorService f104a;
private ScreenBroadcastReceiver f105b;
private AlarmManager f106c;
private UsbStatusReceiver d;
private SDCardMonitorReceiver e;
private BatteryReceiver f;
private LocalBroadcastManager g;
private boolean h = false;
private BroadcastReceiver i = new b();
private PriorityQueue<ToastReceiver.b> j;
private static final String k = MDMApp.class.getSimpleName();
private static Handler l = new a(Looper.getMainLooper());
private static List<Policy> p = Collections.synchronizedList(new ArrayList());
private static final List<Handler> q = new ArrayList();
static class a extends Handler {
a(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message message) {
super.handleMessage(message);
if (message == null || message.obj == null) {
return;
}
Toast.makeText(MDMApp.j(), (String) message.obj, 0).show();
}
}
class b extends BroadcastReceiver {
b() {
}
public void a() {
MDMApp.this.s(true);
}
@Override
public void onReceive(Context context, Intent intent) {
r.a(new Runnable() {
@Override
public final void run() {
MDMApp.b.this.a();
}
});
}
}
static {
HandlerThread handlerThread = new HandlerThread("networkchanged_thread");
r = handlerThread;
handlerThread.start();
s = new Handler(r.getLooper());
}
static void C() {
LogUtil.i("Blue", "发送启用设备广播");
org.greenrobot.eventbus.c.c().k(new com.iflytek.mdmservice.m.b());
}
static void D(Throwable th) throws Exception {
String message = th == null ? BuildConfig.FLAVOR : th.getMessage();
if (message == null) {
message = "RxjavaPlugin未知异常";
}
Log.e("MdmService-Rxjava", message);
}
private void E() {
if (Utils.isYesterdayClean(SpHelper.getLong("zeroTimeRecord", 0L))) {
return;
}
LogUtil.z("LaunchReceiver send zero receiver");
j().sendBroadcast(new Intent(j(), (Class<?>) PendingIntentRcv.class).setAction(PendingIntentRcv.Type.CLEAR_ADMIN_POLICY.toString()).putExtra("reset", true));
}
private void F() {
LogUtil.d("env env: 3");
LogUtil.d("env PLATFORMID: " + com.iflytek.mdmservice.utils.i.a());
}
private void G() {
v();
H();
}
private void H() {
if (this.f105b == null) {
this.f105b = new ScreenBroadcastReceiver();
}
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.SCREEN_ON");
intentFilter.addAction("android.intent.action.SCREEN_OFF");
intentFilter.addAction(PushConsts.ACTION_BROADCAST_USER_PRESENT);
registerReceiver(this.f105b, intentFilter);
}
private void I(int i) {
DownloadManager downloadManager = (DownloadManager) getSystemService("download");
Cursor query = downloadManager.query(new DownloadManager.Query().setFilterByStatus(i));
while (query != null) {
try {
if (!query.moveToNext()) {
break;
}
long j = query.getLong(query.getColumnIndex("_id"));
downloadManager.remove(j);
DownloadTaskManager.getInstance().removeDownloadTask(j);
} finally {
if (query != null) {
query.close();
}
}
}
}
public static void J(List<Policy> list, int i) {
synchronized (p) {
Iterator<Policy> it = p.iterator();
while (it.hasNext()) {
if (it.next().getType() == i) {
it.remove();
}
}
if (list != null) {
p.addAll(list);
}
}
}
private void L() {
if (SpHelper.getBoolean("eye_distance_flag", true)) {
Intent intent = new Intent("com.iflytek.mdm.intent.ACTION_ENABLE_EYE_PROTECT");
intent.putExtra("isNeedCheck", false);
intent.putExtra("eyesProtectType", 0);
sendBroadcast(intent);
}
}
public static void M() {
if (o == null) {
o = new com.iflytek.mdmservice.n.b(l);
}
LogUtil.i("BlueBlue", "setAlarmObserver");
Uri parse = Uri.parse("content://com.simplemobiletools.clock.providers.AlarmProvider/alarms");
j().getContentResolver().registerContentObserver(parse, true, o);
j().getContentResolver().notifyChange(parse, null);
}
private static void N(MDMApp mDMApp) {
m = mDMApp;
}
private void O() {
long currentTimeMillis = System.currentTimeMillis();
UsageModel usageModel = new UsageModel();
usageModel.setLastTime(currentTimeMillis);
UsageModelManager.getInstance().addUsageDao(usageModel);
LogUtil.d("usage_loginTime: " + currentTimeMillis);
}
public static void P(String str) {
Message message = new Message();
message.obj = str;
l.sendMessage(message);
}
private void Q() {
PushManager.getInstance().initialize(getApplicationContext());
}
private void R() {
ScreenBroadcastReceiver screenBroadcastReceiver = this.f105b;
if (screenBroadcastReceiver != null) {
unregisterReceiver(screenBroadcastReceiver);
}
SDCardMonitorReceiver sDCardMonitorReceiver = this.e;
if (sDCardMonitorReceiver != null) {
unregisterReceiver(sDCardMonitorReceiver);
}
BroadcastReceiver broadcastReceiver = this.i;
if (broadcastReceiver != null) {
this.g.unregisterReceiver(broadcastReceiver);
}
BatteryReceiver batteryReceiver = this.f;
if (batteryReceiver != null) {
unregisterReceiver(batteryReceiver);
}
}
public static void a(Handler handler) {
q.add(handler);
}
private void b() {
Intent intent = new Intent(this, (Class<?>) PendingIntentRcv.class);
intent.setAction(PendingIntentRcv.Type.ENTITY_HOUR_REPORT.toString());
this.f106c.cancel(PendingIntent.getBroadcast(this, 0, intent, 0));
}
private void c() {
LogUtil.d("===mdm===", "每日零点清除admin策略.....");
Calendar resetTime = Utils.getResetTime(0);
LogUtil.z("calendar is " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Long.valueOf(resetTime.getTimeInMillis())));
Intent intent = new Intent(this, (Class<?>) PendingIntentRcv.class);
intent.setAction(PendingIntentRcv.Type.CLEAR_ADMIN_POLICY.toString());
this.f106c.setRepeating(0, resetTime.getTimeInMillis(), com.igexin.push.core.b.E, PendingIntent.getBroadcast(this, 0, intent, 0));
}
public static void d(int i) {
synchronized (p) {
ArrayList arrayList = new ArrayList();
for (Policy policy : p) {
if (policy.getType() == i) {
arrayList.add(policy);
}
}
p.removeAll(arrayList);
}
}
public static void e() {
Iterator<Handler> it = q.iterator();
while (it.hasNext()) {
it.next().removeCallbacksAndMessages(null);
}
}
public static void f() {
m.startService(new Intent(m, (Class<?>) ClearTaskService.class));
}
private void g() {
boolean z = SpHelper.getBoolean("deleteDownloadDatas", false);
LogUtil.c("deleteDownloadDatas", "deleteDownloadDatas: " + z);
if (z) {
return;
}
SpHelper.putBoolean("deleteDownloadDatas", true);
FileUtils.delFileOrFolder(FileUtils.ROOTFILEPATH + "apk");
I(1);
I(2);
I(4);
I(8);
I(16);
}
public static void h() {
ContentResolver contentResolver = j().getContentResolver();
Uri parse = Uri.parse("content://com.iflytek.mdmservice.provider.UserInfoProvider/userinfo");
ContentValues contentValues = new ContentValues();
contentValues.put("stutas", (Integer) 1);
contentResolver.update(parse, contentValues, null, null);
FileUtils.delFileForSd("userinfo.txt");
}
private void i() {
l.post(new Runnable() {
@Override
public final void run() {
MDMApp.y();
}
});
}
public static MDMApp j() {
return m;
}
public static DaoSession k() {
return n;
}
public static Handler l() {
return s;
}
public static List<Policy> m() {
List<Policy> list;
synchronized (p) {
Collections.sort(p);
list = p;
}
return list;
}
private void p() {
WorkManager.initialize(getBaseContext(), new Configuration.Builder().setMinimumLoggingLevel(2).build());
WorkManager.getInstance(this).enqueue(new OneTimeWorkRequest.Builder(MockDataWorker.class).setInitialDelay(1L, TimeUnit.MINUTES).build());
}
private void q() {
n = DBManager.newInstance(j()).getDaoSession(j());
}
private void r() {
File file = new File(FileUtils.ROOTFILEPATH);
if (!file.exists()) {
file.mkdir();
}
ObservableUtil.newInstance().addObserver(new ObservableUtil.a() {
@Override
public final void a() {
MDMApp.this.z();
}
});
}
private void v() {
if (this.d == null) {
UsbStatusReceiver usbStatusReceiver = new UsbStatusReceiver();
this.d = usbStatusReceiver;
registerReceiver(usbStatusReceiver, new IntentFilter("android.hardware.usb.action.USB_STATE"));
}
if (this.e == null) {
this.e = new SDCardMonitorReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.MEDIA_MOUNTED");
intentFilter.addAction("android.intent.action.MEDIA_REMOVED");
intentFilter.addDataScheme("file");
registerReceiver(this.e, intentFilter);
}
this.g = LocalBroadcastManager.getInstance(this);
this.g.registerReceiver(this.i, new IntentFilter("com.iflytek.mdm.intent.ACTION_LOG_INIT"));
if (this.f == null) {
this.f = new BatteryReceiver();
IntentFilter intentFilter2 = new IntentFilter();
intentFilter2.addAction("android.intent.action.ACTION_POWER_CONNECTED");
intentFilter2.addAction("android.intent.action.ACTION_POWER_DISCONNECTED");
intentFilter2.addAction("android.intent.action.BATTERY_CHANGED");
intentFilter2.addAction("android.intent.action.BATTERY_LOW");
intentFilter2.addAction("android.intent.action.BATTERY_OKAY");
intentFilter2.addAction("com.iflytek.mdm.intent.ACTION_ALARM_MANAGER");
registerReceiver(this.f, intentFilter2);
}
}
private void w() {
if (MdmSdk.getControlMode() == 2) {
return;
}
Intent intent = new Intent(this, (Class<?>) WorkService.class);
if (Build.VERSION.SDK_INT >= 26) {
startForegroundService(intent);
} else {
startService(intent);
}
startService(new Intent(this, (Class<?>) MonitorService.class));
startService(new Intent(this, (Class<?>) CheckUpdateService.class));
try {
Intent intent2 = new Intent();
intent2.setClassName("com.iflytek.mdmstore", "com.iflytek.mdmstore.service.DataReportService");
intent2.putExtra("scene", 1);
intent2.putExtra("commitFlag", true);
if (Build.VERSION.SDK_INT < 26) {
startService(intent2);
} else {
startForegroundService(intent2);
}
} catch (Exception e) {
LogUtil.c("MDMService", Log.getStackTraceString(e));
}
this.f106c = (AlarmManager) getSystemService("alarm");
PendingIntent broadcast = PendingIntent.getBroadcast(j(), 0, new Intent(this, (Class<?>) TimeReceiver.class), 134217728);
if (Build.VERSION.SDK_INT < 19) {
this.f106c.set(0, System.currentTimeMillis() + 1000, broadcast);
} else {
this.f106c.setExact(0, System.currentTimeMillis() + 1000, broadcast);
}
Intent intent3 = new Intent(this, (Class<?>) WarningService.class);
intent3.putExtra("source", "1");
long currentTimeMillis = System.currentTimeMillis() + 0;
PendingIntent service = PendingIntent.getService(j(), 0, intent3, 134217728);
if (Build.VERSION.SDK_INT < 19) {
this.f106c.set(0, currentTimeMillis, service);
} else {
this.f106c.setExact(0, currentTimeMillis, service);
}
if (Utils.isToday(SpHelper.getLong("mdm_record_media_data", 0L))) {
return;
}
LogUtil.c("upload_media", "mdmapp启动-启动MediaFileService");
PendingIntent service2 = PendingIntent.getService(j(), 0, new Intent(this, (Class<?>) MediaFileService.class), 134217728);
if (Build.VERSION.SDK_INT < 19) {
this.f106c.set(0, System.currentTimeMillis() + 1000, service2);
} else {
this.f106c.setExact(0, System.currentTimeMillis() + 1000, service2);
}
}
private void x() {
if (this.f106c == null) {
this.f106c = (AlarmManager) getSystemService("alarm");
}
c();
b();
}
static void y() {
Uri parse = Uri.parse("content://com.iflytek.mdmservice.provider.PolicyTempProvider/policy");
ContentProviderClient acquireContentProviderClient = j().getContentResolver().acquireContentProviderClient(parse);
if (acquireContentProviderClient != null) {
ContentValues contentValues = new ContentValues();
contentValues.put("device", "{11:0,12:0,13:1,16:0,17:0}");
contentValues.put("type", (Integer) 3);
try {
try {
acquireContentProviderClient.insert(parse, contentValues);
LogUtil.c(k, "disablePhysicsButBack");
if (acquireContentProviderClient == null) {
return;
}
} catch (RemoteException e) {
LogUtil.ce(k, "disablePhysicsButBack:" + e.getMessage());
if (acquireContentProviderClient == null) {
return;
}
}
acquireContentProviderClient.release();
} catch (Throwable th) {
if (acquireContentProviderClient != null) {
acquireContentProviderClient.release();
}
throw th;
}
}
}
public void A() {
LogUtil.e("IxueOpenAPI onSuccess");
t();
}
public void B() {
LogUtil.e("lock activity");
Intent intent = new Intent(this, (Class<?>) LockActivity.class);
intent.addFlags(SQLiteDatabase.CREATE_IF_NECESSARY);
intent.putExtra("lock_from", 1);
startActivity(intent);
}
public void K(String str, String str2, long j, long j2, long j3, String str3, String str4, String str5) {
Intent intent = new Intent("com.iflytek.mdmadmin.schoolId");
intent.setComponent(new ComponentName("com.iflytek.mdmadmin", "com.iflytek.mdmadmin.receiver.AdminDataReceiver"));
intent.putExtra("schoolId", j3);
sendBroadcast(intent);
String userType = UserInfoUtil.getUserType(this, j + BuildConfig.FLAVOR);
ContentResolver contentResolver = j().getContentResolver();
Uri parse = Uri.parse("content://com.iflytek.mdmservice.provider.UserInfoProvider/userinfo");
contentResolver.delete(parse, null, null);
ContentValues contentValues = new ContentValues();
contentValues.put(TeaLogin.ACCOUNT, str);
contentValues.put(TeaLogin.PD, str2);
contentValues.put(ComboManage.USER_ID, Long.valueOf(j));
contentValues.put("classId", Long.valueOf(j2));
contentValues.put("schoolId", Long.valueOf(j3));
contentValues.put("userName", str3);
contentValues.put("className", str4);
contentValues.put("schoolName", str5);
contentValues.put("stutas", (Integer) 0);
contentValues.put("grantInfo", userType);
contentResolver.insert(parse, contentValues);
SpHelper.putLong("clazzId", j2);
SpHelper.putLong("schoolId", j3);
SpHelper.putLong("lastSchool", j3);
SpHelper.putLong(ComboManage.USER_ID, j);
SpHelper.putString(TeaLogin.ACCOUNT, str);
O();
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(context);
MultiDex.install(this);
}
@NonNull
public Configuration getWorkManagerConfiguration() {
return new Configuration.Builder().setMinimumLoggingLevel(4).build();
}
public synchronized PriorityQueue<ToastReceiver.b> n() {
if (this.j == null) {
this.j = new PriorityQueue<>();
}
return this.j;
}
public ExecutorService o() {
if (this.f104a == null) {
this.f104a = Executors.newFixedThreadPool(3);
}
return this.f104a;
}
@Override
public void onCreate() {
super.onCreate();
N(this);
String curProcessName = Utils.getCurProcessName(m);
LogUtil.d("===mdm===", "MDMApp.onCreate: " + curProcessName);
if (TextUtils.isEmpty(curProcessName) || !curProcessName.equals(m.getPackageName())) {
return;
}
SpHelper.getInstances().init(this);
q();
u();
if (MdmSdk.getControlMode() == 2) {
return;
}
io.reactivex.z.a.z(new io.reactivex.w.g() {
@Override
public final void accept(Object obj) {
MDMApp.D((Throwable) obj);
}
});
E();
j.a().c(this);
com.iflytek.mobile.sentry.a.a().b(this, "http://[email protected]/55");
b.a.b.b("StartApp");
r();
Q();
SDKInitializer.initialize(m);
w();
x();
G();
com.iflytek.mdmservice.n.c cVar = new com.iflytek.mdmservice.n.c(l);
Uri parse = Uri.parse("content://com.iflytek.mdmservice.provider.AppInfoProvider/policy");
getContentResolver().registerContentObserver(parse, true, cVar);
j().getContentResolver().notifyChange(parse, null);
F();
com.iflytek.mdmservice.utils.i.b(SpHelper.getLong("com.iflytek.mdmservice.KEY_PLATFORM_ID", 563542604814225408L));
com.iflytek.mdmservice.utils.f.b(this);
g();
L();
p();
com.iflytek.loginfosdk.a.a(this, FileUtils.ROOTFILEPATH + "logs", "MDMService");
LogUtil.d("===mdm===", "MDMApp.onCreate end");
}
@Override
public void onTerminate() {
LogUtil.i("BlueBlue", "MDMApp.onTerminate");
R();
super.onTerminate();
}
public void s(boolean z) {
if (!z || (z && !this.h)) {
LogUtil.i("iFlytekMDM", "initLog");
this.h = LogCacheManager.init("MDMService");
if (!DeviceHelper.externalMemoryAvailable()) {
LogUtil.d("sd卡未挂载");
return;
}
FileLog.setDir(new File(Environment.getExternalStorageDirectory() + File.separator + "iFlytekMDM" + File.separator + "logs"));
}
}
public void t() {
if (MdmSdk.getControlMode() == 2) {
return;
}
Intent intent = new Intent(this, (Class<?>) InitMdmService.class);
if (Build.VERSION.SDK_INT >= 26) {
startForegroundService(intent);
} else {
startService(intent);
}
}
public void u() {
if ("HiteVision".equalsIgnoreCase(Build.BRAND)) {
MdmSdk.init(this, new MdmSdk.a() {
public final void onSuccess() {
MDMApp.this.A();
}
});
return;
}
if (!com.iflytek.mdmbase.b.a.a(Build.MODEL) && !com.iflytek.mdmbase.b.a.b(Build.MODEL)) {
MdmSdk.init(this);
t();
return;
}
MdmSdk.init(this);
MdmSdk.forceActivePre();
boolean isAdminActive = ((DevicePolicyManager) getSystemService("device_policy")).isAdminActive(new ComponentName(this, (Class<?>) AdminReceiver.class));
LogUtil.d("isAdminActive: " + isAdminActive);
if (isAdminActive) {
t();
}
}
public void z() {
if (SpHelper.getInt("device_status", 1) != 0) {
l.postDelayed(new Runnable() {
@Override
public final void run() {
MDMApp.C();
}
}, com.igexin.push.config.c.i);
return;
}
LogUtil.e("lock 设备禁用 弹出蒙层");
if (SpHelper.getInt("violation_policy_disable", 1) == 0) {
SpHelper.putBoolean("com.iflytek.mdmservice.ADMIN_SET_STIPULATION", false);
}
Activity b2 = com.iflytek.mdmservice.utils.c.a().b();
if (b2 == null || b2.getLocalClassName() == null || !b2.getLocalClassName().contains("LockActivity")) {
i();
l.postDelayed(new Runnable() {
@Override
public final void run() {
MDMApp.this.B();
}
}, com.igexin.push.config.c.i);
} else {
LogUtil.e("lock activity is " + b2.getComponentName());
}
}
}