yashsingh1/xdaforums huggingface dataset:
[Miscellaneous Android Development] gadgetguy08:
I should note that the ROM is Oreo 8.1.

rootfs on / type rootfs (ro,seclabel)
/dev/block/sda8 on /system_root type ext4 (ro,seclabel,relatime,data=ordered)
/dev/block/sda8 on /system type ext4 (ro,seclabel,relatime,data=ordered)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=1889664k,nr_inodes=472416,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime,gid=3009,hidepid=2)
sysfs on /sys type sysfs (rw,seclabel,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
/dev/block/sde17 on /vendor type ext4 (ro,seclabel,relatime,discard,data=ordered)
none on /acct type cgroup (rw,relatime,cpuacct)
debugfs on /sys/kernel/debug type debugfs (rw,seclabel,relatime)
none on /dev/stune type cgroup (rw,relatime,schedtune)
tmpfs on /mnt type tmpfs (rw,seclabel,relatime,size=1889664k,nr_inodes=472416,mode=755,gid=1000)
none on /config type configfs (rw,relatime)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
none on /dev/cpuset type cgroup (rw,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent)
pstore on /sys/fs/pstore type pstore (rw,seclabel,relatime)
/dev/block/sda16 on /data type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,data=ordered)
/dev/block/sde5 on /firmware type vfat (ro,context=u:object_r:firmware_file:s0,relatime,uid=1000,gid=1000,fmask=0333,dmask=0222,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro)
/dev/block/sde15 on /dsp type ext4 (ro,seclabel,nosuid,nodev,relatime,data=ordered)
/dev/block/sda4 on /persist type ext4 (rw,seclabel,nosuid,nodev,noatime,data=ordered)
tmpfs on /storage type tmpfs (rw,seclabel,relatime,size=1889664k,nr_inodes=472416,mode=755,gid=1000)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,seclabel,relatime)
tmpfs on /sbin type tmpfs (rw,seclabel,relatime,size=1889664k,nr_inodes=472416)
/dev/block/sda8 on /sbin/.core/mirror/system type ext4 (ro,seclabel,relatime,data=ordered)
/dev/block/sde17 on /sbin/.core/mirror/vendor type ext4 (ro,seclabel,relatime,discard,data=ordered)
/dev/block/sda16 on /sbin/.core/mirror/bin type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,data=ordered)
/sbin/.core/block/loop08 on /sbin/.core/img type ext4 (rw,seclabel,relatime,data=ordered)
/sbin/.core/block/loop08 on /system/etc/hosts type ext4 (rw,seclabel,relatime,data=ordered)
adb on /dev/usb-ffs/adb type functionfs (rw,relatime)
/data/media on /mnt/runtime/default/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid)
/data/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid)
/data/media on /mnt/runtime/read/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=23,derive_gid)
/data/media on /mnt/runtime/write/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid)
/dev/block/sda16 on /sbin/.core/db-0/magisk.db type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,data=ordered)
[Miscellaneous Android Development] ale5000:
[MENTION=915728]gadgetguy08[/MENTION]: In your first message it doesn't detect /system as already mounted and fail to mount it but in the second message it appears as already mounted.

Could you please replicate the condition of the first error, run this and post the result?

adb shell case $(mount) in *' /system '*) echo 'Already mounted';; *) echo 'Mounting'; mount '/system';; esac
[Miscellaneous Android Development] gadgetguy08:
OK. Sorted out now. I haven't done formal proving of this, but what appears to be happening is that adb does not have root privileges when running in normal mode, but does in TWRP for this ROM.

Also, the framework.jar file was in /system/system so it was failing not being able to find it. I finally pulled the jar file and the build.prop into the Input folder and did a manual patch and put the jar file back. Is that correct? It passed Sig Spoof and is close to passing all the Microg tests.

Thanks so much for your patcher tool and being quick to assist!
[Miscellaneous Android Development] 4nndee:
ERROR CODE 86: No dex file(s) found, probably the ROM is odexed.

I ran into the same problem like some other people before me. Tingle gives me the "ROM is odexed" error.

I own a Samsung A3 2016 (A310F) and use Lineage 15.1 from this thread:

https://xdaforums.com/samsung-a-series/orig-development/lineage-os-15-1-a3-2016-t3813109

I thought all the Lineage builds are deodexed? Or am I doing something wrong?

USB debugging and root for ADB is activated, I connect to the phone in recovery mode. With Lineage 14.1 I did not have any problems and Tingle was working perfect.

The question is, can I solve this without using a Windows deodex tool like it was mentioned in this thread before? I use Linux and have no access to a Windows machine or have any Windows VM ready at the moment.

python3 main.py
MENU

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

> 1

*** OS: Linux 4.17.12-200.fc28.x86_64 (linux)
*** Python: 3.6.6 (64 bit)
*** Mode: 1
*** Working dir: /tmp/Tingle-fcgy2wmw
*** Selected device: 52031a27ea05c305
*** Automounting /system...
DEBUG: Already mounted
*** Pulling framework from device...
*** Device SDK: 27
*** Decompressing framework...
DEBUG: Decompressing framework.jar
*** Disassembling classes...

ERROR: No dex file(s) found, probably the ROM is odexed.

ERROR CODE: 86
[Miscellaneous Android Development] starbright_:
I used tingle a few times successfully (with LOS14). But with my new A3 (2017) (LOS 15.1) it fails with error code 90.

Does Magisk make the difference? With other devices I had the lineageOS addsu.

But it give root to apps and adb ?!?

Failed to copy build.prop ... like that.

I also updated my tingle to a recent version from git.
[Miscellaneous Android Development] starbright_:
--- deleted.

Find that my ROM is odexed and Tingle can't handle that.
[Miscellaneous Android Development] ale5000:
I have added support for Android 9 (untested).

Feedback is appreciated.

For the other problems I haven't yet had time to fix them but they are in my ToDO list.
[Miscellaneous Android Development] DoR3M3:
[MENTION=5627087]ale5000[/MENTION] Hi,

I can't get this to work in Linux...

3. Find the setting for `Root access` and make sure ADB has root access. - I am not aware of any such 'Root Access' setting in Android in the Developer section, am I missing something here? The only rooting I do is with Magisk, but it's mentioned to apply the patches before Magisk.

Device: Essential PH-1

Android Oreo 8.1.0 (Stock) - Fresh Flash all stock

USB Debugging enabled

As root I ran python3 main.py

MENU

1 - Patch file from a device (adb)

2 - Patch file from the input folder

> 1

* daemon not running; starting now at tcp:5037

* daemon started successfully

*** OS: Linux 4.14.60 (linux)

*** Python: 3.6.6 (64 bit)

*** Mode: 1

*** Working dir: /tmp/Tingle-jiz40_8d

*** Selected device: PM1LHMA782200385

*** Automounting /system...

ERROR INFO

==========

Type: <class 'subprocess.CalledProcessError'>

Cmd: ['adb', '-s', 'PM1LHMA782200385', 'shell', "case $(mount) in *' /system '*) echo 'Already mounted';; *) mount '/system';; esac"]

Return code: 1

Output: mount: bad /etc/fstab: No such file or directory

Traceback (most recent call last):

File "main.py", line 578, in <module>

adb_automount_if_needed(SELECTED_DEVICE, "/system")

File "main.py", line 326, in adb_automount_if_needed

output = safe_subprocess_run([DEPS_PATH["adb"], "-s", chosen_device, "shell", "case $(mount) in *' "+partition+" '*) echo 'Already mounted';; *) mount '"+partition+"';; esac"])

File "main.py", line 203, in safe_subprocess_run

return subprocess.check_output(command, stderr=subprocess.STDOUT)

File "/usr/lib64/python3.6/subprocess.py", line 336, in check_output

**kwargs).stdout

File "/usr/lib64/python3.6/subprocess.py", line 418, in run

output=stdout, stderr=stderr)

subprocess.CalledProcessError: Command '['adb', '-s', 'PM1LHMA782200385', 'shell', "case $(mount) in *' /system '*) echo 'Already mounted';; *) mount '/system';; esac"]' returned non-zero exit status 1.
[Miscellaneous Android Development] ale5000:
Could you please run from the pc

adb shell mount

and post here the result?
[Miscellaneous Android Development] DoR3M3:
>./adb shell mount

/dev/root on / type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)

tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=1889664k,nr_inodes=472416,mode=755)

devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)

proc on /proc type proc (rw,relatime,gid=3009,hidepid=2)

sysfs on /sys type sysfs (rw,seclabel,relatime)

selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)

/dev/block/dm-1 on /vendor type ext4 (ro,seclabel,relatime,discard,data=ordered)

none on /acct type cgroup (rw,relatime,cpuacct)

debugfs on /sys/kernel/debug type debugfs (rw,seclabel,relatime)

none on /dev/stune type cgroup (rw,relatime,schedtune)

tmpfs on /mnt type tmpfs (rw,seclabel,relatime,size=1889664k,nr_inodes=472416,mode=755,gid=1000)

none on /config type configfs (rw,relatime)

none on /dev/cpuctl type cgroup (rw,relatime,cpu)

none on /dev/cpuset type cgroup (rw,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent)

pstore on /sys/fs/pstore type pstore (rw,seclabel,relatime)

/dev/block/sda16 on /data type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,data=ordered)

/dev/block/sde5 on /firmware type vfat (ro,context=u: object_r:firmware_file:s0,relatime,uid=1000,gid=1000,fmask=0333,dmask=0222,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro)

/dev/block/sde15 on /dsp type ext4 (ro,seclabel,nosuid,nodev,relatime,data=ordered)

/dev/block/sda4 on /persist type ext4 (rw,seclabel,nosuid,nodev,noatime,data=ordered)

tmpfs on /storage type tmpfs (rw,seclabel,relatime,size=1889664k,nr_inodes=472416,mode=755,gid=1000)

tracefs on /sys/kernel/debug/tracing type tracefs (rw,seclabel,relatime)

adb on /dev/usb-ffs/adb type functionfs (rw,relatime)

/data/media on /mnt/runtime/default/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid)

/data/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid)

/data/media on /mnt/runtime/read/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=23,derive_gid)

/data/media on /mnt/runtime/write/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid)

[MENTION=5627087]ale5000[/MENTION] by the way do I need both java jdk and jre installed on my box? At present I have jre installed...

Thanks
[Miscellaneous Android Development] Hb20032003:
[MENTION=5627087]ale5000[/MENTION] Can you please look into this:

PS D:\ale5000-git-tingle-3abeae5> python main.py
MENU

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

> 2

*** OS: Windows 10 (win)
*** Python: 3.6.0 (64 bit)
*** Mode: 2
*** Working dir: C:\Users\hbars\AppData\Local\Temp\Tingle-a2dcey7h

ERROR: The input file cannot be found.
[Miscellaneous Android Development] ale5000:
If you select option 2 you have to manually place the framework.jar in the input folder of Tingle.

To do it automatically from the phone use the option 1.
[Miscellaneous Android Development] Hb20032003:
Yes I placed services.jar in input folder of tingle but then I get this error.

Also can you tell me how to run tingle using qpython because when I do so I get an error saying "compressor missing [7za] [zip]"
[Miscellaneous Android Development] ale5000:
It is framework.jar, NOT services.jar.

For QPython you need to put the 7za or zip binary for Android on the phone manually.

More info here: https://github.com/ale5000-git/tingle/issues/12
[Miscellaneous Android Development] Hb20032003:
On qpython:

/data/user/0/org.qpython.qpy3/files/bin/qpython-android5-root.sh "/storage/emulated/0/qpython/scripts3/main.py" && exit
on/scripts3/main.py" && exit <
MENU

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

> 3

*** OS: Linux 3.4.113-gcc9a167 (android)
*** Python: 3.2.2 (32 bit)
*** Mode: 3
*** Working dir: /storage/emulated/0/qpython/cache/Tingle-lbisxt
*** Decompressing framework...
DEBUG: Decompressing framework.jar
*** Disassembling classes...

ERROR: No dex file(s) found, probably the ROM is odexed.

ERROR CODE: 86
86|:/ $

But my ROM is deodexed and framework.jar has classes.dex

Ps-Framework.jar is of android 9.0
[Miscellaneous Android Development] DoR3M3:
[MENTION=5627087]ale5000[/MENTION], hi, any words thoughts on my reply?

I don't understand how we are suppose to have root on a phone to do this, when it's not rooted as example with something like Magisk?

I'm trying to deodex Stock Oreo 8.1.0

Thanks
[Miscellaneous Android Development] ale5000:
To all: In this period I'm very busy and I will reply slower but I'm not disappeared.

[MENTION=8949533]DoR3M3[/MENTION]: If the phone is inside a custom recovery (like TWRP) then root isn't needed but there may be exceptions depending on the phone and the recovery.

[MENTION=7023271]Hb20032003[/MENTION]: Please post your framework.jar so I can look why it is unable to find its content.
[Miscellaneous Android Development] DoR3M3:
[MENTION=5627087]ale5000[/MENTION], no worries, I don't mean to be a bother. It's been crazy trying to figure out how to get Oreo 8.1.0 deodex, but I've managed to do it, as a VDEX method posted for NanoDroid, because my phone has odex and vdex files.

1. Connect phone with PC while in TWRP, mount /system read-write

2. Use vdexExtractor

3. adb pull /system/system/framework framework

4. cp framework/services.jar services.jar-backup

Now deodex services.vdex:

5. vdexExtractor -i framework/oat/arm64/services.vdex --ignore-crc-error

This will create the following file: services_classes.dex

6. mv framework/oat/arm64/services_classes.dex classes.dex

7 zip framework/services.jar classes.dex

8 zip -j framework/services.jar classes.dex

9. adb push framework/services.jar /system/system/framework

10. adb shell

11. chmod 0644 /system/system/framework/services.jar

12. chown root:root /system/system/framework/services.jar

The ROM is now Deodex, the only reason I know is because I can now apply the latest NanoDroid-patcher-18.0~beta2 and it shows that it's a deodex rom. Then when I install microG is shows it now has signature spoof support.

ale5000, can you tell me if you know the differences between this method above and tingle and SuperR's Kitchen, if there are any Pros or Cons between all the different ways to deodex a rom?

The only thing between SuperR's Kitchen or doing it with vdexExtractor that I see, is I'm only changing the services.jar with the new classes.dex added in, and the system runs just as fast and as smooth as stock. With SuperR's Kitchen method, it had a little lag, wasn't as snappy, and the fact I did this as a raw image, made the system.img now 4x bigger... hmm

Thanks
[Miscellaneous Android Development] Hb20032003:
[MENTION=5627087]ale5000[/MENTION] I have placed the framework.jar in the zip file as XDA gave me an error saying file limit exceeded.
[Miscellaneous Android Development] alecthenice:
For android 5.1.1 I was wondering if tingle would deodex my rom if it also was composed of an additional moverio sdk.

Additionally i root with magisk and my hackey custom recovery i built for my device doesnt respond to adb so i am not confident I can use this tool unless I give myself root an alternate method. I have the ability to unpack the boot.img but dont know what to edit to give myself root w/o magisk.
[Miscellaneous Android Development] alecthenice:
Can i use this tool in twrp recovery while magisk is installed. I am a little unclear on how to implement
[Miscellaneous Android Development] Balrog86:
Thanks for this guide, it's deodexing is working for me.

Anyways I'm getting the following error now:

ERROR: The smali file to patch cannot be found, please report the problem to https://github.com/ale5000-git/tingle

ERROR CODE: 82

I'm using lineageos 15.1-20181218-NIGHTLY-klte (android 8.1.0) on my Galaxy S5
[Miscellaneous Android Development] ale5000:
To all: I'm busy now, I will reply to all as soon as I get time.

[MENTION=8432923]Balrog86[/MENTION]: Please post here your /system/framework/framework.jar so I can verify the problem.
[Miscellaneous Android Development] ale5000:
Currently no, it expect an already deodexed ROM.

If the recovery doesn't respond to adb you can try to use Tingle when the phone is in the system (instead of the recovery), it will try to use "adb root" and if fails then it will retry using "su" (I'm not sure if it works with magisk but you can try).
[Miscellaneous Android Development] alecthenice:
What are the risks of doing this with magisk?

I see the deodexed part thank you. Somtimes i have issues booting my device to recovery and have to restore by flashing .img in fastboot. If my application of tingle results in a softbrick do you think I could simply flash the system.img to recover? Thank you for your time.
[Miscellaneous Android Development] DoR3M3:
If you're using the guide, then just patch with the NanoDroid-patcher, it just works, nothing complicated about it. Then once the patch has completed, keep a copy of /system/framework/services.jar, and in the future, all you have to do is push this services.jar to framework and you'll be patched again... Simple ;)
[Miscellaneous Android Development] alecthenice:
Not following. What guide? I dont really trust the only form of twrp that currently exists for my device.
[Miscellaneous Android Development] DoR3M3:
Balrog86 said thanks for this I'm assuming, as the guide he's mentioning, what I pointed out;

https://xdaforums.com/showpost.php?p=78461366&postcount=237

I was referring to this microG guide which points out a simple deodex and applying Signature Spoof support with NanoDroid-patcher instead of using Tingle;

https://xdaforums.com/oneplus-5t/how-to/guide-microg-deodex-signature-spoofing-t3862961

See the sections at the top; VDEXEXTRACTOR, NANODROID PATCHER, DEODEX SETUP, DEODEX COMMANDS, SIGNATURE SPOOFING

P.S This is just a simple deodex on only the /framework/services.jar, for a Full Deodex use SuperR's Kitchen and then apply the NanoDroid-patcher...
[Miscellaneous Android Development] alecthenice:
I see. I dont trust the twrp I have for my device. The individual who put it together from another recovery for the same chip set is inactive these days. How can I verify what twrp is flashing where? Once thats done i can trust it?
[Miscellaneous Android Development] DoR3M3:
It's helps to know the device when you mention it?

Anyhow, TWRP doesn't make an official version, or no one has created a TWRP version for the device?

If there's a TWRP version, then flash a new one.
[Miscellaneous Android Development] alecthenice:
Well yeah twrp is open source but how do you know its doing what you want it to basically. Check out the moverio bt300 hacking and development thread. Around page 5 Erodros posted a twrp they said worked but you had to use an otg mouse to do anything because they didnt mod the toutch pad interface. The .img boots but I havent flashed it because when it was booted it didnt respond to adb or fastboot. Is that normal? Im really looking for some direction here as the few other members in my thread havent been very ambitious when it comes to helping find info on procedures or how to mod the bt300s. Thank you for your time!
[Miscellaneous Android Development] DoR3M3:
I'm not trying to be rude here, but let's be real here ok... Seriously, that's like saying the same thing for Android, Windows, or Apple, how do you know any of them are doing what you want...

Anyhow, TWRP has been around almost 8 years, it works just fine, I've used it for years and never had a problem with it.

So my question as I said before, what device do you have, does TWRP make an Official version, or does someone else? And if the answer is yes, then you typically boot into fastboot mode and flash it;

fastboot flash recovery twrp.img - This is a typical command but some odd devices could flash different...

P.S. And for all your other concerns, sure, on official or devices that have weird hardware, then support could be weird in TWRP. The Essential Phone as example has odd support for TWRP, this can happen, so it depends on the device. It's not going to fry your phone, if that's what you're worried about, it's either going to work, or you can't do things in it, that's all...
[Miscellaneous Android Development] alecthenice:
Thank you for your attempt to help but i believe what i am trying to discus is both lost in transcription and misplaced in this thread. A more direct question is; do you know how to unpack a twrp.img and see if the mount points its flashing to are correct?

I know the correct mount points
[Miscellaneous Android Development] DoR3M3:
Sorry I overlooked what you said before, in a TWRP BACKUP directory look at the contents of the recovery.log

Here's a backup of the /system on my device from the recovery.log

/system | /dev/block/sde21 | Size: 2975MB Used: 2124MB Free: 850MB Backup Size: 2124MB

Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up Wipe_Available_in_GUI IsPresent Mount_Read_Only

Primary_Block_Device: /dev/block/sde21

Display_Name: System

Storage_Name: System

Backup_Path: /system

Backup_Name: system

Backup_Display_Name: System

Storage_Path: /system

Current_File_System: ext4

Fstab_File_System: ext4

Backup_Method: files

It's great you want to learn, but to say you don't trust TWRP seems to indicate you are not aware of this application, TWRP doesn't do anything malicious. Oh, and to make this simple for you to understand, in the world of Android to Geeks TWRP is just a household name, everyone knows. It's also the most respected recovery solution out there!

Sorry again, not trying to be rude, but you are listed here as a member since 2016 and acting like you don't know TWRP, it just came across like trollling, so that is why I have been acting like this, hopefully you understand that...

Anyhow, not trying to be rude, just saying...

Peace...
[Miscellaneous Android Development] alecthenice:
Hahaha no its not like how the US congress doesnt trust Huawei I just want to know that the Erodros didnt dissapear bevause he was embarrased for mass bricking. Sorry for my poor vernacular.

I should be able to flash my hacky recovery(twrp), boot to it then see the log, if its wrong flash back and then decide what life holds? Would you aproach the same way? Thank you for helping me find some direction with this device. Its not that i dont know twrp on this device, im also really not that experienced for the role i hold in my thread and feel some degree of responsibility to members my device thread, i want to get it right and not brick this uneaque hardware (bt300s)
[Miscellaneous Android Development] DoR3M3:
Here is where I have a problem with this conversation. When you've been a member on a forum, hundreds of posts, and 2 years, you're not a newbie.

So when you started your Android Geeking Adventures in the beginning, there is one thing you should of known, also as a Computer User, that before you begin playing you always do what? ---> Backup Your Data!

This is how it's taught anywhere in Computing and Android, it's the first thing you should of learned 2 years ago.

So I will repeat it again, I'm not trying to be rude, but sitting here all these years later looking clueless over TWRP isn't looking right.

When you start in Android and you want to hack around, then you learn about TWRP in the beginning, it's just that simple not 2 years later... :(

Peace