ale5000-git / tingle

Tingle - Android patcher
http://forum.xda-developers.com/showthread.php?t=3438764
GNU General Public License v3.0
160 stars 11 forks source link

Add support for Android 9 #43

Open howyay opened 6 years ago

howyay commented 6 years ago

It would be nice if this tool could support AndroidP since many custom roms are coming out this year which are based on Android 9

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/62597184-add-support-for-android-9?utm_campaign=plugin&utm_content=tracker%2F43052892&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F43052892&utm_medium=issues&utm_source=github).
ale5000-git commented 6 years ago

It will be supported but if you (or someone else) can send me a copy of framework.jar from Android 9 the support will come earlier.

n0aaz commented 6 years ago

I can do that i'm running Pie now , tell me what files/folders you do need and will provide EDIT: here is the framework.jar https://www19.zippyshare.com/v/7JJYSk4I/file.html and here the error that happens if i try the script

MENU

1 - Patch file from a device (adb)
2 - Patch file from the input folder

1

OS: Linux 4.17.0-pf6 (linux) Python: 3.5.2 (64 bit) Mode: 1 Working dir: /tmp/Tingle-ug3v8d4i Selected device: b250c9d1 Automounting /system... DEBUG: Already mounted Pulling framework from device... Device SDK: 28 Decompressing framework... DEBUG: Decompressing framework.jar Disassembling classes... DEBUG: Disassembling framework/classes.dex Exception in thread "main" org.jf.dexlib2.util.DexUtil$UnsupportedFile: Dex version 039 is not supported at org.jf.dexlib2.util.DexUtil.verifyDexHeader(DexUtil.java:94) at org.jf.dexlib2.util.DexUtil.verifyDexHeader(DexUtil.java:71) at org.jf.dexlib2.dexbacked.DexBackedDexFile.fromInputStream(DexBackedDexFile.java:110) at org.jf.dexlib2.DexFileFactory.loadDexFile(DexFileFactory.java:97) at org.jf.baksmali.DexInputCommand.loadDexFile(DexInputCommand.java:144) at org.jf.baksmali.DisassembleCommand.run(DisassembleCommand.java:161) at org.jf.baksmali.Main.main(Main.java:102) Traceback (most recent call last): File "main.py", line 598, in smali_folder, dex_filename, dex_filename_last = find_smali(smali_to_search, "framework/", DEVICE_SDK) File "main.py", line 516, in find_smali disassemble(search_dir+filename, out_dir, device_sdk) File "main.py", line 483, in disassemble subprocess.check_call(disass_cmd) File "/usr/lib/python3.5/subprocess.py", line 581, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/usr/bin/java', '-jar', '/home/n0aaz/Téléchargements/ale5000-git-tingle-3abeae5/tools/baksmali.jar', 'dis', '-l', '--seq', '-o', './smali-classes/', 'framework/classes.dex', '-a', '28']' returned non-zero exit status 1

ale5000-git commented 5 years ago

@HaoyeTang @n0aaz

The patching process should now work, but keep a backup of the file since I cannot test it and I cannot grant it is working correctly.

Have you tested it?

n0aaz commented 5 years ago
n0aaz@Unknown:~/Téléchargements/tingle-master$ python3 main.py
MENU

    1 - Patch file from a device (adb)
    2 - Patch file from the input folder

> 1

 *** OS: Linux 4.17.0-pf6 (linux)
 *** Python: 3.5.2 (64 bit)
 *** Mode: 1
 *** Working dir: /tmp/Tingle-meese23h
 *** Selected device: b250c9d1
 *** Automounting /system...
      DEBUG: Already mounted
 *** Pulling framework from device...
 *** Decompressing framework...
      DEBUG: Decompressing framework.jar
 *** Disassembling classes...
      DEBUG: Disassembling framework/classes.dex
 *** Patching...
 *** Detected: Android 9.x (or LOS 16)
 *** Patching succeeded.
 *** Reassembling classes...
      DEBUG: Assembling out/classes.dex
 *** Recompressing framework...
      DEBUG: Compressing framework.jar
 *** Copying the patched file to the output folder...
 *** Rooting adbd...
      DEBUG: adbd cannot run as root in production builds
 *** Unlocked ADB: False
 *** Remounting /system...

ERROR: Alternative remount failed.

ERROR CODE: 81

Nope , got this error and after reboot signature spoofing is still disabled

n0aaz commented 5 years ago

However, it gets through the whole process if i patch while the phone is in recovery . But signature spoofing is still disabled. Edit: before you ask , tried with both python and python3 , no change , and my rom is deodexed (services.jar effectively contains a services.dex)

toshokan commented 5 years ago

I am also seeing this issue. The process completes in recovery, but signature spoofing still does not work.

sputnick-dev commented 5 years ago

Patched my system in recovery, no error, but no 'signature spoofing' on LineageOS 16.0 alpha (Android 9).

Is it still for a future release or this should work ?

Any workaround ?

valpackett commented 5 years ago

The NanoDroid's on-device patcher, which does work, patches services.jar instead of framework.jar