Android HMS端末にインストールされたアプリのセキュリティを確認する方法
HMS端末にインストールされたアプリに悪意があるアプリが含まれているかどうかを検出する方法を紹介します。
利用ライブラリ
対応端末
すべてのHMS端末
対応OS
EMUI 5.0以上
実装手順
前準備
(1) Huaweu Developerを登録します。
(2) AppGallery Connectでアプリのプロジェクトを登録します。
(3) keytoolで生成したSHA256をAppGallery Connectのアプリプロジェクトに登録します。
(4) agconnect-services.jsonをダウンロードし、appフォルダに配置します。
HMS SDKを導入
(1) プロジェクトのbuild.gradleを開き、mavenとclasspathを追加します。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = "1.3.72"
repositories {
google()
jcenter()
// こちらの行を追加
maven {url 'http://developer.huawei.com/repo/'}
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
// こちらの行を追加
classpath 'com.huawei.agconnect:agcp:1.3.1.300'
}
}
allprojects {
repositories {
google()
jcenter()
// こちらの行を追加
maven { url 'http://developer.huawei.com/repo/' }
}
}
(2) モジュールのbuild.gradleを開き、次のようにを追加します。
plugins {
id 'com.android.application'
id 'kotlin-android'
// こちらの行を追加
id 'com.huawei.agconnect'
}
android {
// signingConfigsを追加
signingConfigs {
debug {
storePassword 'My password'
keyAlias 'My keyAlias'
keyPassword 'My password'
storeFile file('My keystore file.jks')
v1SigningEnabled true
v2SigningEnabled true
}
release {
storePassword 'My password'
keyAlias 'My keyAlias'
keyPassword 'My password'
storeFile file('My keystore file.jks')
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
release {
// signingConfigを追加
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
// signingConfigを追加
signingConfig signingConfigs.debug
debuggable true
}
}
buildFeatures {
dataBinding true
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
// こちらの1行を追加
implementation 'com.huawei.hms:safetydetect:6.3.0.301'
}
(3) proguard-rules.proを開き、次のようにを追加します。
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
ライブラリの使用
private fun getMaliciousApps() {
SafetyDetect.getClient(this)
.maliciousAppsList
.addOnSuccessListener { maliciousAppsListResp ->
val appsDataList: List<MaliciousAppsData> = maliciousAppsListResp.maliciousAppsList
if (maliciousAppsListResp.rtnCode == CommonCode.OK) {
if (appsDataList.isEmpty()) {
val text = "No known potentially malicious apps are installed."
Toast.makeText(this!!.applicationContext, text, Toast.LENGTH_SHORT).show()
} else {
for (maliciousApp in appsDataList) {
Log.e(TAG, "Information about a malicious app:")
Log.e(TAG, " APK: " + maliciousApp.apkPackageName)
Log.e(TAG, " SHA-256: " + maliciousApp.apkSha256)
Log.e(TAG, " Category: " + maliciousApp.apkCategory)
}
}
} else {
val msg = ("Get malicious apps list failed! Message: " + maliciousAppsListResp.errorReason)
Log.e(TAG, msg)
}
}
.addOnFailureListener { error ->
error?.printStackTrace()
}
}
appsDataListに悪意があるアプリのリストが入っています。
GitHub
https://github.com/Rei2020GitHub/MyPublicProject/tree/master/SafetyDetectDemo
参考
- HMS:https://developer.huawei.com/consumer/jp/
- Safety Detectの紹介:https://developer.huawei.com/consumer/jp/hms/huawei-safetydetectkit/
- Safety Detectのドキュメント:https://developer.huawei.com/consumer/en/doc/development/Security-Guides/appscheck-0000001050154380
- Huawei Developers:https://forums.developer.huawei.com/forumPortal/en/home
- Facebook Huawei Developersグループ:https://www.facebook.com/Huaweidevs/
Author And Source
この問題について(Android HMS端末にインストールされたアプリのセキュリティを確認する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/Rei_2020/items/69268bebf9245dca4cb3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .