Я хочу использовать метаданные в манифесте Android, чтобы настроить поведение службы.Есть ли способ сохранить метаданные в манифесте Android, приватные для пакета?
<service
android:name=".SampleService"
android:exported="false">
<meta-data
android:name="sampleName"
android:resource="@string/sampleValue" />
</service>
Моя служба является частью библиотеки, и возможно, некоторые из них могут поместить конфиденциальные данные в этих атрибутов, когда они используют мою службу. Являются ли эти атрибуты метаданных видимыми для других установленных пакетов на телефоне через PackageManager, даже если служба не экспортируется?
Это может исключить информацию из публичных размещений, менеджера пакетов для других программ, но это довольно просто, чтобы найти и открыть APK, извлечь двоичный манифест, и demangle его обратно в обычный текст - ситуацию с ресурсы должны быть схожими. Нельзя, наверное, не полагаться на то, что всегда в состоянии сделать это, но нужно обязательно ** не ** полагаться на кого-то другого, а не на то, чтобы быть в состоянии сделать это. –
Разве это не так для всех файлов, активов и ресурсов dex? – Alan
Да, но значения, которые собираются в коде, требуют немного более конкретного усилия, чем значения, которые хранятся стандартным образом. –