History log of /packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
31208d3ee36f583fd998c89508a3e93bb550cb29 30-Jul-2014 Martijn Coenen <maco@google.com> Support for AID prefix registration.

Bug: 16517161
Change-Id: I8bc58ac0e9fb6684a7ee22d712dbbd91279d4c30
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
08b1547d4b59c8c8fdf215bea870d20608fa71cf 15-Jan-2014 Evan Chu <evanchu@broadcom.com> Close the TapAgainDialog during off-host HCE transaction.

The TapAgainDialog shall be closed when an off-host HCE transaction
occurs.

Change-Id: Id066824fe4186088828ebace2d5a39f574e1f237
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
da772582c17e3f5ffe36e4cab3e1ede3cba32060 26-Apr-2014 Martijn Coenen <maco@google.com> HCE/SE foreground support.

- Allow apps to specify a service they'd like to execute while in foreground.
- Refactored code that determines priority into PreferredServices
- Made a generic ForegroundUtils class that use IProcessObserver
to monitor foreground/background state transitions.
- Simplified logic in RegisteredAidCache that determines where an AID goes. Order is:
1) Foreground (if allowed to override)
2) Payment default app
3) Other.
- Added dump() to classes for easier debugging

Change-Id: Idf871ea91d10102b82b170a45b519be98adc9edf
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
af3e301d7820bc0a2447db8af16ab5335e6bd520 10-Apr-2014 Martijn Coenen <maco@google.com> Support for dynamic AID registration.

Change-Id: Iac786c395e2f46e54f74e6c643cd0b9414af333b
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
dba891595bc0bbcb8f0810b4d014e935aa1955c5 23-Oct-2013 Martijn Coenen <maco@google.com> HCE: Fix potential crash and handle Android AID.

For new "default route" CTS test. Also, fix
a potential crash for starting off-host services
and check that HCE services have declared the
NFC permission.

Bug: 10681671
Change-Id: If86d9820d6eef5a0661be92be67168d5f81ddc64
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
a3b2c7944266cbd02afc08ce48ce8259d8a65019 25-Sep-2013 Martijn Coenen <maco@google.com> Latest HCE UX.

Use service description whenever we can.

Bug: 10862185
Bug: 10859925
Change-Id: I1e6f668bec0d2d2e4f96f803ba24ba58088836a3
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
f9366de7b3ad1ce90859d4194dacf13c0066926b 18-Sep-2013 Martijn Coenen <maco@google.com> Reject invalid AIDs.

Also, notify currently active service if an AID
has been selected on an off-host secure selement.
Clean up some TODO items as well.

Bug: 10817001
Change-Id: Ia6c0bb746d88add94464ed8c4339aa4aaf9d6c35
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
dc304dadda013e383fdd1348b2a24bc6b3c9acac 06-Sep-2013 Martijn Coenen <maco@google.com> HCE: Latest UX designs, strings.

Also, close dialogs on screen off.

Bug: 10262585
Change-Id: Ida69636cc54a7575cc109c908992cf47fe95cb76
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
8d57f1f5bd4ab7fba3c401d7e02fb46a54d3b931 04-Sep-2013 Martijn Coenen <maco@google.com> Remove support for legacy APIs.

Bug: 10550349
Change-Id: Ifa5c9893373a69b1561dfa72fbd5f9c268f8f66e
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
f5cd84c3a7ffb66196ab3c0745569da937d7533b 30-Aug-2013 Martijn Coenen <maco@google.com> Upgrade to new API changes.

Following API review. Also:
- Added support for pause/resume P2P in reader mode
- Fixed bug where we tried to route even when NFC was off,
causing lockups.

Bug: 10550349
Bug: 10552589
-

Change-Id: I48f6834386bd542bdf1b7f1a8b1072d8981b0915
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
451ba48faa87d78bfbec0597ff06af1747cf6acb 29-Aug-2013 Martijn Coenen <maco@google.com> HCE: API updates, default handling, lock-screen.

- Use new selection mode APIs
- Fixed up default handling
- Check if service requires device unlock before dispatching
- Fixed isDefaultServiceForAid()
- Fixed a bug where we created two routing managers

Change-Id: Iba4a3ce7f599974ccedbf8d301cc46ff1e99c94e
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
78976de08ad5d5f9d5fcba28f3ea82350907a782 15-Aug-2013 Martijn Coenen <maco@google.com> HCE UX: Display dialog on service failure indication.

Also:
- Refactor AID handling to separate class.
- Implement unHandled() call from service.
- Verify the service's identify by checking replyTo param
- Return 6F00 in case we can't parse an APDU for whatever reason.

Bug: 10262585
Change-Id: I1a3ccb9ae57107d68cf5923c3cf05bd224f93e4e
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
ac91fe83c263fea3a3e38cf7fee54697259999f8 08-Aug-2013 Martijn Coenen <maco@google.com> Queue SELECT APDU in case a service was already bound.

Change-Id: I01bfe49d718767ae1087a58f310b683ffe7807d1
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
89c893312d524f50c47b0d32071f3de8631197f3 08-Aug-2013 Martijn Coenen <maco@google.com> HCE: permissions, OffHost services, payment service.

- Added permission and userId checks for all new
incoming binder calls.
- Started enumerating OffHostApduServies correctly,
dealing with the routing as we go.
- Fixed up HostEmulationManager logic to work with the
correct service; check if service is already bound.
- Persistently bind to payment service if one has been
selected as default by the user.
- Return 6A82 for AIDs that are not found.

Change-Id: I7b8121bec54b815d94b49747bc4f2bb00de26b36
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
75f63db568f953e935e62cb3046d167b881979c8 07-Aug-2013 Martijn Coenen <maco@google.com> HCE: 1-time tap overrides, chooser/tap again.

- Added two dialogs for dealing with app selection
and asking the user to "Tap Again" once an app
has been selected.
- Logic for dealing with 1-time tap overrides and
defaults.

UX still to be finalized.

Change-Id: I10f9fed6ef8aa6255a88f6a518af9875068ddac4
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
a0b908c58b5ab0d242ccc545d14573901774bd29 31-Jul-2013 Martijn Coenen <maco@google.com> More HCE work.

- Factor our helper class containing information about
(Off)HostApduServices to ApduServiceInfo.
- New BIND_NFC_SERVICE permission to protect implementing
services from other apps binding.
- Implement INfcCardEmulationService interface from
the framework APIs.
- Observe changes in settings for default apps in a
category.
- Single algorithm that resolves AIDs to a list of eligible
services, taking into account defaults as well. Result of
that algorithm feeds directly into the routing decisions.
- Removed old persisting code, everything is in Settings.Secure now.

Change-Id: I1840710f19435b079d20a4a41642b79fd03d1c76
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
717a8bdc43aa9328899df86cb523430466cf5baa 26-Jul-2013 Martijn Coenen <maco@google.com> Update to use latest XML-grammar in framework.

Also clean up a bit and get rid of some nasty dependencies.

Change-Id: I8fe5a787830a583f3e85e9ead1b002feed8de223
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
6493859b424f65af79e3e13835f7dfed38495c00 20-Jul-2013 Martijn Coenen <maco@google.com> HCE: use new platform APIs.

The service interface is now defined in the platform.

Change-Id: I6dbffed4d8185f437880912179f69b91e1a51cd9
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
d53c2b599c73f7404b5a604be4d9a5449cafdd72 16-Jul-2013 Martijn Coenen <maco@google.com> HCE: Support dynamic routing changes.

- Routing table will now be dynamically updated as
HCE services are installed/removed/modified
- Layering and arch:
- RegisteredAidCache knows about which services want
which AIDs, and on what route.
- AidRoutingManager maintains the current state of the
AID routing table in the NFCC.
- HostEmulationManager is responsible for incoming
HCE transactions and resolving them to the correct
service.
- Fixed various bugs

Change-Id: I16327dfca96a9bd3fb5633c2e6b4247fe35ab8d6
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java
9f8f6cf9c58405ecafe2d425801e6c14088db8c7 30-Apr-2013 Martijn Coenen <maco@google.com> Host-based card emulation.

Initial check-in that allows to build basic HCE apps:
- Introduced new RoutingManager, taking care of programming
the routing table to the NFCC.
- Added DeviceHost interfaces for adding/removing aids to
the routing table, and sending raw frames.
- On devices that have an eSE, the eSE is the default route.
- Removed routing code from SecureElement class.
- HostEmulationManager resolves and dispatches AIDs
routed to the host to an application service.
- Simple Messenger service interface for exchanging APDUs.
- RegisteredAidCache keeps a cache of AIDs that are registered
by Android applications, as well as their route.

TODO:
- Dynamic registration of AIDs.
- Dynamic updates of the routing table.
- AID conflict resolution.
- Allow apps to indicate AIDs present "off-host".
- Implement base-class HCE service in framework.
- Switch default route to host.

Change-Id: I7d7643770fcc848699810ec5443d0d9b81d85669
/packages/apps/Nfc/src/com/android/nfc/cardemulation/HostEmulationManager.java