feat(安全): 实现应用黑名单检测功能

添加新的AppSecurity插件用于获取已安装应用列表
创建后端API端点获取应用黑名单
在前端添加应用拦截界面和逻辑
使用在线黑名单检测机制
This commit is contained in:
sudomarcma
2025-07-09 16:31:14 +08:00
parent f8cdbf145d
commit 9e576dcdf1
8 changed files with 155 additions and 448 deletions
-8
View File
@@ -37,14 +37,6 @@
android:resource="@xml/file_paths"></meta-data>
</provider>
<!-- ADD THIS SERVICE DECLARATION -->
<service
android:name="com.capacitor.backgroundrunner.RunnerService"
android:enabled="true"
android:exported="false"
android:foregroundServiceType="location" />
<!-- END OF SERVICE DECLARATION -->
</application>
@@ -0,0 +1,29 @@
package com.ouji.factory.myapp;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import com.getcapacitor.JSObject;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;
import com.getcapacitor.annotation.CapacitorPlugin;
import org.json.JSONArray;
import java.util.List;
@CapacitorPlugin(name = "AppSecurity")
public class AppSecurity extends Plugin {
@PluginMethod
public void getInstalledApps(PluginCall call) {
PackageManager pm = getContext().getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
JSONArray appPackages = new JSONArray();
for (ApplicationInfo packageInfo : packages) {
appPackages.put(packageInfo.packageName);
}
JSObject ret = new JSObject();
ret.put("packages", appPackages);
call.resolve(ret);
}
}
@@ -6,13 +6,16 @@ import android.view.WindowManager;
import androidx.core.view.WindowCompat;
import androidx.core.view.WindowInsetsControllerCompat;
import com.getcapacitor.BridgeActivity;
import com.getcapacitor.Plugin;
import java.util.ArrayList;
public class MainActivity extends BridgeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
registerPlugin(AppSecurity.class);
super.onCreate(savedInstanceState);
// Configure window for proper native behavior
setupNativeWindow();
}