Как получить разрешение NFCEE_ADMIN на рутированном телефоне? - PullRequest
1 голос
/ 03 марта 2012

Разрешение NFCEE_ADMIN является уровнем подписи. Однако можно ли «обмануть», чтобы получить это разрешение на рутированном телефоне? Может быть, использовать технику, аналогичную , как ClockSync это делает ?

Я пытаюсь использовать методы отражения, чтобы получить доступ к 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: ни у пользователя xxx, ни у текущего процесса нет com.android.nfc.permission.NFCEE_ADMIN.»

Редактировать: Конечно, я добавил разрешение к пакету, но оно удаляется во время установки:

W/PackageManager(  XXX): Not granting permission com.android.nfc.permission.NFCEE_ADMIN to package XXX (protectionLevel=2 flags=0x8be46)

1 Ответ

1 голос
/ 03 марта 2012

Подпись вашего приложения должна быть в /system/etc/nfcee_access.xml.См. Например http://code.google.com/p/seek-for-android/wiki/BuildingTheSystem для примера, как его создать.

...