A Realization About Samsung S6 Power Saving Access

In a previous posting, I had remarked that the (famous) “Tasker” app has a 3rd-party plugin named “Secure Settings”, which has a sub-section named “Samsung ROM”, under which there is a function named “Enable / Disable Power Saving”.

The general context of this is, that Tasker is a task Acceleration / Automation tool, in which each Task is defined as a sequence of Actions, many of which are built-in, but some of which are Actions defined by 3rd-party plugins, such as by ‘Secure Settings’. Hence, it was a goal of mine to insert the Action into a Tasker Task, which would turn the Power Saving Mode on, on my “Samsung Galaxy S6″ phone.

I am Not Rooted.

This failed every time, and at first I thought the reason would be, that the author of ‘Secure Settings’ had failed to keep his module up-to-date with the latest Android Lollipop version, which my S6 is running.

But then another observation came to my attention.

The app “NFC Tools Pro”, and its companion, “NFC Tasks”, is also supposed to support, that an NFC Tag should enable Power Saving Mode on a Samsung Phone, when we tap the Tag. ‘NFC Tools Pro’ additionally has a mode in which it executes its Task as a test, before that Task has even been programmed into a Tag. And when I ran the test, this app was also unable to switch on Power Saving Mode.

In both cases the behavior is identical, in that the Action returns as a ‘success’ immediately (even though when I Enable Power Saving manually, it takes several seconds for this setting to kick in), but in that Power Saving Mode is not enabled – even later.

And so an inference which I am making about this feature, is that indeed the app developers are not up-to-date with the latest Samsung API – Only Because on the latest phones, one needs to be rooted in order for this command to work (!)

And so what I ended up doing both as an intended, future NFC Tag Task, and as a present Tasker Task, was simply to script a pop-up to appear, which states “Suggest to Enable (or Disable) Power Saving Mode Now.” It is a shame, that the whole procedure cannot be 100% automated, but I guess that Samsung has been very conscientious in its efforts to increase security. And denying ‘any old app’ permission to fiddle with the power settings in general, could be a step towards greater security.

Dirk

 

I may soon start using NFC Tags.

One of the realities of technology today, is the existence of ‘NFC’ Communications, which stands for “Near-Field Communications”. One of my friends has already asked me more or less, ‘We already have ‘WiFi’ and ‘Bluetooth’, so why do we need yet another type of short-range communication protocol?’ And my honest answer was, ‘To be able to do even more than we were able to do before!’

It is also a reality, that the tech-savvy world has known about NFC for some time. There was a misconception which I had, according to which NFC Tag Utility and Information apps on our phones were supposed top be able to read data stored on credit-cards and other types of chip-cards. But this is not really true. There exist different types of chip-cards, and credit cards are not compatible with most popular smartphone apps. There could be special apps designed to read them, but in general this is not how it works.

Instead, we can buy tags meant for apps, and meant for the consumer market. One app I have had installed for a long time, is named “NFC Tools Pro” and is sold on the Android Market by a group named “wakdev”. Apparently, users can store a small number of bytes of data on our actual tags, that include URLs to Videos, Web-pages, and other types of online content. But in addition, this app allows the user to store a sequence of actions on a tag, which a companion-app will execute on the phone, when the phone is tapped against the tag afterward. The companion app is named “NFC Tasks”, again from “wakdev”.

Because the companion app would practically need permission on our phone to do just about anything, ‘wakdev’ decided to split that into such a separate app. Without it, ‘NFC Tools Pro’ is merely able to program tags, to trigger for content to be played by receiving phones.

Obviously, in order for this to work, the programming on the tags needs to be somewhat compatible, between the phone that stored the data, and the phone which taps on the tags.

One obvious issue which I have wondered about, was what sort of security might exist. In theory, a tag could be programmed maliciously by an unknown third party, and the user could be tricked into tapping on it, at which point the question becomes, whether his phone would suddenly carry out actions and config changes, which were planted in our midst. The answer to how this problem was solved, is not obvious if users simply have ‘NFC Tools Pro’ installed. But once we install ‘NFC Tasks’, we can see that a simple solution has been provided by ‘wakdev’, on the user-level.

By itself, the ‘NFC Tasks’ app can be configured to enforce a White-List of recognized tags. I presume they have some sort of serial number… Or, it could work via Message Digest – aka Hashcode.

But simply having the software installed does nothing for us. We need to have actual tags in our possession, in order for any of this to do anything. Fortunately, the company which sells the app, also makes it easy for the user to order physical tags online, by tapping within the ‘NFC Tasks’ app. We just need to have a valid credit card to pay for them, and a good Web-browser installed on our phone.

And so to maximize the chances of compatibility, I have just ordered for a batch of 10 “Whiztags” tags plus a keychain to be shipped to me from Australia. I ordered the ‘NTAG 216′ 10-Pack, the tags of which are capable of storing 888 bytes each.

I already have an idea of what I might use these for, before I have even received a single tag.

One of the tasks which I carry out on my phone routinely, is to switch it from ‘Apartment Mode’ to ‘Street Mode’ and back again. The actual sequence is

  1. Enable my ‘Headphone Controller’ Profile.
  2. Insert my Headphones.
  3. Start the Google Play Music app.
  4. Turn off WiFi.
  5. Put the phone into Power-Saving Mode.

I also need to carry out all these steps in reverse, every time I come back home. This is tedium which can actually slow down how fast I get out the door, or how fast I want to settle in, after I get home. And so I’m thinking of a similar sequence, which could be programmed into a tag by the door, for when I am leaving, and which can be programmed into a tag in my computer room, for when I get back home. Doing so might speed up my moving around.

One aspect to this project though which I have not completely answered is, ‘Because the action of inserting my headphones still needs to be mechanical, exactly what will the sequence be, that the tags carry out?’ But I am confident, that I will be able to find a solution to this aspect. For example, my headphones controller app can sense whether the headphones have been inserted automatically, assuming that it has been launched. Also, this app is smart enough to recognize, if headphones were inserted before it was launched, that then they count as inserted, at the time the app is launched. This would be a key detail.

What this capability of the Headphone Controller app means, is that I can program it into the Profiles of the Headphone Controller app, where I already have it programmed to reset the volume level as well, to Launch the music for example, or to Stop the music…

Also, the Whiztags tags have an adhesive backing. This means that I could theoretically attach them directly to the inside of my apartment door if I wanted to. I would only need to ask myself, whether I would really want to be so committal. Having a tag glued to my door, that can be locked so that its functions can no longer be reprogrammed, and then perhaps to have to replace that tag, would also count as damaging my door. So instead my exact methods of attaching the tags will also need to be adapted to my needs.

But for now, I am simply waiting for the order which I just placed to be fulfilled, and for my tags to arrive.

Dirk