Разрешение NFCEE_ADMIN является уровнем подписи. Однако можно ли «обмануть» получить это разрешение на корневом телефоне? Может быть, используя технику, похожую на the way ClockSync does it?Как получить разрешение NFCEE_ADMIN на корневом телефоне?
Я пытаюсь использовать методы отражения, чтобы получить доступ к NFCExtras:
mAdapter = NfcAdapter.getDefaultAdapter(this);
try {
Class mynfcextras = Class.forName("android.nfc.INfcAdapterExtras");
Method getnfcExtras = mAdapter.getClass().getMethod("getNfcAdapterExtrasInterface");
Object nfcExtras = getnfcExtras.invoke(mAdapter);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Но, конечно, получить следующее сообщение об ошибке: «разрешение NFCEE_ADMIN требуется: Ни один пользователь ххх, ни текущий процесс имеет com.android.nfc. permission.NFCEE_ADMIN «.
Edit: Конечно, я сделал добавить разрешение на пакет, но он удаляется во время установки:
W/PackageManager( XXX): Not granting permission com.android.nfc.permission.NFCEE_ADMIN to package XXX (protectionLevel=2 flags=0x8be46)
Является единственным решением для создания собственного изображения? Я пытался избежать этого:/ Я не совсем понимаю это предложение: «Этот файл утверждает, что включает в себя подписи приложений, которые могут получить разрешение NFCEE_ADMIN. Однако, похоже, это цепочка сертификатов подписчика, а не подпись приложения. " – Choumarin
ОК. Управляется, чтобы получить подпись приложения в файле nfcee_access.xml. Но он все еще не работает:/ – Choumarin
Ок. Файл nfcee_access.xml используется только для пользователей, а не для производственных. Я использовал CM9, работает как шарм. – Choumarin