Removing drm android licenses. DRM and DRM-free and the idea of ​​fighting DRM is spreading

DRM is a protection tool intellectual property, allowing the copyright holder to control access, preventing unauthorized copying and distribution of software. The technology is used on various products, including mobile OS, so users periodically have the question of what it is DRM reset licenses for Android.

What is DRM

DRM is an abbreviation for Digital Rights Management, which can be translated as “digital rights management.” Control is implemented by placing various technical means in the product that prevent illegal disposal of the software. The owner can use the protected product only for personal purposes; he will not be able to copy it and sell it. In essence, DRM is a kind of digital lock, the key to which must be purchased from the copyright holder.

The DRM key for gaining access is presented in the form of a code, the creation of which uses cryptographic algorithms. It is very difficult to hack, and you can only get it after purchasing a digital product with a license. On Android technology often implemented like this:

  1. A person buys a new device, in which the manufacturer preinstalls certain software.
  2. After turning on and activating the device, the software starts working for free in demo mode. After trial period the application ceases to function, requiring the purchase of a license.

Purchasing access to a full version of the software is an element of DRM. This is just one of possible options, there are other examples of copyright protection.

The procedure for resetting DRM differs depending on what the license covers. For example, using hacker software, you can reset the program launch counter, unlink files from the site, disable key verification, and perform other actions to unlink the license. As for Android, a reset can be done without hacker software.

You must use this feature with extreme caution, because after resetting your license, you may lose access to certain product features. DRM keys are required for operation special applications from the phone manufacturer. You can find such programs at Sony devices, Samsung, etc. After resetting the key, branded applications may stop working, but otherwise the functionality of the phone will remain at the same level.

It has nothing to do with giving up a license. If rolling back settings removes all apps from your phone, user installed, as well as personal data, then deleting the license only leads to disabling the software built in by the manufacturer.

If you want to know what the requirements are different applications, what programs will be affected by the removal of licenses, whether the device supports the technologies that are needed for normal functioning services, then install to mobile device DRM Info. The application displays information about DRM components, at the same time indicating whether they are supported on devices.
Why is this information needed? To understand whether it is worth buying premium accounts or applications with licenses. For example, to play Full HD and 4K video on Netflix, you need 1 Google level Widevine. Most devices come with the third level, so there is no point in spending money on a premium account, because there will be no improvement in quality - the device does not support the necessary technologies.

An integral part of any software platform is the software for it. For such widespread user-oriented platforms as Android and iOS, the convenience of obtaining, installing and updating application software comes first.

Dmitry Gusev, Protection Technology Research

An integral part of any software platform is the software for it. For such widespread user-oriented platforms as Android and iOS, the convenience of obtaining, installing and updating application software comes first. To this end, platform holders build into them advanced support for a content distribution system. IN Android case the main such content provider is Google Play(formerly called Android Marketplace). Google Play (GP) is an intermediary between the content producer (authors of programs or audiovisual works) and the end consumers (device users.) Since much of this content involves payment by the consumer, the provider and producers use one or another DRM system to control the distribution of content.

The article discusses the five most popular solutions in the world for protecting mobile software and content from hacking and illegal distribution. Due to the fact that the article was prepared by a specialist from the company Protection Technology Research (StarForce), which produces own DRM solution for protecting applications for Android; the names of the solutions in question have been changed to conditional names. The StarForce solution is not discussed in this article.

The main purpose of the article is to provide developers with initial information about the level of application protection and licensing options available on the market. popular services protection.

Basic information about the Android platform

Android is enough open platform. Majority Android versions allow you to record to the device and run programs from arbitrary sources. Thus, Google Play is not a monopoly content provider (unlike iOS, where an application on a typical device can only be installed from Apple App Store after passing the certification process.) This allows multiple content providers (and even independent developers) to coexist simultaneously with their own DRM systems.

Android applications are self-contained container files with the .apk extension.

Android_DRM_1

The first solution we consider is general case, acts as a regular content seller. For end user the system provides user account management, billing, storefront and file delivery system. When purchasing content, the user is sent a regular non-personalized file that is in no way tied to the final equipment.

Thus, in general, an application purchased once can be easily copied to various devices or otherwise distribute.

To control the use of content and prevent its unauthorized use, Android_DRM_1 offers a Software Library that allows you to request information from Android_DRM_1 about the fact that the application was purchased from the current user account.

Conventionally, this DRM is a regular function that returns one of three values:

  • Licensed - the application is licensed for of this account and can be started
  • Not Licensed - the application is not licensed for this account and its launch is not recommended
  • Error - license check is not available (for example, there is no network connection)

The server's responses are signed using a unique (for the seller) private key, the public one is contained in the application. To allow the application to run when there is no network access, the system allows caching of server responses.

The Android_DRM_1 Software Library allows (although it strongly does not recommend) linking a program to specific device, but it must be implemented by the developer himself. The documentation suggests using a third-party server (developer/publisher), which would maintain the registration-identifier - device-identifier database. Methods of obtaining unique identifier It is also suggested that you develop the devices yourself.

Thus, the Android_DRM_1 Software Library is a separate high-level component that the developer must independently integrate into the application and implement the necessary logic. The Android_DRM_1 Software Library does not provide any direct protection to the application code or itself. The DRM implementation is made in Java and comes in the form source code and can be easily decompiled, studied and modified to overcome licensing restrictions. The manufacturer of Android_DRM_1 recommends using third party tools to protect the code.

Hacking resistance Android_DRM_1

Android_DRM_2

Is own decision an online store that sells Android applications. The basic operating principle of the system is identical to Android_DRM_1 (the application checks the fact of purchase on remote server), however, unlike the Android_DRM_1 Software Library, the process of embedding DRM into the application is automated. The developer/publisher simply uploads his finished application to the server of the online store and a security module is automatically built into it.

When protecting applications, they are added to it additional classes, implementing DRM functionality. The finished application code is parsed and calls to verification functions from these classes are built into it (most likely automatically). Judging by feedback from developers, this does not always work correctly and in some cases the application may crash with a verification error in the JVM.

Android_DRM_2 crack resistance

Since this type of protection is built into the application without deep integration with its code, the protection is also easy to neutralize by modifying the code. This can be done by performing the reverse operations of the installation - parsing the application code, finding security calls and removing them. An even simpler way is to simply disable checks in the protection kernel or replace it entirely with a dummy.

Android_DRM_3

Android_DRM_3 is a simplified alternative to Android_DRM_1 and Android_DRM_2.

Unlike Android_DRM_1, to purchase an application you do not need to have a store application installed on the end device. The purchase is made directly from the Android_DRM_3 web page. Upon purchase, the user immediately pays via PayPal or GoogleCheckout and receives a personal link to download the application. No modification ready-made application not required.

Another service provided is the Android_DRM_3 Software Library. It is an alternative to Android_DRM_1 Software Library. When purchasing an application (in the manner described above, or, for example, through the website of another provider), the user also receives email activation key. When launching the application, the user must activate it by entering this activation key. The key is verified on the Android_DRM_3 server. The system is extremely simple and comes with source code.

Hacking resistance Android_DRM_3

  • Since the system does not use any special code protection, it is quite easy to study and neutralize it by modifying the application.

Android_DRM_4

Android_DRM_4 is an embeddable DRM library and backend. Functionally, Android_DRM_4 repeats Android_DRM_3 - when purchasing an application through an online store or other distribution system, a unique purchase account is created in the database on the server side. At the same time, the buyer receives a letter from the server with an application activation code. When launching a protected application, the user enters this code, it is compared with the one registered on the server and, if it matches, the application launches successfully. Unlike Android_DRM_3, when deploying this system, a separate server will be required to contain the server part of the protection.

The system comes with open source By GNU licenses GPL2.

Hacking resistance Android_DRM_4

  • Since the system does not use any special code protection, it is quite easy to study and neutralize it by modifying the application.
  • The key is verified through an unencrypted channel; it is possible to use a proxy server to deceive the security.

Android_DRM_5

The company that produces Android_DRM_5 produces a wide range of products to protect application code and provide DRM functionality. Unfortunately, not a single “live” application protected by Android_DRM_5 could be found, so further information is based on press materials from the developers.

  • Android_DRM_5 only protects the application code. DRM functionality is not provided.
  • Protects only the Native part of application code. This code must be written in C/C++. Java is not supported.
  • Semi-automatic protection is built into the source code.
  • The source code is processed using Clang + LLVM into intermediate bytecode, to which subsequent steps of obfuscation/checksumming/etc. are applied, resulting in a standard object file. After linking, the application is processed again (probably to arrange and calculate checksums).
  • The protection ideology is based on the integration of special markers into program functions that can perform the following actions:
    • Obfuscation of function code (shuffling, littering, etc.);
    • Determining the presence of debuggers;
    • Application integrity check;
    • Application code recovery (fighting patches);
    • During subsequent processing of the source code, these markers are transformed into a security code;
    • The package only works on Linux and MacOS.

Based on the above, we can conclude that this product positioned as a means of protecting program code from analysis and modification.

Hacking resistance Android_DRM_5

As mentioned above, it was not possible to detect a single protected application to assess its burglary resistance.

Comparison table of DRM systems

* The code itself is not protected, but numerous calls to the protection kernel are built into it.

Conclusion

All the solutions considered offer approximately similar functionality. Except, perhaps, Android_DRM_5, which exclusively protects the code mobile application from analysis and hacking and does not offer any licensing options.

It is obvious that on this moment, among the most popular solutions on the market there is not a single one reliable protection anti-piracy applications for the Android platform. Breaking such protection is not difficult for an average hacker. Therefore, the fight against piracy Android platform is being postponed until better times.

In this lesson I will show you how to set up Android using a phone as an example. Philips Xenium W3568. In this article I’ll tell you about the rest of the menu items, as well as how to enable the option for developers.

Let's move on to location data.

In the location data tab, you can enable access to my location data and allow applications to use your location data. You can select location data sources by GPS satellites. Also set by network coordinates, that is, allow sending anonymous geodata and allow applications to determine your location from using Wi-Fi and mobile networks.

In the security tab, you can set a screen lock; by default, you should swipe your finger, but I recommend setting the type of lock that is more serious and reliable.

You can select the lock type: voice unlock, graphic key, PIN code, password. I'll select the pattern.

Now create a graphic key by drawing a pattern with lines.

I drew the letter M. Click continue.

To confirm, draw the graphic key again. Then click confirm.

Also in the security tab you can set auto-locking after a certain amount of time. First, the display turns off and then auto-lock turns on. You can set the display to turn off for 2 minutes and auto-lock after 2 minutes. Thus, as soon as the screen goes dark, the screen lock will turn on, that is, in order to enter the smartphone you will need to draw the pattern that we created earlier.

You can also encrypt the data. Requests a numeric PIN or decryption password every time you turn on your phone. Set up a screen lock.

In the security tab, you can set up device administrators to remotely lock and erase information from your smartphone, in case your smartphone is stolen and you don’t want the thief to gain access to your data on your smartphone.

Click activate to enable the ability to delete all data on the phone by resetting the settings. Also to change the password to unlock the screen. Lock screen.

Enable or disable installation of applications from unknown sources. By default, you can only install applications from Play Market, but if you include " unknown sources", then applications can be installed both from the SD card and from the Internet. For security, enable this checkbox only when you want to install applications from the SD card and disable it after installation. There is no need to leave this option enabled so that while surfing the Internet you do not accidentally install some malicious application.

Also, keep the “check applications” checkbox turned on to prevent the installation of applications that can harm the device or warn about them.

In the Language and Input tab, you can select the interface language, enable spell checking, TouchPal keyboard(allows you to navigate letters and speeds up typing letters).

In the recovery and reset tab you can save backups application data, point passwords Wi-Fi access and settings on Google servers. Set up a backup account with data backups. Set up auto-recovery, and when you reinstall the application, restore the backup copy of your settings and data. Reset DRM, that is, remove all DRM licenses.

Also here you can reset your smartphone. Delete all data from your smartphone and make your smartphone look like one from a store.

Resetting the settings will delete all data from internal memory devices, including: Your Google account, system and application settings/data, downloaded applications.

In the Google Accounts tab, you can synchronize and transfer data from your smartphone to your Google account.

You can transfer your emails from mailbox, browser data, application data, calendar, contacts. Thus, when you change your smartphone to another, you will only need to use the same Google account as on your previous device to transfer all your contacts from the old smartphone to the new one.

In the date and time tab, you can set the date and time manually or try using the network time zone (but this garbage does not work, so I recommend setting the date and time manually).

In the on and off schedule tab, you can set when the smartphone will turn on and when it will turn off (for example, at night you can do automatic shutdown and switching on in the morning).

In the tab special abilities You can set up gestures for zooming, large text, auto-rotate the screen, and voice passwords.

In this manual we will describe the process of unlocking and backlocking Bootloader using an example Sony smartphone Xperia SP, without losing DRM keys, if you don’t need them, you can continue reading by skipping " #2 COPYING THE SECTION WITH DRM KEYS" and "#2.1 RESTORING THE TA-PARTITION". We will also mention the process of obtaining ROOT in one click, which is suitable for absolutely any smartphone running Android.

We will need:
- laptop/netbook or PC running Windows OS

The smartphone itself with a battery charge of at least 50%

USB cable

fastboot program
-flashtool program

Attention! This procedure may result in refusal warranty service. In case it was these actions that led to the breakdown of the device.

Warning: Companies such as Svyaznoy Logistics CJSC will find a reason to refuse you a refund or warranty service. And in the end they will say that the reason that your phone is smashed to smithereens (although this is not warranty case, but it will do for an example) it turned out that there was a modified firmware installed on it.

It is important to know: If the phone is found to have a manufacturing defect. Unauthorized change software and the manufacturing defect of the smartphone are not in a cause-and-effect relationship, since an unauthorized change in the software in no way affects the manufacturing defect, especially if it is mechanical in nature.

If you still decide to continue despite the risk.

Warning: Before unlocking your device, it is recommended to backup all data stored on the phone’s internal memory. Data on external map memory will not be affected. Each manufacturer has its own programs for creating backup copies. Check with your manufacturer for details. Or use third party program from GooglePlay

The bootloader unlocking procedure differs for each manufacturer. I will describe unlocking Bootloader using an example Sony Xperia SP. For all Xperia smartphones The bootloader unlocking process is the same and no different.

Attention! When you unlock Bootloader, you lose DRM Keys. DRM - Digital rights management, which translated into Russian means the following: " Technical means copyright protection" DRM is one of the means of protection. If you install official firmware to a phone without DRM keys, then half of the phone’s proprietary software will stop working, since it is tied to the very keys without which it refuses to work.

DRM keys are stored in a special “TA section”; below we will describe the process of creating a backup copy of this section in order to save the keys.

Attention! DRM Keys for each phone are Unique. Even if you have two completely identical (assuming the phone models are the same) smartphones in front of you, the keys of one phone will not fit exactly the same phone. The DRM key is different, as are phone numbers or IMEI.

What does saving the TA partition give us?
- preservation DRM keys
- maintaining performance Mobile Bravia Engine 2 / X-Reality
-maintains the functionality of other applications on official firmware

#1 STARTED. WE GET ROOT

#2 COPYING THE SECTION WITH DRM KEYS

1) Download latest version BackupTA from GutHub, to do this, click on one of the buttons "Source Code" on the program page.
2) Unpack the downloaded archive to the root partition of the system (WITH:\)
3) Connect your phone to your computer in USB debugging.
3.1) Menu > Settings > About phone.
3.2) At the very end of the list, repeatedly click on "Build number" until you get developer features
3.3) Congratulations, you have received developer features.
3.4) Menu > Settings > Developer Options, then in the middle of the list, pay attention to the item "Debugging"
3.5) Check the box next to it "USB Debugging"
4) Return to the folder where you unpacked the downloaded archive and run the file Backup-TA.bat
5) Click Enter.
6) The program asks the phone for permission to debug via USB. We give a positive response to the message on the phone screen.
7) The program asks you root phone rights. We give a positive response to the message on the phone screen.
8) A window for selecting commands in the program has opened.
9) Select number 1 - to save TA section on your computer
10) Confirm the selection of the command with the " Y" on keyboard
11) Wait for the end of the saving process
12) Press any key to continue, then the command selection menu pops up again as in step 5. Press the number " 5 " to exit the program.
13) Next, go to the folder Backup-TA > backup. There you should see an archive like " TA-backup-20140803.105506"
Recommended: save the resulting archive in a safe place.

#3 UNLOCKING BOOTLOADER

Attention! During Bootloader unlocking, the phone will be reset to factory settings. It is highly recommended to keep backup copies of important files.

It will be described below official way unlock presented by Sony for developers.

1) Go to official page by unlocking Bootloader"a [UNLOCKBOOTLOADER ]
1.1) Select your phone model, then enter your valid e-mail, put a tick under it and click on the “Submit” button
1.2) Then you will receive a message to your e-mail with a link, click on it
1.3) Next you will have to enter the first 14 digits of your IMEI (only the last digit is not entered)
1.4) Congratulations, you have successfully received the unlock code for your Bootloader.

2) Download the program FastBoot (with ADB driver) [link ]
2.1) Unpack the resulting archive to the root of the disk, it should look like this: "C:\fastboot"
2.2) There is also a folder in the archive usb_driver. It must be moved to the folder fastboot whose directory is described V clause 2.1.

3) Turn off the phone.
3.1) Load into FastBoot MODE
3.1.1) To do this, press and hold the “Volume +” button and, without releasing the button, connect the USB cable.
3.1.2) If it lights up BLUE LED release the volume button.
3.1.3) You have successfully booted into the mode FastBoot MODE.
3.2) Next, in theory, Windows should request drivers, but in practice this does not happen often; if this happens, you need to point to the folder usb_driver, the result will be: "C:\fastboot\usb_driver".
3.3) If this does not happen, go to Start, press right click mouse by item "Computer", Further "Properties", in the left top corner choose "Extra options systems", in the window that opens, look for the tab "Equipment" in it we find the point "Device Manager", click on its button.
3.4) In the window that opens "Device Manager" need to find "S1Boot Fastboot" he may be at the point "Other devices", if there is no such thing, then we go to "USB controllers" we find a point there "SEMC Flash Device"
3.5) Right-click on "SEMC Flash Device", Further: Update driver > Search for drivers on this computer > Select a driver from the list already installed drivers> Install from disk > Browse.

Attention! A service warning may pop up during driver installation. Windows security. Click on: "Install this driver anyway." If you installed the drivers once, then reinstallation for other procedures that require the same drivers that we installed - it is not required.

3.6) In the Browse window, go to the directory "C:\fastboot\usb_driver"(section 3.2) and select the file android_winusb.inf
3.7) Then from the proposed list select "Android Bootloader Interface", click ready.

All preparations have been completed and we can proceed directly to the unlocking itself. Bootloader"a. For this we need a program fastboot, which you downloaded and unpacked in advance.

Attention! Commands are entered without quotes.

4) Go to the directory "C:\fastboot"(clause 2.1.) and holding left button "Shift", right-click on the file "fastboot.exe" and choose "Open command window"(This may not be as easy as it seems, if it doesn't work, try again)
4.1) The command line opens. In it we enter the following command: "fastboot.exe -i 0x0fce getvar version" if in response you get a value similar to the following "0.3" - everything is in order, you can move on to the next point.

Possible errors and ways to solve them:
If you get an error "waiting for device" and is present in the device manager unidentified device, check the correctness of the steps 3 - 3.7 If everything is fine there, try restarting the program or changing the sequence of actions, i.e. first launch the program, then boot the phone into FastBoot MODE

If you get an error "getvar:version FAILED."- you need to boot into the program again without leaving the program FastBoot MODE To do this, follow the steps 3 - 3.1.3 and again the point 4.1

The next point is final, by completing it you will receive an unlocked Bootloader

5) Enter in command line team "fastboot.exe -i 0x0fce oem unlock 0xCODE" CODE- 16-digit unlock code obtained from the Sony website. Congratulations! You have successfully unlocked Bootloader.

Many users who have completed Hard Reset of their device, they are faced with a problem logging into the linked Google account. In general, the picture looks like this: after loading the reset device, at a certain stage you are asked to enter the data of the previously connected account “The device has been restored to its default settings. To continue, sign in to the Google account that was synced with it.”.

If you enter incorrect data, then the following notification will be displayed: “Log in to one of the accounts of the owner of this device”. This confirmation, which was introduced on Android (from version 5.0), allows you to protect the personal data of owners. Today we will show you several methods that will help you fix this problem. Choose the most suitable method for your model.

Turn off the Internet

The first method is to try to solve the problem simple actions– disable access to the Internet. When the account verification step is running, turn off your Wi-Fi and remove the SIM card. After this, the confirmation step should be automatically skipped.

Reset your account through Phone Settings

If turning off the Internet does not help, try going to the Settings menu and performing a reset there. You can get into it in several ways - through the keyboard or Okey Google. The simplest would be the following:

  1. We launch, after selecting the language, press and hold the Home button.
  2. Must be activated Google search engine, where we enter the word “Settings” and click on the result below.
  3. If everything is correct, then you will open the phone menu, look for Recovery and reset, where we reset the device settings.

Keyboard reset

Reset can also be initiated via standard keyboard . We start the phone, again we come to the point where data entry is required:

  1. Call up the keyboard, where we hold down the dog key – @. The icon should appear gears.
  2. Click on it, in the menu that appears click on “Android Keyboard”.
  3. We go back, there will be an icon on the left "Task Manager"– click on it.
  4. After this, a panel will appear at the top of the screen Google Search. Where you also enter “Settings” and open them through the results.
  5. Next, go to the menu as standard “Reset”.

Here's another Video instruction, which will clearly show how to activate the phone menu by resetting.

Resetting DRM licenses

Depending on the phone model, not everyone can do the above steps. So you can try resetting DRM licenses, If there are any. To do this, you will need to go to the “Settings” menu on your smartphone. You can log in using a simple flash drive, which must be inserted into running device. Here's a visual video on this occasion. But first, a few nuances: you may have to wait a few minutes until the phone detects external memory. some wait up to an hour :).

Dev program. Settings

However, not all models allow you to enter the phone menu. But there is a solution - installing an application Development Settings. This program will allow you to immediately open the Settings option. After which the Personal Data is completely reset to factory settings. You can download the program to a problematic Android using OTG cable with a flash drive.

Conclusion

As you can see, almost all solutions boil down to obtaining bypass access to the phone menu and then resetting your account data. By the way, the firmware does not solve the problem “The device has been restored to its default settings,” since the factory phone number is tied to a specific Google account. If suddenly all of the above does not help you in any way, or you enter obviously correct data, then you should use recovery via Google Account Recovery. This can be done through a regular browser and without the help of a phone.