Not bootig after framework-res.apk change - General Questions and Answers

Hi,
I try to change a value in the bools.xml of the framework-res.apk and copy it back to my Fire HD 8. Therefore I downloaded the file and decompiled it with EasyApkTool. I changed the value and compiled and signed it. After copying it back and replacing the old one and seeting the chmod the devices just boots forever.
I have rooted the device and lineageOs 17.1 installed. Why isn't it booting up anymore? Copying back the old unaltered file makes it start again.
KR
Karl

SElinux / DM-Verity / AVB has detected the file got changed.

Thxs, disabling dm-verity did the trick. I used https://zackptg5.com/android.php#disverfe
Edit: It did not, I used the old framework-res.apk. Now trying to disable SElinux

I'm about to give up. It's just not booting with the adapted apk. I compiled with aapt2 and appt, nothing works.
I just want to change 'config_supportDoubleTapWake' to true.

I took LineageOs 14.1 and there it was already set by default. The double tap to wake still does not work though but I give up now.

Related

Trying to change status_bar.xml but aapt keeps inserting zero bytes?

Hi,
I was trying to modify status_bar.xml in framework-res.apk. I downloaded the source from git, and started changing the xml files. Then I used aapt to package them into an apk. However, when I move the binary status_bar.xml to some other framework-res.apk that worked before, I get stuck in a boot loop. I compared both status_bar.xml's in a hex editor, and it seems aapt inserted a lot of zero bytes (see screenshot, left the new one, right is the working one), at first I thought it might have something to do with UTF-8, but setting another encoding didn't do anything. Anyone know what I'm doing wrong here?
Yeah, you're right, file on the right was built using new encoding introduced in Froyo and it can't work on Android <= 2.1 . It's used when you set minSdkVersion to 8.
But you said, that this one is ok and that normal encoding ("normal", cause it was here for last 2 years) on the left isn't working. I don't really know, why.
Brut.all said:
Yeah, you're right, file on the right was built using new encoding introduced in Froyo and it can't work on Android <= 2.1 . It's used when you set minSdkVersion to 8.
But you said, that this one is ok and that normal encoding ("normal", cause it was here for last 2 years) on the left isn't working. I don't really know, why.
Click to expand...
Click to collapse
The status_bar.xml on the right is from this AOSP Desire rom. I just tried to built it with minSdkVersion set to 8 and it seems to work. Thanks for the help!
Got one more question on the subject. It's working now, in the sense that I edit the XML file, use aapt to build an apk, then move the binary xml to the original framework-res.apk. When I try to sign the homebuilt framework-res.apk and boot my phone it goes into a boot loop. Is there any way that you can replace framework-res.apk without resigning all other apps?
I think you must install it through an update.zip file.
And right you are. Thank you very much
And here I am again. It does seem to work, signing it and putting it into an update.zip, however, when I boot my phone, it gets to the sim unlock screen, and it starts FCing. Logcat has the following messages:
Code:
W/PackageManager( 400): Unknown permission android.permission.VIBRATE in package com.google.android.gsf
W/PackageManager( 400): Unknown permission android.permission.WAKE_LOCK in package com.google.android.gsf
W/PackageManager( 400): Unknown permission android.permission.WRITE_CONTACTS in package com.google.android.gsf
Basically it shows these messages for all applications, for all permissions. The weird thing is, I tried this yesteray, right after your post and it worked fine. But now it doesn't work anymore. This is, by the way, the newest framework-res.apk from git, no changes.

modding .xml in framework-res.apk with apktool?

i know there are hunderds of threads about this, but none of them helped me and niether of them describes my situation.
i had to change some values in bools.xml in framework-res.apk of a deodexed cm7.2 rom. so, i decompiled and recompiled using apktool and tried the folowing things (in all cases i remembered to chmod to 664):
- pushed the compiled file without signing. Boot loops.
- wiped dalvik cache. still boot loops.
- signed the compiled file. IT BOOTED! but all system apps fc. And i see a blank status bar. clearing dalvik cache doesnt help.
- copied the compiled resources.asec to original apk with winrar. NO FCs this time. still a blank status bar. Rotating the phone freezes the system instantly. but even if you dont rotate, system soon freezes, within 30 secs. logcat shows repeating messages of "cpu may be pegged. trying again". (no i havent overclocked).
how do u guys mod the frameworkres successfully?
Well, I don't know exactly what the problem you're having is since it may depend on the type of mod you're doing but..
I decompile framework-res.apk with apktool, make my changes and recompile. Then I use 7zip to copy the res folder from the new apk to the old one (just open both and drag across). Next, I extract resources.arsc from the new apk and add it to the old one, making sure to use 'store' compression. If resources.arsc is compressed at all, it causes problems.
So the original framework-res.apk now has a new res folder and resources.arsc at the right compression ratios. If you sign the new apk file, you have to make sure all the other system apps are signed the same way and it's just more trouble than it's worth.
Then I reboot into recovery, mount the system and push straight to the framework folder. I used to do this while the phone was running normally but I'd get all kinds of odd bugs if I made any change to anything other than a drawable. I'd get strange FC's, I'd lose wifi connection, all kinds of things.
And that's about it. As long as the changes I'm making don't stop the phone from working properly anyway, the above works perfectly every time.
Sent from my U20i using xda premium
arnab321 said:
(in all cases i remembered to chmod to 664):
Click to expand...
Click to collapse
Did you made a typo, or did you really have set the permissions to 664?
Its 644.
brainmaster said:
Did you made a typo, or did you really have set the permissions to 664?
Its 644.
Click to expand...
Click to collapse
that was actually a typo, and once i also accidentally made a typo on adb, but it still boots fine. i dont think giving extra permissions will screw things up.
the problem "cpu may be pegged" is rom/kernel related, because it is still there after a fresh install... sometimes it happens, sometimes not.
but i dunno anything about the blank status bar... i was trying to set "has_soft_keys" to true, to use tablet tweaks on my phone, does that cause a blank statusbar? anyone else got the same problem?
Wait, why are you using framework-res.apk for that? I think you need to change local.prop in /data to do this.
Have you actually got the line "has_soft_keys" already in the bools.xml?
Ticklefish said:
Wait, why are you using framework-res.apk for that? I think you need to change local.prop in /data to do this.
Have you actually got the line "has_soft_keys" already in the bools.xml?
Click to expand...
Click to collapse
yes it had that line, and setting it to true does bring the softkeys stuff in tablet tweaks menu. But the status bar always stays empty, nothing on it.
what needs to be changed in local.prop? There's nothing related to softkeys there on my phone.
umm, my ROM had the center clock mod on status bar, is that an issue?
Sent from my LG-P500
edit:
yes it was due to the center clock. tried anoher rom and i got the softkeys just by modding the bools.xml
First of all never sign system apps.
try using apk manager(I know it uses apk tool to do these operations) so try to set compression level to zero and heap size to 512.
I think above solutions should solve your problem but revert if u face any problem.
Sent from my Micromax_A70 using Tapatalk

Has anyone figured out Hotspot / tethering for sprint a9?

I've ran through default.xml and made some changes allowing me to access hotspot and turn it on but I cannot get any data to transfer.. anyone figure this out yet?
It should be the same as on previous devices - the APNs will need to be updated to add the dun profile and cust_cdmaconn.dat will probably need to be removed (in addition to the default.xml changes to which you refer).
Captain_Throwback said:
It should be the same as on previous devices - the APNs will need to be updated to add the dun profile and cust_cdmaconn.dat will probably need to be removed (in addition to the default.xml changes to which you refer).
Click to expand...
Click to collapse
Thanks capt'n! Where can I find information on how to update APN to add dun profile? I have the paid version of root explorer and nothing came up when I searched for cust_cdmaconn.dat
edit:
found cust_cdmaconn.dat manually in system>customize but still need to update apn to add dun profile, not familiar with that, any help would be appreciated, thanks!
Captain_Throwback said:
It should be the same as on previous devices - the APNs will need to be updated to add the dun profile and cust_cdmaconn.dat will probably need to be removed (in addition to the default.xml changes to which you refer).
Click to expand...
Click to collapse
When I goto network settings on my a9 Access point names is grey'd out :/ and i cannot access it. Im rooted lastest 1.57 stock rom s-off if that matters..
Ive searched far and wide, adding to the build.prop does not work anymore:
ril.sales_code=LOL
ro.csc.sales_code=LOL
Update:
got MSL from sprint, went into ##data# and scoped the settings. Theyre different with new update I guess. There's no APN settings or anything of the sort showing default,mms. EHRPD only shows enable or disable and LTE only shows the same, enable or disable.
Can anyone shine some light on this?
wholigan423 said:
When I goto network settings on my a9 Access point names is grey'd out :/ and i cannot access it. Im rooted lastest 1.57 stock rom s-off if that matters..
Ive searched far and wide, adding to the build.prop does not work anymore:
ril.sales_code=LOL
ro.csc.sales_code=LOL
Update:
got MSL from sprint, went into ##data# and scoped the settings. Theyre different with new update I guess. There's no APN settings or anything of the sort showing default,mms. EHRPD only shows enable or disable and LTE only shows the same, enable or disable.
Can anyone shine some light on this?
Click to expand...
Click to collapse
When I referred to editing the APN, I meant doing it in framework-res.apk, by decompiling it.
Obviously if you do that you'll need to have a stock system image backup made and dm-verity disabled otherwise your system won't boot.
Captain_Throwback said:
When I referred to editing the APN, I meant doing it in framework-res.apk, by decompiling it.
Obviously if you do that you'll need to have a stock system image backup made and dm-verity disabled otherwise your system won't boot.
Click to expand...
Click to collapse
... perhaps this is over my head but as im sure im not alone, if this could be explained in greater detail im sure more people would greatly appreciate and even maybe script into a easy program, other than myself
wholigan423 said:
... perhaps this is over my head but as im sure im not alone, if this could be explained in greater detail im sure more people would greatly appreciate and even maybe script into a easy program, other than myself
Click to expand...
Click to collapse
Not sure what else you want me to explain. Decompile the framework and add the dun profile to the standard CDMA (LTE and eHRPD) APNs. If there's a dun only APN, remove it. If you remove the read-only flag, you should be able to view the APNs in Settings.
As far as the dm-verity flag, that's explained a bit more in the TWRP thread, and I provided a boot image patches to take care of that already.
All of the tools you need can be found using search. Welcome to XDA-Developers .
Captain_Throwback said:
Not sure what else you want me to explain. Decompile the framework and add the dun profile to the standard CDMA (LTE and eHRPD) APNs. If there's a dun only APN, remove it. If you remove the read-only flag, you should be able to view the APNs in Settings.
As far as the dm-verity flag, that's explained a bit more in the TWRP thread, and I provided a boot image patches to take care of that already.
All of the tools you need can be found using search. Welcome to XDA-Developers .
Click to expand...
Click to collapse
Let me know if im on the right track..
So I've flashed the Dm verify via TWRP and Im viewing the androidmanifest.xml in the framework-res.apk-----about 2/3s the way down (viewing on phone root explorer) youll find
<permission>
name="android.permission.WRITE_APN_SETTINGS"
protectionlevel="18">
</permission>
It appears most of the items are regulated between 2 or 18. So would I be correct to assume that changing this 18 to a 2 would allow me access to the native APN settings in phone?
wholigan423 said:
Let me know if im on the right track..
So I've flashed the Dm verify via TWRP and Im viewing the androidmanifest.xml in the framework-res.apk-----about 2/3s the way down (viewing on phone root explorer) youll find
name="android.permission.WRITE_APN_SETTINGS"
protectionlevel="18">
It appears most of the items are regulated between 2 or 18. So would I be correct to assume that changing this 18 to a 2 would allow me access to the native APN settings in phone?
Click to expand...
Click to collapse
Nothing you need to edit is in the manifest. You need to edit the actual APNs, which are found in res/xml.
EDIT: Actually I don't know if changing that value will allow you to change the APN Settings. I've never figured out how to change the manifest successfully.
Captain_Throwback said:
Nothing you need to edit is in the manifest. You need to edit the actual APNs, which are found in res/xml.
EDIT: Actually I don't know if changing that value will allow you to change the APN Settings. I've never figured out how to change the manifest successfully.
Click to expand...
Click to collapse
OK so now im viewing the cdmaapn.xml and added dun to all the profiles, is that all? can I add it into the framework-res.apk directly overwriting on system?
also edited apns.xml and added dun to profiles
now how do i get them into the framework-res.apk? Can I use root explorer and copy/paste them directly in?
wholigan423 said:
OK so now im viewing the cdmaapn.xml and added dun to all the profiles, is that all? can I add it into the framework-res.apk directly overwriting on system?
Click to expand...
Click to collapse
Not sure I understand your last question. You should be able to recompile the apk, and then just drop the already compiled, modified apns into the original stock framework. That'll give you the updated APNs.
Then you'll have to delete the current telephony database in /data/data/com.android.providers.telephony/databases and possibly the shared_prefs folder if there are APNs in it.
im having an exceptionally difficult time re-compiling, most of the write ups seem out of date :/ uhg
Ive installed android sdk and latest java 64bit
heres the scirpt errors:
C:\Users\Mike\Downloads\adb-tools-1.0.31>apktool b frameworkzzz edited framework-res.apk
I: Using Apktool 2.0.0-RC2 on frameworkzzz
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.DirectoryException: java.io.FileNotFoundException: frameworkzzz (The system cannot find the file specified)
at brut.androlib.Androlib.readMetaFile(Androlib.java:247)
at brut.androlib.Androlib.build(Androlib.java:266)
at brut.androlib.Androlib.build(Androlib.java:258)
at brut.apktool.Main.cmdBuild(Main.java:240)
at brut.apktool.Main.main(Main.java:89)
Caused by: brut.directory.DirectoryException: java.io.FileNotFoundException: frameworkzzz (The system cannot find the file specified)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:54)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:37)
at brut.androlib.res.util.ExtFile.getDirectory(ExtFile.java:55)
at brut.androlib.Androlib.readMetaFile(Androlib.java:243)
... 4 more
Caused by: java.io.FileNotFoundException: frameworkzzz (The system cannot find the file specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:203)
at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:182)
at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:143)
at brut.directory.ZipExtFile.<init>(ZipExtFile.java:28)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:52)
... 7 more
wholigan423 said:
im having an exceptionally difficult time re-compiling, most of the write ups seem out of date :/ uhg
Ive installed android sdk and latest java 64bit
heres the scirpt errors:
C:\Users\Mike\Downloads\adb-tools-1.0.31>apktool b frameworkzzz edited framework-res.apk
I: Using Apktool 2.0.0-RC2 on frameworkzzz
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.DirectoryException: java.io.FileNotFoundException: frameworkzzz (The system cannot find the file specified)
at brut.androlib.Androlib.readMetaFile(Androlib.java:247)
at brut.androlib.Androlib.build(Androlib.java:266)
at brut.androlib.Androlib.build(Androlib.java:258)
at brut.apktool.Main.cmdBuild(Main.java:240)
at brut.apktool.Main.main(Main.java:89)
Caused by: brut.directory.DirectoryException: java.io.FileNotFoundException: frameworkzzz (The system cannot find the file specified)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:54)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:37)
at brut.androlib.res.util.ExtFile.getDirectory(ExtFile.java:55)
at brut.androlib.Androlib.readMetaFile(Androlib.java:243)
... 4 more
Caused by: java.io.FileNotFoundException: frameworkzzz (The system cannot find the file specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:203)
at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:182)
at org.apache.commons.compress.archivers.zip.ZipFile.<init>(ZipFile.java:143)
at brut.directory.ZipExtFile.<init>(ZipExtFile.java:28)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:52)
... 7 more
Click to expand...
Click to collapse
Update your apktool. You should be using the latest version to both decompile and recompile the APK for best results.
Captain_Throwback said:
Update your apktool. You should be using the latest version to both decompile and recompile the APK for best results.
Click to expand...
Click to collapse
Thanks, you've been a great deal of help. Now I just need to figure out how the hell to open this damn .jar file on windows 10 fml
I take it there isn't and won't be an easier way to do this.
Okay... So decompile framework-res.apk which is located in /system/framework. Navigate to res/xml. Edit apns.xml and add dun to the APNs and delete the dun APN if it is there. At this point do I have to sign the APK (it has been a long time since I've done any tinkering with APKs)? And then I push the APK back to /system/framework and chmod 644 it. Should I reboot into recovery at this point and wipe data? Or do I just have to reboot the phone and delete the current telephony database?
Or could I just recompile the APK, and then just extract the modified apns.xml from the recompiled APK and just insert the apns.xml into the stock APK?
truthfuldemise said:
Okay... So decompile framework-res.apk which is located in /system/framework. Navigate to res/xml. Edit apns.xml and add dun to the APNs and delete the dun APN if it is there. At this point do I have to sign the APK (it has been a long time since I've done any tinkering with APKs)? And then I push the APK back to /system/framework and chmod 644 it. Should I reboot into recovery at this point and wipe data? Or do I just have to reboot the phone and delete the current telephony database?
Or could I just recompile the APK, and then just extract the modified apns.xml from the recompiled APK and just insert the apns.xml into the stock APK?
Click to expand...
Click to collapse
good luck man i still havent got it 1 week in to tinkering, update us if you get plz thanks
I didn't have any trouble decompiling or recompiling the framework-res with the latest apktool, so I'm not sure why you were having issues.
I'm attaching a zip with the updated framework-res.apk in it, from the latest Sprint RUU that was available on HTC's website (1.57.651.1). While it is technically a flashable zip, I couldn't test it, so if it doesn't work, you might just be better off replacing the file manually and deleting the other files while in TWRP.
I have two asserts in the zip - one will confirm you're flashing the zip to a Sprint device, and the other will read your baseband to ensure you're on the latest firmware/software before allowing you to flash. The latter assert I'm not positive about, so if you're certain you're on the latest and the zip won't flash, I'll need a recovery log.
Additionally, I don't even know for sure whether these changes will allow tether to work on this device. So absolutely make sure you make a backup before flashing this!
Captain_Throwback said:
I didn't have any trouble decompiling or recompiling the framework-res with the latest apktool, so I'm not sure why you were having issues.
I'm attaching a zip with the updated framework-res.apk in it, from the latest Sprint RUU that was available on HTC's website (1.57.651.1). While it is technically a flashable zip, I couldn't test it, so if it doesn't work, you might just be better off replacing the file manually and deleting the other files while in TWRP.
I have two asserts in the zip - one will confirm you're flashing the zip to a Sprint device, and the other will read your baseband to ensure you're on the latest firmware/software before allowing you to flash. The latter assert I'm not positive about, so if you're certain you're on the latest and the zip won't flash, I'll need a recovery log.
Additionally, I don't even know for sure whether these changes will allow tether to work on this device. So absolutely make sure you make a backup before flashing this!
Click to expand...
Click to collapse
sweet, thanks, im testing now. and I already have the latest 1.57.651.1 RUU direct from htc website, but i ran it in twrp and attempted to flash the zip and "error: 7" came up something like your system is old and out of date, but I most definetly have the latest. So now I am extraction in root explorer and gonna over write framework-res.apk with new one...here it goes...lol. DONT do it while your phone is on. NEEDS to be done on computer. instant restart, hopefully not bricked. will update after im done panicking. (i have backed up system just incase but still...)
wholigan423 said:
sweet, thanks, im testing now. and I already have the latest 1.57.651.1 RUU direct from htc website, but i ran it in twrp and attempted to flash the zip and "error: 7" came up something like your system is old and out of date, but I most definetly have the latest. So now I am extraction in root explorer and gonna over write framework-res.apk with new one...here it goes...lol. DONT do it while your phone is on. NEEDS to be done on computer. instant restart, hopefully not bricked. will update after im done panicking. (i have backed up system just incase but still...)
Click to expand...
Click to collapse
I asked for a recovery log if the flash failed....
And flashing the zip assumes you've already removed encryption and patched your boot.img. I thought those were givens.
EDIT: I can incorporate the boot.img patches into the zip, but won't be able to delete the telephony database, since TWRP can't by default decrypt /data. So then you wouldn't be using the updated APNs, which would make the changes useless.
EDIT 2: And you can replace the framework-res directly on the phone - you just have to do it while in TWRP. That's how I make most edits to my devices.

[TEST] [Flash Zip] [HD 10] [ROOT] All-in-1: The ultimate hacks, tricks & mods zip

I have been on XDA for 2 and a half years or so. I have gained a vast amount of knowledge and skills and its all in part due to XDA and the individuals who spend their time helping others who have made this all possible. The list of those to thank is too long. So before you see what I have to offer below, I want to thank everyone around the forums here for your help, or criticism . Without you guys, I never would've learned what I know today.
Most of my hacks for the HD 10 are spread out around several threads. That makes it hard to keep everyone updated when I find or create new goodies. It also makes it hard for users to find these goodies. This thread aims to solve that problem. From now on, I will include, if possible, my tricks and hacks in this thread. This aims to make searching for and installing these modifications quick and simple.
I have created a flash zip that installs all my goodies and hacks I have come up with so far. I just need so others to test it and make sure the installation process works and everything that is installed works. So please report back your findings so I can remove test from the thread.
***IIf this zip doesn't work or if it fails the worst that can happen is you will have to flash back to fresh stock and start all over and re-root. So make note of your Fire OS version before installing this zip. I am not responsible for anything that doesn't work. If you install this zip, you are doing so at your own risk.***
This zip does NOT contain the Google Play Store. By installing this zip, I assume you already have it installed. ViPER4Android requires an extra step or two and SELinux switch. See below.
Requirements:
- HD 10 with Fire OS 5.6.1.0 or 5.6.2.0
- Rooted with Xposed installed and Flash Fire functioning properly. See here to get it up and running.
What this zip includes:
- *ALL* of my framework-res mods including WiFi and location service optimizations.
- My rewritten Settings.apk which also includes all of my mods.
- Stock Basic Dreams and Photo Table screensaver. This was one of my goals when I first signed up on XDA. I knew what needed to be done to get this to work, I just didn't know how. Finally after nearly 4 to 6 months of reading and testing, I was finally able to edit the framework-res.apk to bring you this and other features. I also had to track down a working Basic Dreams and Photo Table APK. That was half the battle. Go to settings -> display settings -> Daydream. You can choose colors, clock or set some custom photos in Photo Table. Tap three dots in upper right to decide when Daydream turns on. (Note: Photo table requires your images be placed in internal storage in the 'Pictures' folder).
- Google Calendar (assuming you have deleted Amazon's calendar).
- DeskClock latest update and APK for Google Clock (assuming you deleted Amazon's clock).
- Google Contacts Sync Adapter (Once installed, you can delete Amazon's contact sync adapter as seen here. Also for non-root users). This allows for a small amount of visual customization when you pull down the notification bar. When you customize your profile in Google Contacts (also included in this zip) with a photo, the icon in the notification panel will change to whatever you upload as your contacts photo.
- Google Contacts (requires sync adapter listed above).
- Google TTS. You can delete PicoTTS in /system/app once Google TTS is installed. It's very outdated. You can also delete both of the Ivona folders in /system/priv-app. Best to delete app data for all three before deleting.
- Latin IME (AOSP replacement for stock keyboard. Will only work when you delete Amazon's keyboard (com.amazon.redstone), any other keyboard you have installed, then perform a factory reset without installing a new one.
- Stock Android Marshmallow boot animation. The zip replaces the bootanimation binary file in /system/bin/bootanimation with one from from @ggow custom ROM for the Fire 7. Amazon had modified the stock bootanimation binary to force the gold 'fire' boot animation. Doing this made it impossible to customize the boot animation. So I replaced it under the assumption the Fire 7 ROM binary is from an AOSP build and is pretty much universal among most custom ROMs. And it worked!
- Gallery3d. Replaces Amazon Photos (You have to delete Amazon Photos on your own) with library injection so it is fully featured. You can edit all images with a full stock of editing options. (does not set lock screen wallpaper. To change lock screen wallpaper, see here. Requires root). I was able to find the APK and libraries in this thread. The flash zip there doesn't work for our devices so I modified the APK to be more tablet friendly, allowing for scrolling and viewing in landscape mode then added the relevant files to this zip. In the APK, I removed the options for a settings menu, because it doesn't function, but the library does a great job at making up for the loss of it.
- CM Browser. I was able to port over this APK along with CM File Manager, CM Wallpapers, Lock Clock and Trebuchet from an official CM Lollipop ROM for the Amazon HD 8.9.
- CM File Manager (Can replace your favorite root explorer).
- CM Wallpapers. Cyanogenmod actually had a few good wallpapers. I wish they had made their own live ones though.
- CM Lock Clock with weather. (Yahoo weather doesn't function. Use Open Weather and set update interval to 30mins).
- Trebuchet Launcher with basic launcher settings. (You have to delete fire launcher on your own for this to take effect. /system/priv-app/com.amazon.firelauncher)
- Google Calculator (assuming you deleted Amazon's)
- Stock Android Live Wallpapers and Live Wallpaper Picker (doesn't include Androids add on wallpapers. For all of Android's stock live wallpaper add ons and stock wallpaper images, see this thread.
What this zip DOES NOT include or do:
- Google Play store is NOT installed. It is best advised to do this manually. Even flashing Gapps doesn't stop you from needing to tweak Secure Settings a little bit.
- Does not delete or remove any files or folders. It does however overwrite some. The framework-res, FireTabletSettings and bootanimation files will all be overwritten.
- Not yet a custom ROM, but it's close.
-Build.prop edits are not included. My WiFi optimizations and ViPER4Android need a few tweaks. Please see the 'build.prop' section below for details.
Installation:
NOTE: If you only wish to install certain packages or tweaks such as ViPER4Android, see instructions below installation guide.
1. Simply place the DragonMods.zip into internal storage.
2. Open Flash Fire and tap the '+' and select Wipe.
3. Make sure ONLY Dalvik Cache and Cache Partition are selected and tap the check mark in the upper right of the pop-up.
4. Tap the '+' again and tap 'Flash Zip or OTA'
5. From internal storage, select my zip package DragonMods.zip.
6. Tap FLASH and wait for everything to happen. This will take upwards of 10 minutes or more, depending on many variables so be very patient.
Install only select packages:
1. Place DragonMods.zip on your PC desktop. For this I use 7zip for Windows. Right click on the zip file and select 7-zip and open as archive.
2. Double click on system folder then double click on the folder you you want to delete. Example: If you do not want to install my framework-res APK, delete the framework folder. If you don't want CM Browser, delete that folder.
3. Once you are happy with your custom installation, replace the zip on your tablet's internal storage and follow installation instructions above.
ViPER4Android:
I have not included this in my zip for a few reasons. The foremost one being it requires you to delete a couple key files so I would rather you make the choice yourself rather than me doing it for you. I confirm it is full operational and functional and doesn't force close once installed properly. If you aren't convinced, just activate the notification.
1. Download the V4A2.3.4.0 Lollipop.zip provided at the Google Drive link below or go to this thread and download it. Make sure Selinux switch is installed, set to permissive with notification enabled. Also make sure BusyBox is installed.
2. On your tablet, go to /vendor or /system/vendor and tap etc.
3. Back up both of the audio files, audio_effects.conf and audio_policy.conf then delete them from the folder
4. Go to storage -> downloads and tap on the V4A2.3.4.0 Lollipop.zip, system, etc, and extract the two .conf files.
5. Go to the folder they were extracted into and copy both of them to /system/etc, overwriting the ones that are located there. Set the permissions (rw-r--r--) and reboot.
6. Go to downloads again, tap the V4A2.3.4.0 Lollipop.zip and system, app and extract the APK.
7. Create a folder in /system/app titled 'ViPER4Android'. Rename the APK 'ViPER4Android.apk' and paste it into the folder.
8. Set folder permission rwxr-xr-x, APK permission rw-r--r-- and reboot.
9. Open App and follow instructions. Tap upper right for menu and set UI to expert.
build.prop edits:
1. ViPER4Android needs a few tweaks to the build prop. If these variables and values already exist in your build.prop, please change them to the ones below. You can use Build Prop Editor or a root file explorer to make the edit:
Code:
Ipa.decode=false
tunnel.decode=false
lpa.use-stagefright=false
2. The WiFi needs a tiny bit more tweaking here too. Locate the following line in /system/build.prop and add the value to it as seen below (there is currently no value set and the best ones are 1, 6 or 11. You can use any number as long as it's 11 or less.
Code:
ro.wifi.channels=11
3. Locate the following lines in your build.prop. Back them up to a text file then delete both lines (numbers might be different):
Code:
wifi rssi->bar thresholds
persist.wifi.rssi.thresholds=-84,-75,-66,-55
Downloads:
DragonMods.zip (the main zip you need) - Current as of November 16, 2018
DragonMods5-6-2-0.zip (for users on FireOS 5.6.2.0)
V4A2.3.4.0_Lollipop.zip
That's all for now. This includes pretty much every hack, trick and tweak I have been able to achieve on these tablets so far. I hope you enjoy all of these and watch out for more of my hacks. Thank you everyone for making all of this possible! Don't forget to hit the thank button
Change Log
- November 22, 2018: Updated links to reflect the following: Fixed issue with Trebuchet launcher missing from zip by readding it to the folder. I don't know How I missed that. Replaced google Clock with correct APK. I meant to put in the DeskClock available from the Play Store. If anyone would like a zip containing the CM/AOSP DeskClock that changes colors as the day and night change, let me know and I will upload the APK. The reason for this mess: I used the wrong zip template I have for this package. The one with the mess was intended for my personal device. My apologies.
Problems:
-If you delete Amazon photos, when you tap settings, display settings, wallpaper, it will kick you back to main settings. Solution: download Amazon photos from the play store as a user app then do this:
Code:
adb shell
su
pm disable com.amazon.photos
pm clear com.amazon.photos
.
Function returns.
not sure how to install this
darkfortedx said:
not sure how to install this
Click to expand...
Click to collapse
Flash it in flash fire...says that in the OP
Be advised
I just downloaded it and realized I didn't put th right folder in for Trebuchet launcher so the folder is empty. So don't flash this zip until I can fix it when I get home later.
Update November 22, 2018 1:42PM:
- Fixed issue regarding launcher. See change log at the end of the OP.
after changing the permissions for /system/vendor/etc to rw-r-r and rebooting, get the boot screen then boot to quick flash on desktop then to black, can only get the power down window to show when holding power. I'm trying to change the permissions back in adb. . can you please send code to do this correctly? if this is the correct approach. i backed up the 2 files in es file explored back up folder.
I got it....
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
chmod 755 /system/vendor/etc
this worked... took me a while to figure it out. But it's all part of learning!
---------- Post added at 01:37 AM ---------- Previous post was at 01:33 AM ----------
I missed that it was for the two files not the folder lol....
nikothebarber said:
I got it....
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
chmod 755 /system/vendor/etc
this worked... took me a while to figure it out. But it's all part of learning!
---------- Post added at 01:37 AM ---------- Previous post was at 01:33 AM ----------
I missed that it was for the two files not the folder lol....
Click to expand...
Click to collapse
I have an update of this I'll upload later. I just want to make sure everything works as advertised. Apologies if not. I made a stupid mistake earlier that I fixed but might have missed a small thing or two.
Sent from my MotoG3 using XDA Labs
When I tried to flash it if flashfire, it will juz stuck in the first black screen for over 15 mins.
I can juz simply quit the app and everything remains the same and work fine though.
What would possibly be the problem?
 @DragonFire1024
Tried to Install ViPER4Android with the steps and files you linked but was unsuccessful. When I bring up the Driver status and they all say no to Enabled. It already prompted me to install drivers which I did and re booted and still no go. I'm familiar with installing ViPER4Android and have it installed on my phone but not able to get it going in HD10. This tablet needs some way to higher the sound, sound on this tablet SUCKS. Any help would be greatly appreciated.
Touchpad64gb said:
Tried to Install ViPER4Android with the steps and files you linked but was unsuccessful. When I bring up the Driver status and they all say no to Enabled. It already prompted me to install drivers which I did and re booted and still no go. I'm familiar with installing ViPER4Android and have it installed on my phone but not able to get it going in HD10. This tablet needs some way to higher the sound, sound on this tablet SUCKS. Any help would be greatly appreciated.
Click to expand...
Click to collapse
Sorry I've been very sick the last several days and have spent most of it in bed. Until I can look and see what's wrong, I can suggest you try 'volume boost by goodev' on the play store. You may need to make it a system app though.
Sent from my MotoG3 using XDA Labs
jeffreyyip314 said:
When I tried to flash it if flashfire, it will juz stuck in the first black screen for over 15 mins.
I can juz simply quit the app and everything remains the same and work fine though.
What would possibly be the problem?
@DragonFire1024
Click to expand...
Click to collapse
Flash fire will take approx. 10+ mins sometimes to go through the files then about the same time until the red flash fire bar appears at the top. With flash fire you just have to wait.
Sent from my MotoG3 using XDA Labs
DragonFire1024 said:
Sorry I've been very sick the last several days and have spent most of it in bed. Until I can look and see what's wrong, I can suggest you try 'volume boost by goodev' on the play store. You may need to make it a system app though.
Sent from my MotoG3 using XDA Labs
Click to expand...
Click to collapse
Thanks for your response, get some rest and I'll patiently wait to see what you come up with...Thanks again
Touchpad64gb said:
Thanks for your response, get some rest and I'll patiently wait to see what you come up with...Thanks again
Click to expand...
Click to collapse
Try deleting the viper folder if you installed it via a file explorer. Reboot then install viper as a regular app. Don't open it. In a root file explorer go to /data/app and copy viper folder to /system/app then reboot.
Sent from my MotoG3 using XDA Labs
DragonFire1024 said:
Try deleting the viper folder if you installed it via a file explorer. Reboot then install viper as a regular app. Don't open it. In a root file explorer go to /data/app and copy viper folder to /system/app then reboot.
Sent from my MotoG3 using XDA Labs
Click to expand...
Click to collapse
I did that the first time. I had to enable Selinux Switch and enable Permissive which it seems like you have to enable each time you want to use Viper. The Driver Status now says NEON enabled, Enabled=Yes, Status=Normal, Audio Format= Supported but it still sounds like it makes no difference in boost in volume. The App you suggested Volume Booster works great. On my phone I can notice the difference on Volume quality and boost but not on the HD10 using Viper. What settings are you using? Maybe it's the settings.
Touchpad64gb said:
I did that the first time. I had to enable Selinux Switch and enable Permissive which it seems like you have to enable each time you want to use Viper. The Driver Status now says NEON enabled, Enabled=Yes, Status=Normal, Audio Format= Supported but it still sounds like it makes no difference in boost in volume. The App you suggested Volume Booster works great. On my phone I can notice the difference on Volume quality and boost but not on the HD10 using Viper. What settings are you using? Maybe it's the settings.
Click to expand...
Click to collapse
Did you rename the audio.conf files in vendor?
Sent from my MotoG3 using XDA Labs
DragonFire1024 said:
Did you rename the audio.conf files in vendor?
Sent from my MotoG3 using XDA Labs
Click to expand...
Click to collapse
No, I didn't see any instructions to do so. Was I supposed to?
Touchpad64gb said:
No, I didn't see any instructions to do so. Was I supposed to?
Click to expand...
Click to collapse
Yes. Rename them. But you should do it before installing viper.
Sent from my MotoG3 using XDA Labs
DragonFire1024 said:
Yes. Rename them. But you should do it before installing viper.
Sent from my MotoG3 using XDA Labs
Click to expand...
Click to collapse
The original files were named the same as the files copied over that's why you have to allow it to overwrite. Original files and copied files were both named audio_effects.conf & audio_policy.conf. I also edited the build prop entries you mentioned. Can you share your build prop file so I can compare your entries to mine? What were the names you change audio_effects.conf & audio_policy.conf to?
Touchpad64gb said:
The original files were named the same as the files copied over that's why you have to allow it to overwrite. Original files and copied files were both named audio_effects.conf & audio_policy.conf. I also edited the build prop entries you mentioned. Can you share your build prop file so I can compare your entries to mine? What were the names you change audio_effects.conf & audio_policy.conf to?
Click to expand...
Click to collapse
Just put a _ at the end of .conf. I didn't add the removal of the vendor files in the zip and I think I stated that in the OP.
Sent from my MotoG3 using XDA Labs

[Q] Pushing modified framework-res.apk?

Hi, I'm trying to modify /system/framework/framework-res.apk (on the stock Samsung Oreo ROM), more exactly config_locationProviderPackageNames in res/values/arrays.xml so that I can add org.microg.nlp as location provider. I've used the latest apktool (2.3.4) to unpack and repack the apk. I'm replacing it from TWRP and I checked that it has the same owner and rights. And after rebooting the device never finishes booting up (stuck at Samsung logo and blue led).
If I boot back to recovery and put back the original framework-res.apk the system boots fine.
What else do I need to do to make it accept the modified framework?
hey
Are you ONLY modifying the apk?
I would say there is a lot of things to check. It could be that the apk is being rejected by your handling of it. Compare both versions by 7zip lz4 without extracting. Try and use the best tools during the process.
Also more than likely you're conflicting with a service or permission that a perfect apk can't fix.
Have you tried a search in your ROM to see if any files might be associated with the result you want?
Stuff like...
com.android.location.provider.jar
com.android.location.provider.odex
com.android.location.provider.xml
Try doing all the work from your phone without any windows apps. FX explorer and symlink the apk.
Now that everything I said was probably wrong, someone else can tell you how. I'd try fx and symlink, though. It may just align the planets for you
I'm only modifying one XML resource file, but I don't know what else apktool is doing to the apk.
I'm replacing the original framework-res.apk from TWRP, by cat-ing the modified apk over the original, and I've double checked that the ownership and permissions are unchanged.
I guess I can try using another unpack/repack tool and see if it turns out any better, but I've been told that apktool is as good as it gets.
Perhaps it's because the ROM expects the apk to be signed with a certain key? I don't suppose that the key used by Samsung is available somewhere inside the ROM is it?
​
wirespot said:
I'm only modifying one XML resource file, but I don't know what else apktool is doing to the apk.
I'm replacing the original framework-res.apk from TWRP, by cat-ing the modified apk over the original, and I've double checked that the ownership and permissions are unchanged.
I guess I can try using another unpack/repack tool and see if it turns out any better, but I've been told that apktool is as good as it gets.
Perhaps it's because the ROM expects the apk to be signed with a certain key? I don't suppose that the key used by Samsung is available somewhere inside the ROM is it?
Click to expand...
Click to collapse
@wirespot - Did you ever solve the problem you described in this thread?
Not really. My last attempt was to use Runtime Resource Overlays (RROs) to override certain framework values in order to allow org.microg.nlp to run side by side with Google's service.
I will provide them below but it ultimately didn't work. The RRO apk was installed correctly, I could access the NLP settings in the system settings but the main app still could not detect or connect to the service and none of the apps that use location would work.
If anybody else wants to build or use the RRO apk I'm attaching the relevant files as well as the apk. Please note that the built apk only has "org.microg.nlp" as service in arrays.xml (but I provide an arrays.xml with all three services).
apktool.yml is provided as txt file because it wouldn't let me upload it otherwise, remove the .txt. It's used if you build the package with apktool. Remember that you'll also have to generate your own certificate and sign the package in order to install it.
Also some links that may help:
https://forum.xda-developers.com/t/guide-how-to-make-gsis-overlay-file-for-your-phone.3878974/
https://github.com/ReinhardStrauch/framework-res-overlay-sample
https://android.stackexchange.com/questions/110927/how-to-mount-system-rewritable-or-read-only-rw-ro
https://source.android.com/devices/architecture/rros#configuring-overlays
https://source.android.com/devices/automotive/hmi/car_ui/appendix
https://source.android.com/devices/automotive/hmi/car_ui/rro#step_6_dump_the_idmap
https://dzone.com/articles/customizing-android-devices-using-the-runtime-reso
https://dzone.com/articles/android-solution-install-parse-1
https://stackoverflow.com/questions...s-not-recognized-internal-or-external-command
https://github.com/lineageos4microg/android_prebuilts_prebuiltapks/issues/22
wirespot said:
I guess I can try using another unpack/repack tool and see if it turns out any better, but I've been told that apktool is as good as it gets.
Click to expand...
Click to collapse
For decompiling and building Android Oreo, I prefer version 2.3.1 of APKTool to other versions of APKTools.
wirespot said:
I'm only modifying one XML resource file, but I don't know what else apktool is doing to the apk.
...
Perhaps it's because the ROM expects the apk to be signed with a certain key? I don't suppose that the key used by Samsung is available somewhere inside the ROM is it?
Click to expand...
Click to collapse
wirespot said:
Hi, I'm trying to modify /system/framework/framework-res.apk (on the stock Samsung Oreo ROM), more exactly config_locationProviderPackageNames in res/values/arrays.xml so that I can add org.microg.nlp as location provider.
What else do I need to do to make it accept the modified framework?
Click to expand...
Click to collapse
I have not tried modifying framework-res.apk of a Samsung Android Oreo nor have I particularly tried the location services mod you are attempting (though I might get around to trying it someday) and do not know if it is valid to to accomplish what you want with it, but believe that the process should be similar to modding the file on LG Android Oreo. I shall try to guide you to how to prepare a framework-res.apk that is proper.
To answer your question about expecting a certain key. The answer to that is that that is usually the case. The signing scheme checks on system apps; however is usually not as thorough as non-system apps. framework-res.apk is also special in that it is not a running app and is instead used as a cache of system resources and system meta information. In the past, before Android Oreo, a rebuilt framework-res.apk may be made to work simply by including original signature files (META-INF) and corresponding AndroidManfest.xml file from the original framework-res.apk into the rebuilt fraemwork-res.apk file. The system would evaluate these files, and pass a check for valid platform signature. With Android Oreo, it appears that there is an additional check that was not present in the past; my best guess is that the system is checking for the V2 signing scheme signing block within the V2 Signing Scheme APK file structure. The check does not, however, thoroughly validate the signing block information.
Your mod seems rather simple and, given your previous posts, would only involve a modification to framework-res.apk "resources.arsc" member file (which contains the compiled "res/values/arrays.xml" file). If the rebuilt "resources.arsc" can be used to update ("Update" is an actual ZIP archive operation) the original framework-res.apk's member file, the updated framework-res.apk should work (and remained zip-aligned if originally zip-aligned), so long as the packed file size of the updated member file is less than or equal to the packed size of the original member file, plus up to 4 bytes depending on proximity to the next member file data if original framework-res.apk is zip-aligned as expected. If the packed modified member file(s) are larger, the original APK file structure would likely not be preserved, and a different method might have to be used. Also note that 7-Zip is not reasonable software to use for this, despite it being included with many tools on XDA to modify APK files; the software has had a history of rearranging unnecessarily zip file table entries when a change is made to an archive. Use a different tool that does not do this, such as WinRAR (I have tested version 5.61).
For normal apps, one may not copy over "resources.arsc" or resources from two different app builds and have things work correctly when the app runs; one would also need to make corresponding changes in the *.dex APK member files. framework-res.apk, not being an app the runs, has no corresponding *.dex files, and one need not worry about corrupting the relationship between the *.dex files and the resource files because none exists to corrupt.

Categories

Resources