Skip to content

Commit

Permalink
添加加密配置
Browse files Browse the repository at this point in the history
  • Loading branch information
aiselp committed Sep 15, 2023
1 parent 7e4e358 commit 87ec946
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 16 deletions.
9 changes: 7 additions & 2 deletions app/src/main/java/org/autojs/autojs/build/ApkBuilder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.stardust.app.GlobalAppContext
import com.stardust.autojs.apkbuilder.ApkPackager
import com.stardust.autojs.apkbuilder.ManifestEditor
import com.stardust.autojs.project.BuildInfo
import com.stardust.autojs.project.Constant
import com.stardust.autojs.project.ProjectConfig
import com.stardust.autojs.script.EncryptedScriptFileHeader
import com.stardust.autojs.script.JavaScriptFileSource
Expand All @@ -16,11 +17,10 @@ import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.asSharedFlow
import org.apache.commons.io.FileUtils
import org.apache.commons.io.IOUtils
import org.autojs.autojs.tool.addAllIfNotExist
import org.autojs.autojs.tool.copyTo
import org.autojs.autojs.tool.parseUriOrNull
import org.autojs.autojs.tool.unzip
import com.stardust.autojs.project.Constant
import org.autojs.autojs.tool.addAllIfNotExist
import pxb.android.StringItem
import pxb.android.axml.AxmlWriter
import zhao.arsceditor.ArscUtil
Expand Down Expand Up @@ -141,6 +141,11 @@ class ApkBuilder(
}

private fun encrypt(file: File, newFile: File) {
if (!projectConfig!!.isEncrypt){
newFile.delete()
file.copyTo(newFile)
return
}
val out = newFile.outputStream()
EncryptedScriptFileHeader.writeHeader(
out,
Expand Down
15 changes: 14 additions & 1 deletion app/src/main/java/org/autojs/autojs/ui/build/BuildPage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ fun BuildPage(model: BuildViewModel = viewModel()) {
ConfigCard(model)
PackagingOptionCard(model)
RunConfigCard(model)
EncryptCard(model)
SignatureCard(model)
}
}
Expand Down Expand Up @@ -325,7 +326,19 @@ private fun SignatureCard(
}
}
}

@Composable
fun EncryptCard(model: BuildViewModel){
Card {
Column(
Modifier
.fillMaxSize()
.padding(24.dp)
){
Text(text = stringResource(R.string.text_encrypt_options))
CheckboxOption(model::isEncrypt, stringResource(id = R.string.text_is_encrypt))
}
}
}
@Composable
private fun RunConfigCard(model: BuildViewModel) {
val context = LocalContext.current
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ class BuildViewModel(private val app: Application, private var source: String) :
var appSignKeyPath by mutableStateOf<String?>(null)
var keyStore by mutableStateOf<ApkKeyStore?>(null)

var isEncrypt by mutableStateOf(false)

val isConfigurationHasChanged: Boolean
get() {
Expand Down Expand Up @@ -253,6 +254,7 @@ class BuildViewModel(private val app: Application, private var source: String) :
projectDirectory = directory!!
outputPath = viewModel.outputPath
assets = updateAssets(assets)
isEncrypt = viewModel.isEncrypt
updateLibs(libs)
updateAbiList(abis)
if (ignoredDirs.isEmpty()) ignoredDirs = listOf(buildDir)
Expand Down Expand Up @@ -292,6 +294,7 @@ class BuildViewModel(private val app: Application, private var source: String) :
icon = projectConfig.icon?.let {
getUri(it)
}
isEncrypt = projectConfig.isEncrypt
mainScriptFile = projectConfig.mainScript ?: getMainScriptName()
isStableMode = projectConfig.launchConfig.isStableMode
displaySplash = projectConfig.launchConfig.displaySplash
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res-i18n/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,8 @@
<string name="text_required_tesseract_ocr" translatable="false">TesseractOCR</string>
<string name="text_required_7zip" translatable="false">7zip</string>
<string name="text_required_terminal_emulator">终端模拟器</string>
<string name="text_is_encrypt">简单加密js文件</string>
<string name="text_encrypt_options">加密选项</string>
<string name="text_required_background_start">需要后台弹出界面权限</string>
<string name="text_required_draw_overlay">需要悬浮窗权限</string>
<string name="text_volumeUpcontrol">音量上键结束任务</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,16 @@ import java.util.zip.CRC32
*/
@Keep
data class ProjectConfig(
@SerializedName("name")
var name: String? = null,
@SerializedName("packageName")
var packageName: String? = null,
@SerializedName("versionCode")
var versionCode: Int = 1,
@SerializedName("versionName")
var versionName: String = "1.0.0",
@SerializedName("icon")
var icon: String? = null,
@SerializedName("main")
var mainScript: String? = null,
@SerializedName("scripts")
var scripts: Map<String, ScriptConfig> = HashMap(),
@SerializedName("build")
var buildInfo: BuildInfo = BuildInfo(),
@SerializedName("launchConfig")
var launchConfig: LaunchConfig = LaunchConfig(),
@SerializedName("useFeatures")
var features: ArrayList<String> = arrayListOf(),
Expand All @@ -44,6 +37,8 @@ data class ProjectConfig(
var abis: MutableList<String> = arrayListOf<String>().apply { addAll(Constant.Abi.abis) },
var assets: List<Asset> = emptyList(),
var signingConfig: SigningConfig = SigningConfig(),
@SerializedName("encrypt-code")
var isEncrypt:Boolean = false
) {

fun getAbsolutePath(name: String): String {
Expand Down
15 changes: 10 additions & 5 deletions inrt/src/main/java/com/stardust/auojs/inrt/SplashActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,11 @@ class SplashActivity : ComponentActivity() {
Permissions.ACCESSIBILITY_SERVICES -> {
requestAccessibilityService()
}

Permissions.BACKGROUND_START -> {
requestBackgroundStart()
}

Permissions.DRAW_OVERLAY -> {
requestDrawOverlays()
}
Expand All @@ -131,11 +133,12 @@ class SplashActivity : ComponentActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)
lifecycleScope.launch {
projectConfig =
ProjectConfig.fromAssetsAsync(
this@SplashActivity,
ProjectConfig.configFileOfDir("project")
)!!
projectConfig = withContext(Dispatchers.IO) {
ProjectConfig.fromAssets(
this@SplashActivity,
ProjectConfig.configFileOfDir("project")
)!!
}
if (projectConfig.launchConfig.displaySplash) {
val frame = findViewById<FrameLayout>(R.id.frame)
frame.visibility = View.VISIBLE
Expand Down Expand Up @@ -188,10 +191,12 @@ class SplashActivity : ComponentActivity() {
permissionsResult[permission] =
AccessibilityServiceTool.isAccessibilityServiceEnabled(this)
}

Permissions.BACKGROUND_START -> {
permissionsResult[permission] =
BackgroundStartPermission.isBackgroundStartAllowed(this)
}

Permissions.DRAW_OVERLAY -> {
permissionsResult[permission] = DrawOverlaysPermission.isCanDrawOverlays(this)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ open class AssetsProjectLauncher(

private fun prepare() {
val projectConfigPath = PFiles.join(mProjectDir, ProjectConfig.CONFIG_FILE_NAME)
val projectConfig = ProjectConfig.fromFile(projectConfigPath)
val projectConfig = ProjectConfig.fromProject(File(projectConfigPath))
if (!BuildConfig.DEBUG && projectConfig != null &&
TextUtils.equals(projectConfig.buildInfo.buildId, mProjectConfig.buildInfo.buildId)
) {
Expand Down

0 comments on commit 87ec946

Please sign in to comment.