On Mon, Aug 9, 2010 at 4:22 AM, String <[email protected]>wrote:
> So to return to the OP's question, it sounds as though defeating LVL > by spoofing the ANDROID_ID would be possible on rooted devices? > It depends. Ultimately the protocol requires that the app get a response from the market server that it can confirm is signed by market itself, and having root gives you no way to spoof that. What having root does allow you to do is play lots of games with what the app stores for remembering whether it is licensed, since root lets you modify and touch everything going in the local device which includes everything your app has stored. So pirates could all run devices with the same android id, and go through the apps and plug in some known data that one person had gotten back from market that is signed to confirm licensing and says it is for that android id. I think this will end up a very problematic way to pirate though -- having a bunch of people with the same android id is probably not going to be that wonderful, and all apps need to do is have their license vary in some other way to make this a lot less valuable. For example, have it expire after weeks of time (allowing the user to run it for a while after it has expired until it has a chance to get a new license), mix in some other device information that doesn't need to be immutable (just requires that you go through the same process of getting a new license), etc. One of the important things is that the easiest point of failure now -- the data the app stores on device to remember whether it is allowed to run -- is controlled by the app. Apps can be as complex and strict as they want about this, and the more variety there is in what apps do here the less attractive it as a target. And also the biggest thing is that all of these attacks *do* require having root, which is a small number of users. This is a huge improvement from forward locking where all you needed was one person to get root and thus access the app, after which all users could run it. This is always going to be a game of "how good is good enough." You can't absolutely prevent people from pirating. It is now a lot harder, though, and third party developers have a lot more control. I would suggest starting out fairly simple/conservative in what you do (since that by itself will be a huge improvement from forward locking); if pirating starts increasing, you can start taking more complicated measures in your app for ensuring you are running licensed and/or obscure the license checks, depending on how attacks are happening. -- Dianne Hackborn Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

