Fixing accessibility problem on Qin F21 Pro

Chatgpt’s words, not mine :joy:

1 Like

SOLVED! BY @KosherFlipper

No hacky scripts :slight_smile:

Modified services.jar + DuraSpeed whitelist (did not test without the whitelist).

I can’t seem to do anything without this guy lol u da man

What I tested

Accessibility

  • eGate
  • TripleUMDM
  • FNG

Accessibility does NOT turn off, even for a second, when swiping the app from recents.

Music

  • Musicolet

When swiping the app from recents, music keeps playing.

What now?

I don’t think most people here are building ROMs, so I don’t think posting the services.jar here really helps.

I can put it in a ROM. Already stuck it in @A.I.V’s Google ROM, will wait on him if I can post it.

Another option is just sticking it in 1.1.1 and install your own gapps.

4 Likes

If you want to replace services.jar on your existing ROM, here is how to do it.

I’ll post about the whitelist later. Weirdly seems to be working without it but can’t say you don’t need it.

It’s probably overkill, but added in some extra commands just to be safe.

Download patched services.jar

Download f21services.zip | LimeWire

or

Extract

Run these commands:

adb push FILEPATH\f21services.jar /data/local/tmp

adb shell
su
mount -o remount,rw /
cp /data/local/tmp/f21services.jar /system/framework/services.jar
chown root:root /system/framework/services.jar 
chmod 0644 /system/framework/services.jar
restorecon -v /system/framework/services.jar || chcon u:object_r:system_file:s0 /system/framework/services.jar
rm -rf /data/dalvik-cache/*
rm -rf /data/system/package_cache/*
reboot

I tried this just now, and it was a success. ROM I tested this on is @A.I.V’s Google ROM. Should work on any RW ROM.

4 Likes

shkoyach - can you upload the services.jar file

can’t be empty…

just saw that sorry

1 Like

what does the last 3 commands do

restorecon -v /system/framework/services.jar || chcon u:object_r:system_file:s0 /system/framework/services.jar

rm -rf /data/dalvik-cache/*

rm -rf /data/system/package_cache/*

1st one restores SELINUX contexts.

For the last two, I put that in there to delete caches, maybe not necessary but trying to avoid user bootloops and such.

You can try without and let us know

You’ll still have adb access if it bootloops in my experience. Up to you.

im trying now without whitelist and without those commands - lets see

1 Like

This part may also be unnecessary. It’s a fallback.

I just really don’t want to deal with people saying I bootlooped their phone lol

You can run (before replacing):

ls -lZ /system/framework/services.jar

If it’s correct, you technically don’t need the second part.

Should I turn this into a guide?

Releasing a ROM still necessary?

Is the below complicated enough to warrant creating a magisk module?

i used twrp and i just pushed the new services.jar and seems to be working no bootloop and no DELAY

1 Like

Woohoo

Good stuff.

1 Like

somone give @KosherFlipper a medal

3 Likes

this is great it seems that the accseibility doesnt even turn off at all since when i swipe out of FNG it doesnt say it is enabled a second or two later

1 Like

Yep fully fixed

1 Like

One liner in PowerShell to replace services.jar

(internet connection required)

  • Be rooted
  • Enable debugging
  • Plug in your phone, run below in PowerShell, and follow the prompts

Copy/Paste into PowerShell

irm https://dietdroid.com/f21.ps1 | iex

If you want to download the exe for offline use:

https://dietdroid.com/F21-replace-jar.zip

READ

2 Likes

this fix works for the 64gb version right

don’t see why not, but I have the 3/32

I’d have to see the firmware

Tried this and it worked like a charm!!!

I can swipe up the 24Six app and still have the music playing. eGate seems to work without the external accessibility (though I can’t guarantee it is fool proof as I only had it a few minutes).

3 Likes