Файл Android.mk для использования UpdateEngine (SystemApi) - PullRequest
0 голосов
/ 04 ноября 2018

Я нашел пример использования OTA-обновлений. Но мне нужно использовать android.os.UpdateEngine

Это SystemApi, и я нашел этот вопрос на StackOverFlow , где ответ записан в android.mk файл LOCAL_SDK_VERSION := system_current

Я никогда раньше не работал с файлами android.mk, поэтому я создал его и поместил в app / android.mk

Это все, что у меня есть в моем файле android.mk:

LOCAL_PATH := $(call my-dir)
LOCAL_SDK_VERSION := system_current

Также я добавляю это в файл build.gradle (я не использую NDK в моем приложении, но я не знаю других способов использовать файл android.mk)

sourceSets.main {
        jniLibs.srcDir 'src/main/libs' //set libs as .so's location instead of jniLibs
        jni.srcDirs = [] //disable automatic ndk-build call with auto-generated Android.mk
    }
externalNativeBuild {
        ndkBuild {
            path 'Android.mk'
        }
    }

Но в любом случае, когда я пишу import android.os.UpdateEngine я получаю Не удается разрешить символ "UpdateEngine"

Я пытался искать в Google Stack, но не могу найти решение.

1 Ответ

0 голосов
/ 17 ноября 2018

Я работал без make-файла или NDK, используя модифицированный файл android.jar из этого репозитория: https://github.com/anggrayudi/android-hidden-api

Загрузите соответствующий файл android.jar и поместите его в app / libs-sdk в вашем проекте.

Добавьте следующую зависимость в файл вашего приложения build.gradle:

compileOnly fileTree(include: ['*.jar'], dir: 'libs-sdk')

В файле build.gradle верхнего уровня добавьте следующий код, чтобы Android Studio использовал измененный android.jar.

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:/android.jar')
        }
    }
}

После этих шагов я смог получить доступ к классу android.os.UpdateEngine из моего проекта. Единственная проблема, которую не удается устранить, - это доступ к некоторым методам SystemApi (не классам), таким как RecoverySystem # verifyPackageCompatibility.

...