6.0.3 - 新增使用修改安全设置权限自启无障碍 修复toast/socket导致崩溃 资源英文补全 支持64位系统 部分插件及工具版本更新

This commit is contained in:
SuperMonster003
2022-03-20 00:10:02 +08:00
parent ec61eb5000
commit a8ce1b9acb
185 changed files with 4018 additions and 3877 deletions

View File

@@ -37,11 +37,11 @@ object Pref {
}
fun shouldEnableAccessibilityServiceByRoot(): Boolean {
return preferences.getBoolean(getString(R.string.key_enable_accessibility_service_by_root), true)
return preferences.getBoolean(getString(R.string.key_enable_a11y_service_with_root_access), true)
}
fun shouldHideLogs(): Boolean {
return preferences.getBoolean(getString(R.string.key_not_show_main_activity), false)
return preferences.getBoolean(getString(R.string.key_not_showing_main_activity), false)
}
fun shouldStopAllScriptsWhenVolumeUp(): Boolean {

View File

@@ -2,25 +2,21 @@ package com.stardust.auojs.inrt
import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager.PERMISSION_DENIED
import android.graphics.Typeface
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.NonNull
import androidx.annotation.Nullable
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import android.widget.TextView
import android.widget.Toast
import com.stardust.auojs.inrt.autojs.AutoJs
import com.stardust.auojs.inrt.launch.GlobalProjectLauncher
import java.util.ArrayList
import android.content.pm.PackageManager.PERMISSION_DENIED
import android.os.Looper
/**
* Created by Stardust on 2018/2/2.
*/
@@ -61,6 +57,7 @@ class SplashActivity : AppCompatActivity() {
}
override fun onRequestPermissionsResult(requestCode: Int, @NonNull permissions: Array<String>, @NonNull grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
runScript()
}

View File

@@ -1,53 +0,0 @@
package com.stardust.auojs.inrt.autojs
import android.accessibilityservice.AccessibilityService
import android.content.Context
import android.content.Intent
import android.provider.Settings
import android.text.TextUtils
import com.stardust.app.GlobalAppContext
import com.stardust.auojs.inrt.App
import com.stardust.autojs.core.util.ProcessShell
import java.util.Locale
/**
* Created by Stardust on 2017/7/1.
*/
object AccessibilityServiceTool {
private val cmd = "enabled=$(settings get secure enabled_accessibility_services)\n" +
"pkg=%s\n" +
"if [[ \$enabled == *\$pkg* ]]\n" +
"then\n" +
"echo already_enabled\n" +
"else\n" +
"enabled=\$pkg:\$enabled\n" +
"settings put secure enabled_accessibility_services \$enabled\n" +
"fi"
fun enableAccessibilityServiceByRoot(context: Context, accessibilityService: Class<out AccessibilityService>): Boolean {
val serviceName = context.packageName + "/" + accessibilityService.name
return try {
TextUtils.isEmpty(ProcessShell.execCommand(String.format(Locale.getDefault(), cmd, serviceName), true).error)
} catch (ignored: Exception) {
false
}
}
fun enableAccessibilityServiceByRootAndWaitFor(context: Context, timeOut: Long): Boolean {
if (enableAccessibilityServiceByRoot(context, com.stardust.view.accessibility.AccessibilityService::class.java)) {
com.stardust.view.accessibility.AccessibilityService.waitForEnabled(timeOut)
return true
}
return false
}
fun goToAccessibilitySetting() {
GlobalAppContext.get().startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
}
}

View File

@@ -5,17 +5,15 @@ import android.app.Application
import android.content.Context
import com.stardust.app.GlobalAppContext
import com.stardust.auojs.inrt.LogActivity
import com.stardust.auojs.inrt.Pref
import com.stardust.auojs.inrt.R
import com.stardust.auojs.inrt.SettingsActivity
import com.stardust.autojs.core.accessibility.AccessibilityServiceTool
import com.stardust.autojs.runtime.ScriptRuntime
import com.stardust.autojs.runtime.api.AppUtils
import com.stardust.autojs.runtime.exception.ScriptException
import com.stardust.autojs.runtime.exception.ScriptInterruptedException
import com.stardust.autojs.script.JavaScriptSource
import com.stardust.view.accessibility.AccessibilityService
import com.stardust.view.accessibility.AccessibilityServiceUtils
import java.lang.IllegalStateException
/**
@@ -32,25 +30,18 @@ class AutoJs private constructor(application: Application) : com.stardust.autojs
return AppUtils(context, context.packageName + ".fileprovider")
}
override fun ensureAccessibilityServiceEnabled() {
if (AccessibilityService.instance != null) {
return
}
var errorMessage: String? = null
if (AccessibilityServiceUtils.isAccessibilityServiceEnabled(application, AccessibilityService::class.java)) {
errorMessage = GlobalAppContext.getString(R.string.text_auto_operate_service_enabled_but_not_running)
} else {
if (Pref.shouldEnableAccessibilityServiceByRoot()) {
if (!AccessibilityServiceTool.enableAccessibilityServiceByRootAndWaitFor(application, 2000)) {
errorMessage = GlobalAppContext.getString(R.string.text_enable_accessibility_service_by_root_timeout)
}
} else {
errorMessage = GlobalAppContext.getString(R.string.text_no_accessibility_permission)
}
if (isAccessibilityServiceEnabled()) {
errorMessage = GlobalAppContext.getString(R.string.text_a11y_service_enabled_but_not_running)
} else if (!getAccessibilityServiceTool().enableAccessibilityServiceAutomaticallyIfNeededAndWaitFor(2000)) {
errorMessage = GlobalAppContext.getString(R.string.text_no_accessibility_permission)
}
if (errorMessage != null) {
AccessibilityServiceTool.goToAccessibilitySetting()
getAccessibilityServiceTool().goToAccessibilitySetting()
throw ScriptException(errorMessage)
}
}
@@ -60,19 +51,13 @@ class AutoJs private constructor(application: Application) : com.stardust.autojs
return
}
var errorMessage: String? = null
if (AccessibilityServiceUtils.isAccessibilityServiceEnabled(application, AccessibilityService::class.java)) {
errorMessage = GlobalAppContext.getString(R.string.text_auto_operate_service_enabled_but_not_running)
} else {
if (Pref.shouldEnableAccessibilityServiceByRoot()) {
if (!AccessibilityServiceTool.enableAccessibilityServiceByRootAndWaitFor(application, 2000)) {
errorMessage = GlobalAppContext.getString(R.string.text_enable_accessibility_service_by_root_timeout)
}
} else {
errorMessage = GlobalAppContext.getString(R.string.text_no_accessibility_permission)
}
if (isAccessibilityServiceEnabled()) {
errorMessage = GlobalAppContext.getString(R.string.text_a11y_service_enabled_but_not_running)
} else if (!getAccessibilityServiceTool().enableAccessibilityServiceAutomaticallyIfNeededAndWaitFor(2000)) {
errorMessage = GlobalAppContext.getString(R.string.text_no_accessibility_permission)
}
if (errorMessage != null) {
AccessibilityServiceTool.goToAccessibilitySetting()
getAccessibilityServiceTool().goToAccessibilitySetting()
if (!AccessibilityService.waitForEnabled(-1)) {
throw ScriptInterruptedException()
}
@@ -95,6 +80,14 @@ class AutoJs private constructor(application: Application) : com.stardust.autojs
return runtime
}
private fun getAccessibilityServiceTool(): AccessibilityServiceTool {
return AccessibilityServiceTool(application)
}
private fun isAccessibilityServiceEnabled(): Boolean {
return getAccessibilityServiceTool().isAccessibilityServiceEnabled()
}
companion object {
@SuppressLint("StaticFieldLeak")

View File

@@ -16,7 +16,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="12dp"
android:text="@string/powered_by_autojs"
android:text="@string/text_powered_by_autojs"
android:textColor="#dd000000"
android:textSize="14sp"/>
</FrameLayout>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="summary_not_showing_main_activity">Run script directly without showing main activity</string>
<string name="text_a11y_service_enabled_but_not_running">Accessibility service enabled but not running (Re-enable or reboot the device)</string>
<string name="text_not_showing_main_activity">Not showing main activity</string>
<string name="text_settings">Settings</string>
</resources>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="summary_not_showing_main_activity">启动应用后直接运行脚本</string>
<string name="text_a11y_service_enabled_but_not_running">无障碍服务已启用但未运行 (尝试重新启用或重启设备)</string>
<string name="text_not_showing_main_activity">不显示主界面</string>
<string name="text_settings">设置</string>
</resources>

View File

@@ -1,24 +1,8 @@
<resources>
<string name="app_name">inrt</string>
<string name="text_no_accessibility_permission">无障碍服务未启动</string>
<string name="text_auto_operate_service_enabled_but_not_running">无障碍服务已启用但没有运行,您可以尝试重新启用或重启手机</string>
<string name="text_enable_accessibility_service_by_root_timeout">使用root权限启用无障碍服务失败</string>
<string name="text_settings">设置</string>
<string name="text_script_running">脚本运行</string>
<string name="key_use_volume_control_running">key_use_volume_control_running</string>
<string name="key_enable_accessibility_service_by_root">key_enable_accessibility_service_by_root</string>
<string name="text_use_volume_to_stop_running">音量上键停止所有脚本</string>
<string name="summary_enable_accessibility_service_by_root">开启后运行脚本会使用 Root 权限自动开启无障碍服务</string>
<string name="text_enable_accessibility_service_by_root">使用 Root 权限自动启用服务</string>
<string name="key_stable_mode">key_stable_mode</string>
<string name="summary_stable_mode">开启后布局分析更稳定,但小部分脚本可能无法正常运行。重启无障碍服务生效</string>
<string name="text_stable_mode">稳定模式</string>
<string name="text_accessibility_service">无障碍服务</string>
<string name="text_not_show_main_activity">不显示主界面</string>
<string name="key_not_show_main_activity">key_not_show_main_activity</string>
<string name="summary_not_show_main_activity">打开应用后直接运行脚本</string>
<string name="text_others">其他</string>
<string name="powered_by_autojs">Powered by Auto.js</string>
<string name="text_execution_finished" formatted="false">[%s] 运行结束 (用时 %f 秒)</string>
<string name="key_not_showing_main_activity" translatable="false">key_not_showing_main_activity</string>
<string name="summary_not_showing_main_activity">Run script directly without showing main activity</string>
<string name="text_a11y_service_enabled_but_not_running">Accessibility service enabled but not running (Re-enable or reboot the device)</string>
<string name="text_not_showing_main_activity">Not showing main activity</string>
<string name="text_powered_by_autojs" translatable="false">Powered by AutoJs6</string>
<string name="text_settings">Settings</string>
</resources>

View File

@@ -11,20 +11,20 @@
<SwitchPreference
android:defaultValue="false"
android:key="@string/key_not_show_main_activity"
android:summary="@string/summary_not_show_main_activity"
android:title="@string/text_not_show_main_activity"/>
android:key="@string/key_not_showing_main_activity"
android:summary="@string/summary_not_showing_main_activity"
android:title="@string/text_not_showing_main_activity"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/text_accessibility_service">
android:title="@string/text_a11y_service">
<SwitchPreference
android:defaultValue="false"
android:key="@string/key_enable_accessibility_service_by_root"
android:summary="@string/summary_enable_accessibility_service_by_root"
android:title="@string/text_enable_accessibility_service_by_root"/>
android:key="@string/key_enable_a11y_service_with_root_access"
android:summary="@string/summary_enable_a11y_service_with_root_access"
android:title="@string/text_enable_a11y_service_with_root_access_automatically"/>
<SwitchPreference
android:defaultValue="false"