yashsingh1/xdaforums huggingface dataset:
[Android Q&A, Help & Troubleshooting] Renate:
With both adb and fastboot (and even edl.exe since the last 5 minutes) you can do a simple check before you try to do any commands:

C:\>adb devices
12345678

C:\>fastboot devices
12345678

C:\>edl
Found EDL 9008

All these demonstrate that you have the right drivers installed. (Obviously only when in the correct mode.)

Note: I just updated edl.exe so that it doesn't require any command so that a plain edl will find the device, connect and disconnect. That will show that everything is accessible without actually saying a word to Sahara who is very shy and tends to lockup if you say a harsh word. Download the latest version.
[Android Q&A, Help & Troubleshooting] biodbl:
When I typed adb devices, daemon started successfully.

3e886a36 device.

Then type Fastboot devices and enter.

Lastly, I put edl and it appeared that it is not recognized as a command....
[Android Q&A, Help & Troubleshooting] Renate:
It's right in the signature. It says "Renate's Android Page, http://www/temblast.com/android.htm
[Android Q&A, Help & Troubleshooting] biodbl:
I unlocked the bootloader!!!

Thank you for help. Kkk

I am waiting for the Android 14 from Denzil Ferreira.

Important tip: the comand ./adb reboot bootloader With this ./

creates an error for people who are new to programming. In the instructions, they should delete this ./ so that anyone understands that the command starts directly with adb...

This also applies to commands that start with fastboot...

At least for me, it would make a difference.
[Android Q&A, Help & Troubleshooting] Renate:
For Linux or Android we have to do ./program

In Windows PowerShell you have to do .\program

In Windows MS-DOS cmd we just do program
[Android Q&A, Help & Troubleshooting] biodbl:
Now I understood. Thanks.

Another question: On the instructions there are ... fastboot 'a boot img' and 'b boot img'. One of them is the new boot img from Magisk. But which one? And the other one refers to which file?
[Android Q&A, Help & Troubleshooting] Renate:
I'm not going to look back through all this for the instructions.

There are two parts to this whole thread:

Unlocking the bootloader: This is unique to HiSense and uses the custom fastboot from dferreira

Installing Magisk: This is the same as for any other device

Installing Magisk

Determine which slot you're on

EDL read, dd or otherwise obtain the stock boot image in that slot

Install the Magisk app

ADB push the boot image to somewhere accessible

Magisk'ify the boot image

ADB pull the Magisk'ed boot image

Fastboot (using either stock or dferreira) flash the Magisk'ed boot image to the slot you're on
[Android Q&A, Help & Troubleshooting] biodbl:
I found a simpler set of instructions on another page of these posts:

Step 3 - Flash vbmeta and magisk_patched_boot.img

Code:

adb reboot bootloader

fastboot flash --disable-verity --disable-verification vbmeta vbmeta.img

fastboot flash boot magisk_patched_boot.img

fastboot reboot

In this case, I just need to use vbmeta img and the img generated by magisk. I understand that I don't need to know which slot to choose.

When I will type the commands, instead of typing the file name, I can drag and drop the file itself into cmd. OK?
[Android Q&A, Help & Troubleshooting] Renate:
I guess so. I just tested and it worked.

Still, I find nothing more annoying than drag-n-drop.

And I avoid File Explorer like the plague.

You can always copy/paste.
[Android Q&A, Help & Troubleshooting] biodbl:
Oh. Ok I Will try With copy/past

As soon as possible.

Maybe tonight. Now it is 16:44 pm in Brazil😎. Thanks
[Android Q&A, Help & Troubleshooting] biodbl:
I managed to root my A9!!!

Thank you very much to everyone who helped me!!!

I tested the playstore and it is working.

One question: do I still need to install those two other magisk modules? safety net fix and magisk hide props?
[Android Q&A, Help & Troubleshooting] Renate:
It's your choice if you need to hide your rooting from some app.
[Android Q&A, Help & Troubleshooting] biodbl:
and if i want to hide root i need to enable zygisk option. OK?
[Android Q&A, Help & Troubleshooting] biodbl:
and about making the device certified. My cell phone can now install Google apps. Do I still need to complete the certification procedure? What would be the difference?
[Android Q&A, Help & Troubleshooting] ferlanero:
Hi, I have my A9 successfully unlocked and rooted with Magisk 26.3. Now that Magisk 26.4 has been released, I have a question: Is it safe to update to Magisk 26.4 following the default Magisk process?
[Android Q&A, Help & Troubleshooting] Renate:
I just used 26.4 on something else. It worked fine. Why not?
[Android Q&A, Help & Troubleshooting] ferlanero:
I know that Magisk 26.4 will work on A9, what I'm asking is the right update procedure: Will it work updating Magisk app and then updating Magisk inside the same app? Someone has tried it already? I'm asking it because I have another Hisense A5 Pro CC and Magisk update doesn't work from inside the app, it causes a bootloop there.
[Android Q&A, Help & Troubleshooting] smartguy_noncoder:
Congratulations on your work towards android 14. I just wish I could get contacts working in Android 11. Might want to work on that first.
[Android Q&A, Help & Troubleshooting] iCloud:
It's working with direct install, so far I didn't have any problem/bootloop with my other devices with direct install. Just update to latest app, direct install, then reboot when done.

Use app ops https://play.google.com/store/apps/details?id=rikka.appops and fix the permission issue for the Google Contact sync. It's a known issue, permission were not configured correctly. Set read, modify, get accounts permission to allow. It's working for me since root was released, my daily phone driver at the moment now.
[Android Q&A, Help & Troubleshooting] biodbl:
On my Hisense a9, does anyone know why, when I'm listening to a book using the Moon + Reader app and Google voice with the screen off, after a few seconds it stops reading the text file? and I notice that the language selected in the Google voice settings changes to default. The Chinese voice is the default, but I uninstalled the Chinese voice app and the Google voice still stops reading.
[Android Q&A, Help & Troubleshooting] ferlanero:
Hi! Anyone has tried to debloat the Hisense A9? Is there any list with apps which are safe to disable or delete?
[Android Q&A, Help & Troubleshooting] Renate:
That command line is over 11000 characters long.

I like to keep mine under 10000 characters, maybe even 100.

Maybe a script or a makefile would be more legible?
[Android Q&A, Help & Troubleshooting] sargentAbs:
Hey guys, I have read through EVERYTHING on the internet I could find including every page of this forum that could help me-

When installing the USB drivers, they throw a code 10 error, so cmd just says "waiting for any device" when trying to run codes with fastboot.

If anyone can help me with this so I can use Google play on this phone, I will be eternally grateful!
[Android Q&A, Help & Troubleshooting] biodbl:
Type the adb devices comand line to see
[Android Q&A, Help & Troubleshooting] biodbl:
Type the adb devices comand to see
[Android Q&A, Help & Troubleshooting] Renate:
Code 10 is a general failure of the driver to start, so there's something wrong there.

Just go to the Mother Ship and download fresh:

https://dl.google.com/android/repository/platform-tools-latest-windows.zip

https://dl.google.com/android/repository/usb_driver_r13-windows.zip

Reinstall the drivers.
[Android Q&A, Help & Troubleshooting] sargentAbs:
While I appreciate your advice, I have reinstalled multiple times :/ any other ideas? I even tried on another computer, restarted with sign in permissions etc
[Android Q&A, Help & Troubleshooting] Renate:
How do you know that the copy of your driver isn't corrupt?

You can use Zadig to install a WinUsb driver.

No, this will not work with the Google adb.exe

But you can use my WinUsb.exe utility to test that everything works.

You need to know the VID/PID and which MI (interface) this thing is using.

See http://www.temblast.com/windows.htm
[Android Q&A, Help & Troubleshooting] sargentAbs:
So let’s say I test it and its corrupt, there’s only one place to download the drivers, and thats where they are coming corrupt from, so I delete it cause its corrupt, and download more corrupt drivers? Am I understanding correctly or is there something to be done about corrupt drivers being passed on from android? Thanks for your help seriousl
[Android Q&A, Help & Troubleshooting] Renate:
Well, where did you download them from anyway?

There's 10 zillion people using these drivers every day.

They are just repackaged Microsoft stock WinUsb drivers except they use a custom interface GUID.

Heck, worst case, you can just patch adb.exe and/or fastboot.exe and use the Zadig drivers.

Go to Driver details and look at what it thinks it's using.

Or test it like I said.
[Android Q&A, Help & Troubleshooting] sargentAbs:
I tried your link to redownload, same issue with the code10 errors, then I tried downloading zadig, and it asks for a device to download winusb to, but there is nothing I can choose for it. I clicked download though, and it said it succeeded in the download, but there are no new drivers on my computer.

Worst case, you said to patch adb.exe and or fastBoot but I don't know what that means... Can you elaborate?
[Android Q&A, Help & Troubleshooting] sargentAbs:
Also, I tried to download your tester out of curiosity but the app doesn't run...
[Android Q&A, Help & Troubleshooting] Renate:
Click on "Show all devices" on the top and select your device.

"Doesn't run" doesn't say too much.

What command did you use?

What does it print out?

Did you have the correct VID/PID MI of your device?

Is your device presenting a single interface or a composite device?

Is it plugged in?
[Android Q&A, Help & Troubleshooting] sargentAbs:
From what I understood about all of this, its about the drivers being installed on the computer, is that not correct? Is it about downloading them on the phone? It is plugged in, and I replaced the MTP using Zadig with Winusb, which I think was the wrong choice. I followed their instructions to get it back to MTP but when I scan it it shows MTP is still there.

As for commands, I did not use any, I downloaded your tester, and when I double clicked it, nothing happened.

As for the VID/PID I am not sure if I had the correct ones, but it found them on its own...

Not sure if my hisense is presenting a single interface or a composite device
[Android Q&A, Help & Troubleshooting] Renate:
Do you even have ADB eanbled on your device?

In Windows there are GUI apps and command line programs.

If you "double-click" a command line program it might do something but normally all you get is a flash of a black rectangle.

Start a command line window. Be in the correct directory or use the correct path.

C:\>winusb
WinUsb Debugger Copyright (c) Temblast 2022
Usage: winusb <vid> <pid> <ifc>

Now, find the VID/PID of your device and (using your own numbers):

C:\>winusb 18d1 4ee7
<happy little messages>

If you don't get happiness, try appending 0, 1, maybe 2 on the end:

C:\>winusb 18d1 4ee7 0
[Android Q&A, Help & Troubleshooting] vbhai:
Cheers guys. You guys have been amazing in getting this phone up and running.

I've run into a wee bit of a snag. Maybe not a wee bit- kind of a big snag.

I would not get any caller ID whenever someone called me. It would just say Unknown on the screen.

Turning off VoLTE fixes it but that is not really a fix tbh.

I believe it has to do with the carrier configuration files not being loaded fine. I've tried following a couple of guides to change and upload custom carrier profiles. Here they are:

[GUIDE] How to get working VoLTE and VoWiFi on custom ROMs

If you have non-working VoLTE/VoWiFi on your current custom ROM here is how to solve it. Requirements: Rooted phone Qualcomm PDC Tool and Drivers (attached) (QPST) PC + modem profiles (attached)...

xdaforums.com

New - Poco X3 no caller id for every incoming call on VoLTE and VoWIFI on xiaomi.eu v12.5.5.0

Hello, Just updated my Poco X3 from xiaomi.eu_multi 12.5.4.0 to xiaomi.eu_multi 12.5.5.0. Now I get no caller id for every incoming call when using VoLTE or VoWIFI. 2G calls and 3G calls are showing caller id correctly. I'm using PLAY (P4) network in Poland.

xiaomi.eu

[Guide] VoLTE + VoWiFi working for German carriers

[UPDATE] Updated QPST version + new how to Exciting news, jamal2367 from https://jamal2367.com has developed a way to get VoLTE + VoWifi working for many countries + carriers. If you are on Vodafone and you are having problems with...

xdaforums.com

[GUIDE] EFS Partitions: What They Are And How To Get It Back If Lost

Hello. My name is Poise, and I'm a victim of EFS Corruption. I know, laugh it up. Anyways, you're either here because you don't know what the EFS is and you wanna know, you ruined your EFS and you're looking for redemption, or you just wanna...

xdaforums.com

But so far, I have not had any luck with this. I tried uploading the .mbn file for my carrier using the PDC tool but it would not work for me sadly. It would not show the uploaded file in the PDC tool though I could change activate other already existing profiles but still could not get the caller ID to show up.

Also, another thing of note is that VoLTE works, the IMS status is "registered" when I check the phone info on dialling *#*#4636#*#*

Would be nice if someone is able to help out with this!
[Android Q&A, Help & Troubleshooting] TrippyPrimate:
hey has anybody figured out how to stop google assistant resetting to default one or to none, I've seen on other phones it says to set setting for google to write settings on allow but I'm not sure how to change it. it appears although it can when looking in settings but when I look and permissions in 3c all in one toolbox it is greyed out under requested permissions section but I can enable or disable but I have a feeling this would fix it or find out what's Turing it off but I have no idea for that.

Also if anyone knows how to get hey google to work and assistant to work when phone is locked (not necessary but would be nice)

Edit: I believe I allowed write settings in adb but still no luck.
[Android Q&A, Help & Troubleshooting] sanzhang:
I'm wondering if this one would work for Hisense A5. Has anyone tried?
[Android Q&A, Help & Troubleshooting] dferreira:
@Segnaro how did you find the `adb shell service call epd 21` ? I'm currently working on a full port of LineageOS 20 to this device and would like to support the e-ink settings, refresh on demand works with this! Do you happen to know how to toggle between speed modes?

Edit: found this, will try it out: https://stackoverflow.com/questions...d-info-on-androids-service-call-shell-command

Also found this post here: https://xdaforums.com/t/hisense-a5-e-ink-display-modes-port-for-aosp.4497903/

Logcat spits these out as I toggle between the modes... any idea how we can use epd to set the mode?

*Clear*

epd mode = 0x203

epd setEpdMode=515

*Balanced*

epd mode = 0x201

epd setEpdMode=513

*Smooth*

epd mode = 0x206

epd setEpdMode=518

*Speed*

epd mode = 0x209

epd setEpdMode=521
[Android Q&A, Help & Troubleshooting] Renate:
No. I don't.

Use apktool on framework.jar

Use the equivalent for IEpd* (or whatever):

grep final IClipboard*
File smali\android\content\IClipboard$Stub.smali:
.field private static final greylist-max-o DESCRIPTOR:Ljava/lang/String; = "android.content.IClipboard"
.field static final greylist-max-o TRANSACTION_addPrimaryClipChangedListener:I = 0x6
.field static final greylist-max-o TRANSACTION_clearPrimaryClip:I = 0x2
.field static final greylist-max-o TRANSACTION_getPrimaryClip:I = 0x3
.field static final greylist-max-o TRANSACTION_getPrimaryClipDescription:I = 0x4
.field static final greylist-max-o TRANSACTION_hasClipboardText:I = 0x8
.field static final greylist-max-o TRANSACTION_hasPrimaryClip:I = 0x5
.field static final greylist-max-o TRANSACTION_removePrimaryClipChangedListener:I = 0x7
.field static final greylist-max-o TRANSACTION_setPrimaryClip:I = 0x1
[Android Q&A, Help & Troubleshooting] dferreira:
With root, I searched the stock ROM for "epd" and got these files:
[Android Q&A, Help & Troubleshooting] Renate:
Nah, you don't want to go behind the driver's back and force anything.

You want to tell the driver to go to A2 or whatever mode.

Please post /system/framework/framework.jar

Edit: I did say "please".
[Android Q&A, Help & Troubleshooting] dferreira:
😆I just have been busy with the kids at home and -30C currently outside means full on watching them indoors 😅I’ll post it as soon as I can 😉

Dr. Denzil Ferreira (@denzilferreira@techhub.social)

Attached: 1 video LineageOS 20 on Hisense A9. Work in progress. Camera, GPS, fingerprint working. Only thing missing now is the screen refresh to work properly. I’ll get there. #gsi #android #hisense #eink

techhub.social

The OS boots, camera, GPS, fingerprint works. Just the eink screen driver is missing porting. Once this is complete, we can fully enjoy this device 😊
[Android Q&A, Help & Troubleshooting] dferreira:
@Renate https://drive.google.com/file/d/1hRDQIj706IMpeAW4BHOkkdDnRmjO4HWU/view?usp=drive_link here it is. Unzip and you'll have framework.jar from stock ROM. Thanks!
[Android Q&A, Help & Troubleshooting] Renate:
Here's the short version of it. More details to follow if I get around to it.

Edit: Updated, see: Post #575
[Android Q&A, Help & Troubleshooting] dferreira:
So... looking at this, forceClear = 21, which IS the method number! So to set the EDP mode, assuming we are calling updateEpdMode = 16... so calling "adb shell service call epd 16" should call that method on the service...

We are definitely interacting with it, just that it only confirms the current mode :D we're close!!!
[Android Q&A, Help & Troubleshooting] Renate:
Right, it's void forceClear(), so it takes no (parcel'ed) arguments.

void updateEpdMode() takes no arguments, so it's not what you want to use (at least not first).

void setEpdDisplayMode(int) looks more promising, it takes an integer.
[Android Q&A, Help & Troubleshooting] dferreira:
I GOT IT!!! Indeed it was setEpdDisplayMode(int)!

*Clear*

adb shell service call epd 11 i32 3

*Balanced*

adb shell service call epd 11 i32 1

*Smooth*

adb shell service call epd 11 i32 6

*Speed*

adb shell service call epd 11 i32 9

:cool:
[Android Q&A, Help & Troubleshooting] dferreira:
Now... figuring out how do I get this EdpManager service from stock ROM to bundle with LineageOS GSI image
[Android Q&A, Help & Troubleshooting] Renate:
You can also do this stuff in Java, you know. That's if the blacklist doesn't get you. But, hey, you can take blacklist out.

EpdManager epd = (EpdManager) context.getSystemService("epd");
epd.setEpdDisplayMode(3);
[Android Q&A, Help & Troubleshooting] dferreira:
Hum… if I’m reading this correctly, you are suggesting to implement my own .apk that contains this .smali Service implementation 😃 yeah can do that. Can also add quick tile notification bar support and perhaps a similar overlay to stock. This apk, together with the stock kernel, proprietary .so files perhaps 🤔

Thanks @Renate for entertaining my brainstorming 😉
[Android Q&A, Help & Troubleshooting] Renate:
Services are in /system/framework/services.jar

Over binder and AIDL they support requests from managers.

Those are all in /system/framework/framework.jar
[Android Q&A, Help & Troubleshooting] Kandwo:
This all sounds very promising and I'm looking forwards to a working version of this.

Regarding the refresh: would this mean that it would be possible to write a driver for Koreader, so that they could implement refresh for the Hisense phones? I would love to see Koreader offering full support for the A9 and other Hisense phones :)
[Android Q&A, Help & Troubleshooting] Renate:
Erm, not really a driver, but you could add a few lines of code to Koreader.

The EpdManager (i.e. IEpdManager) is what you want.

We can probably get by just patching framework.jar, maybe service.jar, if necessary.

Here's the more detailed breakdown of what EpdManager does:

Spoiler content hidden.

Although I am really confused what "begigResumeActivity" does.

Does "begig" mean to endow bigness on something? :p

Edit: Oh, yeah. Since this is not part of AOSP you'll need to build your little usage against a stub jar.
[Android Q&A, Help & Troubleshooting] Renate:
The previous post gives you what you need to know if you are going to try something using IEpdManager, Binder (i.e. shell cmd) or transact().

If you want to patch your favorite application to do set display mode in-app then you are using EpdManager (without "I") and Java.

EpdManager epd = (EpdManager) context.getSystemService("epd");
epd.setEpdDisplayMode(3);

Although... it looks like this thing has knowledge of display modes per app already. Or at least they started:

0x19	void removeAppMode(String pkg)
0x1a	void addAppMode(String pkg, int mode)
0x1b	Map getAllAppMode()

In any case, if you want to use EpdManager in your own code (either as an app/mode configurator or an in-app configurator) you'll need to do 2 or 3 things:

You will have to build your code against a9epd.jar. This means compile with the jar but do not include that jar in your apk as it has no guts and does not do anything!

You will definitely need to get rid of some blacklists in EpdManager and IEpdManager in framework.jar

You may need to get rid of some blacklists in EpdService in services.jar

There seems to be some special handling for ereader apps already:

READING_APP_LIST = {"com.chaozh.iReader", "com.chaozh.iReader.siswoo", "com.duokan.reader", "com.zhangyue.iReader", "com.tencent.weread", "com.jingdong.app.reader"};

In any case, attached is a zip of the jar and the source file for the "do-nothing" stub.
[Android Q&A, Help & Troubleshooting] dferreira:
My goal is not to use the stock framework.jar nor the services.jar but to add a cleaned-up EpdManager service to LineageOS framework.jar and services.jar and then create a .apk that leverages this EpdManager service to interact with the GSI vendor. This would allow us to use the stock kernel and blobs and use our own system.img that is LineageOS 20, with Google Services and without any of the bloatware that Hisense added. This means we have full control over the speed mode like the stock ROM does per app.
[Android Q&A, Help & Troubleshooting] Kandwo:
Any idea what code to add and where? I've been looking around, but not being a programmer it's hard for me to understand which files are relevant and what the code in all the different files mean.

What I'm looking for is simply a full refresh function, so that a full screen refresh is being done on each page turn in Koreader.

Do you know how this could be achieved? :)

Looking around on github the only two files I've found that might be relevant are these:

koreader-base/ffi/framebuffer_android.lua at master · koreader/koreader-base

Base framework offering a Lua scriptable environment for creating document readers - koreader/koreader-base

github.com

coolreader/android/src/org/coolreader/crengine/EinkScreen.java at a39b917f8806cbc2cb442d3ee3460ed871038297 · buggins/coolreader

Official site of CoolReader project. Sourceforge repository is obsolete. - buggins/coolreader

github.com

Am I even looking in the right place?

(I'm currently using the Tasker method mentioned earlier in the thread, but it's buggy. The first time I press a volume button in Koreader - or any reader app - it wakes the function, which results in three full refreshes in a row, followed by a "Tasker was granted superuser rights" pop up. It then functions properly unless I don't use it within a minute - then it goes to sleep and the whole thing starts over.)
[Android Q&A, Help & Troubleshooting] ferlanero:
And why you just don't config Koreader as "All clear" in "Application mode display" under "E-ink settings" in "Configuration" to get level of refresing you want? Much easier and configurable just out of the box in the A9