mirror of https://gitlab.com/Nanolx/NanoDroid
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.0 KiB
Markdown
93 lines
3.0 KiB
Markdown
6 years ago
|
# Deodex services.jar
|
||
|
|
||
|
## VDEX
|
||
|
|
||
|
If you can see `/system/framework/oat/[arch]/services.vdex` you should follow theese instructions.
|
||
|
|
||
|
the instructions are basically simple, though plenty commands:
|
||
|
|
||
|
* connect phone with PC while in TWRP, mount `/system` **read-write**
|
||
|
* get latest `vdexExtractor` (best self-compiled from git)
|
||
|
* zip/unzip utilities for commandline (or some UI tool)
|
||
|
* common sense on using commandline (or some UI tool instead)
|
||
|
|
||
|
```
|
||
|
adb pull /system/framework framework
|
||
|
cp framework/services.jar services.jar-backup
|
||
|
```
|
||
|
|
||
|
now deodex `boot-core-libart.vdex` and `services.vdex`, where [arch] is the device architecture (arm, arm64, x86 or x86_64):
|
||
|
|
||
|
```
|
||
|
vdexExtractor -i framework/oat/[arch]/services.vdex --ignore-crc-error
|
||
|
```
|
||
|
|
||
|
this will create the following file:
|
||
|
* framework/oat/[arch]/services.apk_classes.dex
|
||
|
|
||
|
if it's properly been created rename it to classes.dex and add it to `services.jar`
|
||
|
|
||
|
```
|
||
|
mv framework/oat/[arch]/services.apk_classes.dex classes.dex
|
||
|
zip -d framework/services.jar classes.dex
|
||
|
zip -j framework/services.jar classes.dex
|
||
|
```
|
||
|
|
||
|
next install the new `services.jar` to device:
|
||
|
|
||
|
```
|
||
|
adb push framework/services.jar /system/framework
|
||
|
adb shell
|
||
|
chmod 0644 /system/framework/services.jar
|
||
|
chown root:root /system/framework/services.jar
|
||
|
```
|
||
|
|
||
|
unmount `/system` and flash the NanoDroid-Patcher.
|
||
|
|
||
|
If something goes wrong you still have the unpatched `services.jar`, as we created a copy named `services.jar-backup`.
|
||
|
|
||
|
## ODEX
|
||
|
|
||
|
If you can see `/system/framework/oat/[arch]/services.odex` you should follow theese instructions.
|
||
|
|
||
|
the instructions are basically simple, though plenty commands:
|
||
|
|
||
|
* connect phone with PC while in TWRP, mount `/system` **read-write**
|
||
|
* get latest `baksmali.jar` and `smali.jar` (2.2.4+, best self-built from git)
|
||
|
* zip/unzip utilities for commandline (or some UI tool)
|
||
|
* common sense on using commandline (or some UI tool instead)
|
||
|
|
||
|
```
|
||
|
adb pull /system/framework framework
|
||
|
cp framework/services.jar services.jar-backup
|
||
|
```
|
||
|
|
||
|
check if `framework/services.jar` contains a `classes.dex` (open as zip file), if not, I can't help you right now, I have **not yet** looked into how to deodexed VDEX files. If it does contain `classes.dex`, continue as follows:
|
||
|
|
||
|
```
|
||
|
mkdir services-old
|
||
|
unzip -d services-old framework/services.jar
|
||
|
java -jar baksmali.jar x services-old/classes.dex -b framework/core-oj.jar -o services-new
|
||
|
java -jar smali.jar a services-new -o classes.dex
|
||
|
```
|
||
|
|
||
|
if a new classes.dex was successfully created in the services-new directory, re-package it into the services.jar we previously pulled:
|
||
|
|
||
|
```
|
||
|
zip -d framework/services.jar classes.dex
|
||
|
zip -j framework/services.jar classes.dex
|
||
|
```
|
||
|
|
||
|
next install the new `services.jar` to device:
|
||
|
|
||
|
```
|
||
|
adb push framework/services.jar /system/framework
|
||
|
adb shell
|
||
|
chmod 0644 /system/framework/services.jar
|
||
|
chown root:root /system/framework/services.jar
|
||
|
```
|
||
|
|
||
|
unmount `/system` and flash the NanoDroid-Patcher.
|
||
|
|
||
|
If something goes wrong you still have the unpatched `services.jar`, as we created a copy named `services.jar-backup`.
|