Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 15 submissions in the queue.
posted by takyon on Saturday June 06 2015, @04:00PM   Printer-friendly
from the verified-links dept.

These days there are so many apps infested with spyware or adware, and it almost seems as if the stores themselves are promoting them in exchange for a cut. And some apps that start off clean get "updated" to include ads and spying. How do you find free apps that aren't infested?


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 4, Insightful) by frojack on Saturday June 06 2015, @05:10PM

    by frojack (1554) on Saturday June 06 2015, @05:10PM (#192949) Journal

    I'm anxious to see someone explain to me why a dumb game up wants to know my phone number,

    Chances are, the app doesn't want your phone number.
    (If the app still plays while in airplane mode its probably not dependent on any thing like that).

    What you see here, is the fault of Android's methods of bundling permissions into groups.
    You want the game to exit, or maybe just save-state and idle when a phone call comes in.
    So the game is responsible to check if the phone is ringing or in a call.

    Rather than making some simple OS flag for that, Android puts the onus on the programmer to call some API (or something) every few milliseconds to get phone state.
    And if you do anything with that phone API, you have to declare that you do all the things that API might be able to do.

    So apps look much worse than they are in many cases. (Probably in MOST cases).
    Want to play against your friends over the network? Ok, now it needs full network access, access to your contacts, and a metric BOATLOAD of other crap.

    And IOS is similar. This isn't strictly an Android problem.
    The blame lies squarely with the OS developer, and its probably going to stay that way until the permissions architecture changes radically to become much more granular.

    http://www.cyanogenmod.org/ [cyanogenmod.org] was starting to make more granular permissions, such that you could restrict each app to specific granular permissions, and if they failed to work with that limited subset then too bad for that app. http://www.androidcentral.com/cyanogenmod-updating-privacy-guard-20-new-features-coming-cm102 [androidcentral.com]

    However, I have not been following the project close enough to know if they are still working that way or have sold out to the venture capitalists.

    --
    No, you are mistaken. I've always had this sig.
    Starting Score:    1  point
    Moderation   +2  
       Insightful=1, Informative=1, Total=2
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   4  
  • (Score: 5, Informative) by fritsd on Saturday June 06 2015, @06:45PM

    by fritsd (4586) on Saturday June 06 2015, @06:45PM (#192972) Journal

    So the game is responsible to check if the phone is ringing or in a call.

    Actually frojack, I think that's incorrect, or at least it used to be incorrect a while ago. In fact I think what you say is dangerously misinformed: who told you that? Or, alternatively, I could be showing my ignorance here, because I'm only a beginning android developer. In which case I apologize to you.

    The app writer is warned that the OS has the right to cut off your app at any moment, e.g if something urgent happens like, indeed, a phone call, or just that the phone goes in idle mode, or that the user clicked on something else.

    The app doesn't need to know shit about what exactly happened, only that your app's current active Activity *will* get its onPause() method called by the OS.

    The Activity superclass of your class calls onSaveInstanceState() at those times so you just override that handler. It's a bit more complicated if you have to build up or tear down a connection to a remote database, for example, but simple games don't need that.

    Simple games need this:

    onSaveInstanceState(Bundle saveInstanceState) {
    saveInstanceState.putInt(MYSCORE, this.score);
    }

    android does the rest when/if yor Activity's onResume() gets called.

    Can you imagine that every running app has to compete to check for the phone state every few milliseconds? that would be ridiculously ineffective. Instead, the lifecycle of the apps is managed by the system.

    See image: http://developer.android.com/images/training/basics/basic-lifecycle-paused.png [android.com]

    I learnt that apps are *not* first-class citizens, the user is the first class citizen, and if your app is unresponsive on a tiny slow computer, or if it loses state during the onPause .. onStop .. onRestart .. onResume cycles then your app is crap.

    PS soylent news maintainers: I had to try 5 times to post this message, kept getting timeouts errors and logouts. Something deteriorated a lot in the past week.

    • (Score: 3, Interesting) by frojack on Saturday June 06 2015, @07:51PM

      by frojack (1554) on Saturday June 06 2015, @07:51PM (#192981) Journal

      I've seen statements to that effect in the websites of many app developers, ones that i tend to trust. I might be misinterpreting them.

      I've also seen articles by developers trying to explain it.

      Some examples:
      http://www.androidcentral.com/look-application-permissions [androidcentral.com]
      http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/ [howtogeek.com]
      (hundreds more by just seaching "why app permissions" in google.

      Of course, I've also seen some permissions apologist articles:
      http://www.techrepublic.com/article/why-handing-android-app-permission-control-back-to-users-is-a-mistake/ [techrepublic.com]

      --
      No, you are mistaken. I've always had this sig.
      • (Score: 2) by fritsd on Saturday June 06 2015, @10:12PM

        by fritsd (4586) on Saturday June 06 2015, @10:12PM (#193021) Journal

        I read that "howtogeek" article you linked to, and I agree it would be very bad news if that is true.

        The "androidcentral" article, the paragraph about phone calls, *sounds* wrong. I'm not saying it *is* wrong, I haven't checked it. But consider:

        Phone calls -- read phone status and identity

        The most abused, and least understood permission of them all. Some apps need to know if your phone is about to ring. Maybe they need to save state (ie freeze what they're doing) for when the incoming call screen pops up, or they need to turn over audio control back to the OS. But this is also the one that can read, and send your IMEI and other identifying information back to some random server on the Internet.

        I can't think of any reason why any app, except for the single one app that is an Intent listener for telephone calls, needs to know if your phone is about to ring.

        Suppose you're some manager of Google Android, but you understand about computers. The spec says that the apps are managed by the system and the resources are managed by the system. Would you entrust your customers' Valuable Android Experience(TM) on their Expensive Phone(TM) to the responsibility of some random Chinese student programmer who sells a $ 0.15 tetris clone to always meticulously (A) poll the hardware for events that mean it has to stop, and (B) invoke onSaveInstanceState() in the correct way to relinquish audio control,

        or would you just write it so that (A) the OS stops the active aps except for the (high-priority) phone listener, and (B) any app that doesn't relinquish audio control itself gets killed 1 ms later by the system, and restarted the "boring" way instead of with a fast onResume() call, and if you lost your Tetris score then at least the actual phone calling experience went flawlessly and you can complain via the app store to get your $ 0.15 back.

        I do not have the time/energy to download the AOSP source code and check the watered-down permissions issue for myself. Can anyone tell in which versions it's crap?

        • (Score: 2) by frojack on Sunday June 07 2015, @01:03AM

          by frojack (1554) on Sunday June 07 2015, @01:03AM (#193061) Journal

          I do not have the time/energy to download the AOSP source code and check the watered-down permissions issue for myself.

          Same boat here. No time to crawl through that mountain of code.

          But I did find an App by F-Secure called App Permissions [google.com] which allows you to set a filter (such as show only those apps that can read phone state), and the number that can read phone state is pretty amazing.
          Why do all those things have read-phone-state?

          --
          No, you are mistaken. I've always had this sig.
    • (Score: 0) by Anonymous Coward on Sunday June 07 2015, @01:37AM

      by Anonymous Coward on Sunday June 07 2015, @01:37AM (#193086)

      Huh. Looking at the app permissions and the ease and ability of users to control/override them, and users not having a power user mode so they don't need to root their phones to automate stuff like turn on and off- GPS, mobile data roaming, airplane mode, etc; I'd say google or someone else is the first class citizen not the user.