|
|
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
|
|
|
import android.content.pm.PackageManager
|
|
|
import android.provider.Settings
|
|
|
import androidx.annotation.Keep
|
|
|
+import cn.hutool.crypto.digest.DigestUtil
|
|
|
import io.legado.app.BuildConfig
|
|
|
import io.legado.app.model.AppVariant
|
|
|
import splitties.init.appCtx
|
|
|
@@ -25,6 +26,11 @@ object AppConst {
|
|
|
|
|
|
const val DEFAULT_WEBDAV_ID = -1L
|
|
|
|
|
|
+ private const val OFFICIAL_SIGNATURE =
|
|
|
+ "8DACBF25EC667C9B1374DB1450C1A866C2AAA1173016E80BF6AD2F06FABDDC08"
|
|
|
+ private const val BETA_SIGNATURE =
|
|
|
+ "93A28468B0F69E8D14C8A99AB45841CEF902BBBA3761BBFEE02E67CBA801563E"
|
|
|
+
|
|
|
val timeFormat: SimpleDateFormat by lazy {
|
|
|
SimpleDateFormat("HH:mm")
|
|
|
}
|
|
|
@@ -59,9 +65,11 @@ object AppConst {
|
|
|
appCtx.packageManager.getPackageInfo(appCtx.packageName, PackageManager.GET_ACTIVITIES)
|
|
|
?.let {
|
|
|
appInfo.versionName = it.versionName
|
|
|
- // TODO: 增加测试版还是正式版的检查
|
|
|
- if (it.packageName.contains("releaseA")) {
|
|
|
- appInfo.appVariant = AppVariant.BETA_RELEASEA
|
|
|
+ appInfo.appVariant = when {
|
|
|
+ it.packageName.contains("releaseA") -> AppVariant.BETA_RELEASEA
|
|
|
+ isBeta -> AppVariant.BETA_RELEASE
|
|
|
+ isOfficial -> AppVariant.OFFICIAL
|
|
|
+ else -> AppVariant.UNKNOWN
|
|
|
}
|
|
|
|
|
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
|
|
|
@@ -74,6 +82,17 @@ object AppConst {
|
|
|
appInfo
|
|
|
}
|
|
|
|
|
|
+ @Suppress("DEPRECATION")
|
|
|
+ private val sha256Signature: String by lazy {
|
|
|
+ val packageInfo =
|
|
|
+ appCtx.packageManager.getPackageInfo(appCtx.packageName, PackageManager.GET_SIGNATURES)
|
|
|
+ DigestUtil.sha256Hex(packageInfo.signatures[0].toByteArray()).uppercase()
|
|
|
+ }
|
|
|
+
|
|
|
+ private val isOfficial = sha256Signature == OFFICIAL_SIGNATURE
|
|
|
+
|
|
|
+ private val isBeta = sha256Signature == BETA_SIGNATURE || BuildConfig.DEBUG
|
|
|
+
|
|
|
val charsets =
|
|
|
arrayListOf("UTF-8", "GB2312", "GB18030", "GBK", "Unicode", "UTF-16", "UTF-16LE", "ASCII")
|
|
|
|