[app] Add sepolicy warning (#316)

This commit is contained in:
tehcneko 2021-03-10 12:40:23 +08:00 committed by GitHub
parent 7dd171b2bb
commit 3325e275f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 37 additions and 19 deletions

View File

@ -227,4 +227,13 @@ public class ConfigManager {
return false;
}
}
public static boolean isSepolicyLoaded() {
try {
return LSPosedManagerServiceClient.isSepolicyLoaded();
} catch (RemoteException | NullPointerException e) {
Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
}

View File

@ -154,4 +154,9 @@ public class LSPosedManagerServiceClient {
ensureService();
return service.uninstallPackage(packageName);
}
public static boolean isSepolicyLoaded() throws RemoteException, NullPointerException {
ensureService();
return service.isSepolicyLoaded();
}
}

View File

@ -91,8 +91,18 @@ public class MainActivity extends BaseActivity {
String installXposedVersion = ConfigManager.getXposedVersionName();
int cardBackgroundColor;
if (installXposedVersion != null) {
binding.statusTitle.setText(getString(R.string.Activated, "YAHFA"));
if (!ConfigManager.isPermissive()) {
if (ConfigManager.isPermissive()) {
cardBackgroundColor = ResourcesKt.resolveColor(getTheme(), R.attr.colorError);
binding.statusTitle.setText(R.string.activated);
binding.statusIcon.setImageResource(R.drawable.ic_warning);
binding.statusSummary.setText(R.string.selinux_permissive_summary);
} else if (!ConfigManager.isSepolicyLoaded()) {
binding.statusTitle.setText(R.string.partial_activated);
cardBackgroundColor = ResourcesKt.resolveColor(getTheme(), R.attr.colorWarning);
binding.statusIcon.setImageResource(R.drawable.ic_warning);
binding.statusSummary.setText(R.string.selinux_policy_not_loaded_summary);
} else {
binding.statusTitle.setText(R.string.activated);
if (Helpers.currentHoliday == Helpers.Holidays.LUNARNEWYEAR) {
cardBackgroundColor = 0xfff05654;
} else {
@ -100,10 +110,6 @@ public class MainActivity extends BaseActivity {
}
binding.statusIcon.setImageResource(R.drawable.ic_check_circle);
binding.statusSummary.setText(String.format(Locale.US, "%s (%d)", installXposedVersion, ConfigManager.getXposedVersionCode()));
} else {
cardBackgroundColor = ResourcesKt.resolveColor(getTheme(), R.attr.colorError);
binding.statusIcon.setImageResource(R.drawable.ic_warning);
binding.statusSummary.setText(R.string.selinux_permissive_summary);
}
} else {
cardBackgroundColor = ResourcesKt.resolveColor(getTheme(), R.attr.colorInstall);

View File

@ -57,6 +57,9 @@ public class InfoDialogBuilder extends BlurBehindDialogBuilder {
if (ConfigManager.isPermissive()) {
binding.selinux.setVisibility(View.VISIBLE);
binding.selinux.setText(HtmlCompat.fromHtml(context.getString(R.string.selinux_permissive), HtmlCompat.FROM_HTML_MODE_LEGACY));
} else if (!ConfigManager.isSepolicyLoaded()) {
binding.selinux.setVisibility(View.VISIBLE);
binding.selinux.setText(HtmlCompat.fromHtml(context.getString(R.string.selinux_policy_not_loaded), HtmlCompat.FROM_HTML_MODE_LEGACY));
}
setView(binding.getRoot());

View File

@ -20,7 +20,6 @@
<resources>
<string name="app_name" translatable="false">LSPosed</string>
<string name="Activated">%s Aktiviert</string>
<string name="Install">Installieren</string>
<string name="InstallDetail">Tippen Sie hier, um LSPosed zu installieren</string>
<string name="Modules">Modules</string>

View File

@ -23,7 +23,6 @@
<!-- MainActivity -->
<string name="info">Info</string>
<string name="Activated">%s activé</string>
<string name="Install">Installer</string>
<string name="InstallDetail">Appuyez pour installer LSPosed</string>
<string name="Modules">Modules</string>

View File

@ -21,7 +21,6 @@
<resources>
<!-- MainActivity -->
<string name="info">Info</string>
<string name="Activated">%s attivo</string>
<string name="Install">Installa</string>
<string name="InstallDetail">Premi per installare LSPosed</string>
<string name="Modules">Moduli</string>
@ -128,7 +127,6 @@
<string name="pure_black_dark_theme">Tema nero puro</string>
<string name="pure_black_dark_theme_summary">Usa il tema nero puro se il tema scuro è abilitato</string>
<string name="settings_group_theme">Tema</string>
<string name="settings_variant">Variante</string>
<string name="settings_backup_and_restore">Backup e ripristino</string>
<string name="settings_backup_and_restore_summery">Backup o ripristino dell\'elenco dei moduli e degli elenchi degli ambiti.</string>
<string name="settings_backup">Backup</string>
@ -157,7 +155,6 @@
<string name="module_release_load_more">Mostra le versioni precedenti</string>
<string name="module_release_no_more">Non ci sono altre versioni</string>
<string name="repo_load_failed">Impossibile caricare la repo: %s</string>
<string name="repo_load_more_failed">Impossibile caricare le versioni precedenti: %s</string>
<string name="app_destroyed">Questa applicazione è stata distrutta, assicurati di scaricarla dalla fonte ufficiale.</string>

View File

@ -21,7 +21,6 @@
<resources>
<!-- MainActivity -->
<string name="info">정보</string>
<string name="Activated">%s 활성화됨</string>
<string name="Install">설치</string>
<string name="InstallDetail">LSPosed를 설치하려면 탭</string>
<string name="Modules">모듈</string>

View File

@ -20,7 +20,6 @@
<resources>
<string name="app_name" translatable="false">LSPosed</string>
<string name="Activated">%s Geactiveerd</string>
<string name="Install">Installeer</string>
<string name="InstallDetail">Tik om LSPosed te installeren</string>
<string name="Modules">Modules</string>

View File

@ -20,7 +20,6 @@
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_name" translatable="false">LSPosed</string>
<string name="Activated">%s Активирован</string>
<string name="Install">Установить</string>
<string name="InstallDetail">Нажмите, чтобы установить LSPosed</string>
<string name="Modules">Модули</string>

View File

@ -20,7 +20,6 @@
<resources>
<string name="About">Про модифікацію</string>
<string name="Activated">%s Активовано</string>
<string name="Install">Установити</string>
<string name="InstallDetail">Натисніть для встановлення LSPosed</string>
<string name="Logs">Звіти</string>

View File

@ -20,7 +20,6 @@
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_name" translatable="false">LSPosed</string>
<string name="Activated">%s 已激活</string>
<string name="Install">安装</string>
<string name="InstallDetail">点按安装 LSPosed</string>
<string name="Modules">模块</string>
@ -187,4 +186,8 @@
<string name="info_device">设备</string>
<string name="info_system_abi">系统架构</string>
<string name="theme_color_summary">应用中最常见的颜色</string>
<string name="activated">已激活</string>
<string name="partial_activated">部分激活</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy 未被正确加载</string>
<string name="selinux_policy_not_loaded">&lt;b&gt;警告:&lt;\/b&gt; SEPolicy 未被正确加载,作用于系统框架的模块将不起作用。</string>
</resources>

View File

@ -19,7 +19,6 @@
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="Activated">%s 已啟動</string>
<string name="Install">安裝</string>
<string name="InstallDetail">點按安裝 LSPosed</string>
<string name="Modules">模組</string>

View File

@ -23,7 +23,6 @@
<!-- MainActivity -->
<string name="info">資訊</string>
<string name="Activated">%s 已啟用</string>
<string name="Install">安裝</string>
<string name="InstallDetail">點選安裝 LSPosed</string>
<string name="Modules">模組</string>

View File

@ -23,7 +23,6 @@
<!-- MainActivity -->
<string name="info">Info</string>
<string name="Activated">%s Activated</string>
<string name="Install">Install</string>
<string name="InstallDetail">Tap to install LSPosed</string>
<string name="Modules">Modules</string>
@ -38,9 +37,13 @@
<string name="module_repo_summary">Module repository (Alpha)</string>
<string name="about_view_source_code"><![CDATA[View source code at %s<br/>Join our %s channel]]></string>
<string name="activated">Activated</string>
<string name="not_installed">Not installed</string>
<string name="selinux_permissive">&lt;b&gt;WARNING:&lt;\/b&gt; SELinux is not enforcing! the malicious program that attacks this can completely control your device and may cause your property damage and legal liability.</string>
<string name="selinux_permissive_summary">SELinux is not enforcing!</string>
<string name="partial_activated">Partially activated</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy is not loaded properly</string>
<string name="selinux_policy_not_loaded">&lt;b&gt;WARNING:&lt;\/b&gt; SEPolicy is not loaded properly, modules that hook System Framework will not work.</string>
<string name="info_api_version">API version</string>
<string name="info_framework_version">Framework version</string>
<string name="info_manager_version">Manager version</string>