Thanks very much for the detailed response. I definitely understand that any anti-piracy technique is going to be a tradeoff, and that the only way to absolutely prevent piracy is not to publish your app.
String On Aug 9, 5:32 pm, Dianne Hackborn <[email protected]> wrote: > 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

