tingle
tingle copied to clipboard
Add support for Android 9
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! We accept bounties via Bountysource.
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.
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 folder1
*** 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
@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@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
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)
I am also seeing this issue. The process completes in recovery, but signature spoofing still does not work.
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 ?
The NanoDroid's on-device patcher, which does work, patches services.jar instead of framework.jar