jadx: Wrong Characters on DexGuarded Classes Names
Problem

Also deobfuscation of methods and fields is applied but it wasn’t enabled on preferences
package o;
/* renamed from: o.ᴻ */
public final /* synthetic */ class C implements Qn {
/* renamed from: ˊ */
private final HttpInterface f19353;
/* renamed from: ˏ */
private final DownloadPdfRequest f19354;
public C(HttpInterface httpInterface, DownloadPdfRequest downloadPdfRequest) {
this.f19353 = httpInterface;
this.f19354 = downloadPdfRequest;
}
public Object apply(Object obj) {
return LeagueListingFeature.m29926(this.f19353, this.f19354, (PermissionEnum) obj);
}
}
Jadx version
Latest unstable
Comments contain the right symbol:
/* renamed from: o.Ч */
public class C extends C {
/* renamed from: ˋ */
Sample
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 24 (14 by maintainers)
Commits related to this issue
- fix(gui): use same font loader as code viewer (#584) — committed to skylot/jadx by skylot 5 years ago
- fix: improve rename checks and show rename reason (#584) — committed to skylot/jadx by skylot 5 years ago
Well, as a user, Noto seems to be the richest font, however the I couldn’t find a Noto font (randomly from the 151) which supports the needed characters.
As a user, I am fine with living with strange characters, if I know it is my issue of not having a font with many characters, but I just need to know. I am creating an issue to discuss this.
Also, some fonts gives box samples (image below)
With disabled all renaming options, and search for “renamed from”, there are no renamed fields (image below). From my side, this is an expected behavior.
When “printable” is the only selected rename option, fields are renamed (although not fully printable), while classes are not (image below). I am creating an issue to tackle this.
I made a fix which removes difference in chars visibility between tree and code viewer (I use same API as in RSyntaxTextArea here). And now on my system (Linux) I can view any chars independently which font I selected in preferences. As I understand this is possible because I have installed system fonts which have glyphs for that chars and Linux font subsystem can fallback to them.
@enovella as you have no problems on previous jadx version, you can on latest unstable build try to reset current font to system default by pressing
Resetbutton in preferences window. Maybe this helps.@asashour can you check this change? If it don’t help try to reset font or install into your system fonts with wide Unicode support like GNU UniFont, Noto or others from list here sorted by “Chars” Also: you can reproduce case of renamed fields with disabled all renaming options by searhing “renamed from” in code
Yes, please check
—rename-flagsFrom my humble testing, I see that the font used in both code area and tree doesn’t support all Unicode, we should either try to find another font, or rename non displayed ones.
But I guess there was a hint that there are others issues, but I can’t reproduce.
I would say: define the requirements 😃
@asashour actually this is a bug. In this case class name have only not “printable” chars so jadx remove them. And as soon as empty name is not correct
Cchar was added )) But checks for unique names was incorrecly skipped (or it was performed before chars removing). So this need to be fixed anyway.