[Xposed Framework Modules] subzero2000:
Working on Samsung Galaxy Note II (Android 4.1.2)

Yay, I finally got it to work, though I'm not thrilled with what I had to do to get it to work.

I sent a pull request for my changes. It does not reflect the last thing I had to do, however, and that was relax the need for the broadcaster to have the "android.permission.INTERNAL_SYSTEM_WINDOW" permission for the receiver to handle it. After I relaxed that, NFC unlocking of my screen on my Samsung Galaxy Note II (Verizon SCH-I605) using a Samsung TecTile works fine. Now to see if there is some way of finding out what permissions the broadcaster had at the time the broadcast was sent. It appears that that permission has existed in Android for some time, so I'm guessing it's probably a change between 4.1 and 4.2. More debugging, but I'm so close I can feel it.

---------- Post added at 04:27 PM ---------- Previous post was at 03:38 PM ----------

Ok, looks like my guess was correct. Looking at the top of the AndroidManifest.xml for the NFC app in 4.2.2, we have:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.nfc"
android:sharedUserId="android.uid.nfc"
android:sharedUserLabel="@string/nfcUserLabel"
>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
<uses-permission android:name="android.permission.MASTER_CLEAR" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
[I]<!-- Begin - These are new to NFC App from 4.1.2 to 4.2.2 -->[/I]
[B] <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.MANAGE_USERS" />
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
[/B][I]<!-- End - These are new to NFC App from 4.1.2 to 4.2.2 -->[/I]
<uses-permission android:name="com.android.permission.WHITELIST_BLUETOOTH_DEVICE" />
<uses-permission android:name="com.android.permission.HANDOVER_STATUS" />

However, the manifest for the version of NFC in 4.1.2 contains the following:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
<uses-permission android:name="android.permission.MASTER_CLEAR" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.permission.WHITELIST_BLUETOOTH_DEVICE" />
<uses-permission android:name="com.android.permission.HANDOVER_STATUS" />

NFC in 4.1.2 does not use permission "android.permission.INTERNAL_SYSTEM_WINDOW", so restricting the receivers to require the broadcaster to have this permission in 4.1.2 is going to cause the receiver never to see this broadcast. Perhaps "android.permission.NFC" would be a better choice, since it appears to be common to both?