service 2-5-26-2
This commit is contained in:
@@ -23,15 +23,17 @@ class MainActivity : FlutterFragmentActivity() {
|
||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||
super.configureFlutterEngine(flutterEngine)
|
||||
|
||||
// Channel for security checks (isRooted)
|
||||
// Channel for security checks (isRooted, getAppSignature)
|
||||
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, SECURITY_CHANNEL)
|
||||
.setMethodCallHandler { call, result ->
|
||||
when (call.method) {
|
||||
"isNativeRooted" -> result.success(isDeviceCompromised())
|
||||
"getAppSignature" -> result.success(getAppSignature())
|
||||
else -> result.notImplemented()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Channel for app control (bringing to foreground)
|
||||
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, APP_CONTROL_CHANNEL)
|
||||
.setMethodCallHandler { call, result ->
|
||||
@@ -171,4 +173,35 @@ class MainActivity : FlutterFragmentActivity() {
|
||||
Log.d("MainActivity", "Deleted directory ${dir?.path}: $deleted")
|
||||
return deleted
|
||||
}
|
||||
|
||||
private fun getAppSignature(): String? {
|
||||
return try {
|
||||
val packageInfo = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
|
||||
packageManager.getPackageInfo(packageName, android.content.pm.PackageManager.GET_SIGNING_CERTIFICATES)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
packageManager.getPackageInfo(packageName, android.content.pm.PackageManager.GET_SIGNATURES)
|
||||
}
|
||||
|
||||
val signatures = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
|
||||
packageInfo.signingInfo?.signingCertificateHistory
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
packageInfo.signatures
|
||||
}
|
||||
|
||||
if (signatures != null && signatures.isNotEmpty()) {
|
||||
val signature = signatures[0]
|
||||
val md = java.security.MessageDigest.getInstance("SHA-256")
|
||||
val digest = md.digest(signature.toByteArray())
|
||||
digest.joinToString("") { "%02x".format(it) }
|
||||
} else {
|
||||
null
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e("MainActivity", "Error getting app signature: ${e.message}", e)
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user