mercredi 19 août 2015

[Q] Hacking odexed SystemUI.apk to remove the S-Finder notification toolbar



tl;dr: I tried to hack the SystemUI.apk file to get rid of the s-finder notification bar, I needed to deodex the apk to do this. I did that (first time ever), but then I didn't know what to do with the .odex.art.xz file, so I removed the whole arm/ folder from the SystemUI directory, and just left my modified SystemUI.apk file in there. After clearing the cache and dalvik, the SystemUI app kept crashing and I had to restore from backup. What do I do with the arm directory, and is that even the problem, or should I not even try to do this?
I have a sprint Galaxy S4 (jfltespr; SPH-L720) that I just upgraded to lollipop via the regular system update, now have Android 5.0.1, baseband L720VPUGOD2, kernel 3.4.0. My phone is rooted with BusyBox installed. I used to use CyanogenMod (for a long time), but the stability was low for me, particularly when travelling internationally and changing SIMs: I would frequently lose GPS completely (see http://forum.xda-developers.com/gala...tall-t3009245/), requiring me to flash the stock ROM again. So I reverted to stock, and used xposed. Unfortunately, following the upgrade to 5.0.1, xposed now requires flashing a zip and is in super-alpha, and so I am nervous about using it. The only thing I really want a custom ROM or xposed for is to get rid of bloat. I have managed with just Titanium to get rid of the most annoying apps, but I am still stuck with that stupid 'S-Finder'/'Quick Connect' bar. I can get rid of it by switching my device name to jfltevzr or jflteatt in build.prop, but then I lose other features, such as the ability to change to the GSM network.

So, I tried to hack the SystemUI apk according to the instructions here and here. Essentially my plan was: download SystemUI.apk, edit the PhoneStarusBar.smali, and profit.

I have never done this before, so I rapidly ran into the issue that I needed to deodex the apk. I followed this guide and everything seemed to go smoothly, except that the PhoneStatuBar.smali file had different code from the tutorial. In the tutorial I had to change

Code:


if-nez v8, ;cond_0

to

Code:


if-nex v8, :cond_5

but in my file it seemed that the syntax was similar, but the labels were different, so I ended up changing

Code:


if-nez v8, ;cond_15

to

Code:


if-nex v8, :cond_c0

I created the classes.dex file and packaged it into the apk with the command

Code:


7za u -tzip SemcVideo.apk classes.dex

However, I was confused about what to do with the new apk. In my system, the original apk lives in /system/priv-app/SystemUI/SystemUI.apk, and next to the apk is an arm directory with an odex.xz file (which I deodexed) and an art.odex.xz file that I have no idea what to do with. Since I didn't know what to do, I just deleted the whole arm directory, put the modified (deodexed) SystemUI.apk file in /system/priv-app/SystemUI/, cleared the cache and dalvik cache, and rebooted. After about 20 minutes of rebuilding the cache for all of my apps, the phone started, but it had the dreaded 'SystemUI is not responding, do you want to restart it' message. I ended up having to restore a backup and wipe the cache again.

So, my question is: what do I do with that arm directory? Is that what broke it, or is the problem that I just screwed up the PhoneStatusBar.smali file? I don't really know what I am doing as I don't know java that well, but I would like to get this to work.

Alternatively, do you guys think that maybe the Google Play Edition ROM might be more stable that CyanogenMod, or that I should just try to flash to xposed alpha even though it is so 'unstable'? It looks to me like the GPE ROM might be more stable than CM, but I have no idea. I know that it hasn't been patched for StageFright yet, even though CM has.

Finally, I should specify that I am not an Android hacker, I have a full time job in science research and I volunteer a lot. My top priority for my phone is stability and reliability, and I don't want to spend too many hours on this. Secondary concerns for me are not having to deal with all of Samsung's bloatware and increasing my battery life.

Thanks in advance for all of your help, and apologies if I am posting in the wrong place.



Aucun commentaire:

Enregistrer un commentaire