📜 ⬆️ ⬇️

Modification of stock firmware for Android. Part 1

Hello Habr!

A few years ago, when I first met Android, I heard from my work colleague that Android provides for the ability to install modified or self-made firmware. Frankly, then I was far from that. And even half a year ago, I was hardly interested in such things. Deep in my heart, I was sure that what the manufacturer was doing was already intended for normal use.

What was my disappointment when I purchased a phone from China, where the use of Google, Skype, Facebook and other applications was forbidden by factory settings. In principle, it was possible to close my eyes to some things, but when my phone did not imply the use of a Google account, I made a promise to make sure I didn't become so.
')
Half a year has passed and my custom firmware has been successfully used around the world.

This series of articles will cover how to do reverse programming for Android, implement patches, tweaks, and mods.

Preamble


So! Let's first define the concepts that will be used in this article. Your usual understanding, however, can be very different.

Patch - change or replacement of existing program code in order to modify the program's algorithm.
Mod - as a rule, adding additional functionality to an existing program code without changing the algorithm.
Tweak - improving the functionality of the program in order to facilitate access to system parameters.

I also want to note that all the examples will be taken for the HTC phone, but this does not mean that this information cannot be used on other phones.

I draw your attention to the fact that I, as an author, are not responsible for the possible loss of data on your phone as a result of using the information below.

Environment preparation


I can do without detailed instructions on how to use this or that software. If you are interested in this article and you have finished reading these lines, then I hope that you are already an experienced user and have experience using, well, or at least experimenting in this area. Instructions, articles and test results are fully available, however, as well as on Habré. I will also manage without a description of some terms, otherwise the article will be very large and tedious. We will write only on the case. I am sure that your environment has been standing for a long time. If not, I suggest to download and install.

1 . Android SDK . This is an application development environment for Android. In order to make modifications, we will definitely have to check our program code. The development environment is the best we can use.
2 Android Kitchen . This utility will allow you to work with images of the system partitions of the official well or unofficial firmware.
3 JD-GUI . Decompiler for Java code. Immediately, I note that this is the best decompiler in terms of ease of use.
4 DJ Java Decompiler . Another decompiler, or disassembler, as some like to call it, is Java programming code. Not convenient in terms of use, but parses the code, which sometimes does not understand the JD-GUI.
5 smali . Another disassembler, but already dalvik code. smali is needed for disassembling, and backsmali for assembling code.
6 dex2jar . A utility for converting executable files Dalvik code.

Firmware conversion


Of course, the firmware that you have on the phone from the manufacturer is optimized in order to reduce energy consumption. In order to be able to change the firmware, it must be converted to a format that allows you to change the code. It uses Android Kitchen. You can of course with your hands, as I did before, until I found this very “kitchen”. How to pull the system area out of the phone, set the environment, make DEODEX firmware, you can read on the Internet. If you don’t already understand anything, I think you should postpone the article until you gain enough experience.

After the firmware from the optimized view (ODEX - optimized dalvik executable code, if memory serves me) became DEODEX (that is, NOT optimized), all executable files are ready for modification.

Directly modifications


Creating patches

As I already told, my phone initially had a ban on using Google. Well, at least you burst, do not go to Playstore, do not configure your account, the phone book does not really synchronize. Why do you need such an Android? Long digging into the logs (logcat) of the device itself, I found records that said that using Google is prohibited. The most inconvenient in Android, you see the log, but do not know which system application produces it. To find where my legs grow from, I had to gut all system applications to disassembled Java code. It took a lot of time, but I still use the work done in analyzing and searching for the right code. The steps to get this tool are as follows:
1 . Make deodex all firmware
2 Your new DEODEX firmware will need to be assembled and flashed to your phone. How this is done is the topic of another article.
3 From each file located in / system / framework, pull out the classes.dex file and convert to JAR using dex2jar.
4 Open each JAR in the JD-GUI and re-save it to the source code.
5 Unpack the source code from the archive.

As a result, I got as many folders as there were JAR files in the / system / framework, and each folder had a Java source code structure.
By simple manipulations, I quickly found the place that generated the logcat entries.

We will not consider the entire logic of the ban, as for each case it is a separate story. I had to spend a couple of hours before I found where the checks are being made, build in my head a block diagram of the algorithm and understand where to go to get the algorithm a little bit “spoil”.

It turned out all simple. There is a subroutine that, on the basis of predetermined constants, responded to the call when it came to whether the phone belongs to China or not.

The code was in the file HTCExtension.jar , and the class that contained this subroutine was in \ com \ htc \ util \ contacts \ BuildUtils $ Customization.java

Unpacking and analyzing the original file

1 . First we need to take the original DEODEX JAR file, which is responsible for the part of the code we need. In our case, HTCExtension.jar .
2 Open with any archiver and pull classes.dex from there
3 Using dex2jar converter, convert it to a JAR file. Team: dex2jar.bat classes.dex
4 View the received classes_dex2jar.jar file in the JD-GUI.
5 Yes, most often JD-GUI decompiles the code not as it looks in the original, it is understandable, but it is quite possible to read. In the source code, we see that the subroutine checks the project parameters and the language flag of the firmware. In our unfortunate case, it returns TRUE.
  public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false; } 

6 To make a patch, we need to disassemble the Dalvik code itself. For this we use baksmali. The most convenient way is to create a separate folder and put there three files together: HTCExtension.jar , smali.jar and baksmali.jar . Give the java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
command java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
 java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar 

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .
java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .

java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .

java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- API Android. JB - 16
- , .


java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar

7 . HTCExtension, Dalvik .
8 . \com\htc\util\contacts\BuildUtils$Customization.java :
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297 :cond_13 :goto_13 return v0 .line 283 :cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291 :cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto :goto_13 .end method
9 . , ? . , . , . ,
.prologue const/4 v0, 0x1 v0 1, TRUE. , , :
.line 297 const/4 v0, 0x0 goto :goto_13
10 . , :
.prologue const/4 v0, 0x0 , 1 0. , FALSE JD-GUI public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . , , . - . - . -
public static boolean isChina() { return false; }
12 . Dalvik ? .

Dalvik
1 . Android SDK.
2 . ,
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . .
4 . , JAR .
5 . java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Dalvik .
7 . test.smali
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8 . , .


1 . Dalvik , . , . .
2 . , () \com\htc\util\contacts\BuildUtils$Customization.java .
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . . , , , Notepad++ EditPlus. .

JAR
1 . backsmali JAR , .
2 . java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . classes.dex
4 . HTCExtension.jar classes.dex .
5 . , HTCExtension.jar .


, , recovery . . - , - .

1 . , DEODEX root :

adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot

1-
2- shell
3- root
4- /
5-
6- .
7-
8-
9- .

2 . , .
3 . .
4 . , .
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex reboot


, - , - -, - . . -, . -, , , .

. . .

PS - , - .

Source: https://habr.com/ru/post/181826/


All Articles