Wednesday, May 24, 2017

Google App v7.3 Prepares to Add a Notification Listener Service to Intercept Notifications

Google App v7.3.16 beta is rolling out to users on the Play Store, and while our traditional APK teardown hasn't revealed much information that we think is interesting, there is one feature that I thought would be worth sharing. Within the Android Manifest file are new strings that implement a Notification Listener Service which hints at the possibility that the Google App can intercept your notifications. For what exact purpose, we can only speculate at this time.

Although an APK teardown can often predict features that may arrive in a future update of an application, it is possible that any of the features we mention here may not make it in a future release. This is because these features are currently unimplemented in the live build and may be pulled at any time by Google in a future build.


Google App v7.3 APK Teardown

Now I know what some of you may be thinking: "doesn't the Google App already support notifications?" Yes, but that isn't what we're talking about here. The notifications that the Google App supports are for various reminders and updates that Google Now sends to you. A notification listener service allows the Google App to intercept notifications posted by other applications.

Within the Android Manifest file is the inclusion of the new Notification Listener Service. There isn't really much to say here apart from the fact that it even exists, to be honest.

  <service android:enabled="false" android:exported="true" android:name="com.google.android.apps.gsa.notificationlistener.GsaNotificationListenerService" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" android:process=":interactor">  <intent-filter>  <action android:name="android.service.notification.NotificationListenerService"/>  </intent-filter>  </service>  

The corresponding explicit broadcast receiver that is used by the Google App in order to react to a posted/remove notification is also present.

  <receiver android:name="com.google.android.apps.gsa.staticplugins.ipa.notifications.IpaBroadcastReceiver" android:process=":interactor">  <intent-filter>  <action android:name="com.google.android.apps.gsa.notificationlistener.NOTIFICATION_LISTENER_SERVICE_CONNECTED"/>  </intent-filter>  </receiver>  

Within one of the new smali files (d.smali located in com/google/android/apps/gsa/notificationlistener) is more evidence for this being implemented:

  invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;    move-result-object v1    const-string v2, "enabled_notification_listeners"    invoke-static {v1, v2}, Landroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;    move-result-object v1  

The reference to the string "enabled_notification_listeners" is referring to the Settings.Secure preference by the same name that holds a colon separated list of enabled notification listener services.

At this time, the notification listener service cannot be enabled in the live build at this time, so we can't confirm exactly what it will be used for. However, if we were to speculate a bit, we believe this may be in reference to the "bisto" device we uncovered last month. A teardown of the Google App at that time revealed that Bisto would be a type of headphone that you could listen to your notifications through. The only way to listen to all of your notifications on the phone is if the app has a Notification Listener Service enabled, so that's the most likely explanation we're going with.


I'll continue digging around and update this article if I find anything interesting in the live build, or through an APK teardown. If you are looking for this latest release of the Google App, you can download it right now over at APKMirror. Follow our APK Teardown tag for more articles like this!



from xda-developers http://ift.tt/2qcPeN1
via IFTTT

No comments:

Post a Comment