2012-03-03 2 views
1

Разрешение 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) 

ответ

1

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

+0

Является единственным решением для создания собственного изображения? Я пытался избежать этого:/ Я не совсем понимаю это предложение: «Этот файл утверждает, что включает в себя подписи приложений, которые могут получить разрешение NFCEE_ADMIN. Однако, похоже, это цепочка сертификатов подписчика, а не подпись приложения. " – Choumarin

+0

ОК. Управляется, чтобы получить подпись приложения в файле nfcee_access.xml. Но он все еще не работает:/ – Choumarin

+0

Ок. Файл nfcee_access.xml используется только для пользователей, а не для производственных. Я использовал CM9, работает как шарм. – Choumarin

Смежные вопросы