I am trying to create a custom theme, by modifying the framework-res.apk. I have been successful in porting some really cool .png files, but my problems start with the de-compiling & recompiling the .apk so I can modify the .xml & .9.png files. It seems every time I recompile my .apk it sends me in to a boot loop. I have used both APKTool and APK Manager with no luck. Here are my steps:
APK Manager:
1. Use a root explorer to copy the framework-res.apk.
2. Paste the file on my sd card.
3. Copy the file and paste it in the "place-apk-here-for-modding" folder.
4. Choose option 9 for compile.
5. Open the .xml file with Notepad++.
6. Recompile .apk using option 11.
7. Yes to "is this a system file?"
8. Yes to "keep original files & signatures"
9. Delete the files I modified from the "keep" folder and the resources.ascr file.
10. Finish the build of the .apk.
11. Copy & paste the modified .apk back to my sd card.
12. Rename the file from unsigned-framework-res.apk to framework-res.apk.
13. Use root explorer to cut & paste the modified to my /system/framework folder.
14. Reboot.
I now end up in a boot loop what am I doing wrong??
Rockstar52 said:
I am trying to create a custom theme, by modifying the framework-res.apk. I have been successful in porting some really cool .png files, but my problems start with the de-compiling & recompiling the .apk so I can modify the .xml & .9.png files. It seems every time I recompile my .apk it sends me in to a boot loop. I have used both APKTool and APK Manager with no luck. Here are my steps:
APK Manager:
1. Use a root explorer to copy the framework-res.apk.
2. Paste the file on my sd card.
3. Copy the file and paste it in the "place-apk-here-for-modding" folder.
4. Choose option 9 for compile.
5. Open the .xml file with Notepad++.
6. Recompile .apk using option 11.
7. Yes to "is this a system file?"
8. Yes to "keep original files & signatures"
9. Delete the files I modified from the "keep" folder and the resources.ascr file.
10. Finish the build of the .apk.
11. Copy & paste the modified .apk back to my sd card.
12. Rename the file from unsigned-framework-res.apk to framework-res.apk.
13. Use root explorer to cut & paste the modified to my /system/framework folder.
14. Reboot.
I now end up in a boot loop what am I doing wrong??
Click to expand...
Click to collapse
You have to sign it with 12
Lenn said:
You have to sign it with 12
Click to expand...
Click to collapse
Tried it, still boot loops at the Archos screen. I then have to do a complete format & wipe reinstalling the SDK, firmware, and the root files. I don't get it.
Lenn said:
You have to sign it with 12
Click to expand...
Click to collapse
Do not sign frameworks! How many time do I have to say this! System apps do not get signed...
Now, as far as the framework, there's two things to check. First, what XMLs have you edited? Second, instead of using root explorer to copy the framework, connect to a pc and use adb to perform these commands:
Code:
su
stop
cp /system/framework/framework-res.apk /system/framework/framework-res.old
cp /sdcard/framework-res.apk /system/framework/framework-res.apk
chmod 644 /system/framework/framework-res.apk
sync
start
If it continues boot-looping, you will still be connected through adb, so you just
Code:
stop
cp /system/framework/framework-res.old /system/framework/framework-res.apk
sync
start
and it will come back up without having to reformat or anything.
If it's bootlooping even when you use the adb method to copy, then your XMLs must be reencoding incorrectly. Post a list of all XMLs you have changed.
msticninja said:
Do not sign frameworks! How many time do I have to say this! System apps do not get signed...
Now, as far as the framework, there's two things to check. First, what XMLs have you edited? Second, instead of using root explorer to copy the framework, connect to a pc and use adb to perform these commands:
Code:
su
stop
cp /system/framework/framework-res.apk /system/framework/framework-res.old
cp /sdcard/framework-res.apk /system/framework/framework-res.apk
chmod 644 /system/framework/framework-res.apk
sync
start
If it continues boot-looping, you will still be connected through adb, so you just
Code:
stop
cp /system/framework/framework-res.old /system/framework/framework-res.apk
sync
start
and it will come back up without having to reformat or anything.
If it's bootlooping even when you use the adb method to copy, then your XMLs must be reencoding incorrectly. Post a list of all XMLs you have changed.
Click to expand...
Click to collapse
I do have my system set up for adb, but for some reason it don't read my A101, it works fine for my phone. The device manager shows my A101 listed as a Gen8 ADB Device, but it don't show up when i use the command: adb devices.
With your help I did manage to replace all of the stock .png's. I also found that I don't need to edit the .xml files to do what I want to. Thanks, for so much of your help! Although I would like to replace the .9.png's also and I understand that you must de-compile the .apk in order to do so. this way I could build a custom theme.
Rockstar52 said:
I do have my system set up for adb, but for some reason it don't read my A101, it works fine for my phone. The device manager shows my A101 listed as a Gen8 ADB Device, but it don't show up when i use the command: adb devices.
With your help I did manage to replace all of the stock .png's. I also found that I don't need to edit the .xml files to do what I want to. Thanks, for so much of your help! Although I would like to replace the .9.png's also and I understand that you must de-compile the .apk in order to do so. this way I could build a custom theme.
Click to expand...
Click to collapse
Have you done this yet(from the archos support site):
Windows: echo 0x0e79 >> "%USERPROFILE%\.android\adb_usb.ini"
Macos: echo "0x0e79" >> ~/.android/adb_usb.ini
Linux: echo "0x0e79" >> ~/.android/adb_usb.ini
And disabled/reenabled debugging on the tablet?
msticninja said:
Have you done this yet(from the archos support site):
Windows: echo 0x0e79 >> "%USERPROFILE%\.android\adb_usb.ini"
Macos: echo "0x0e79" >> ~/.android/adb_usb.ini
Linux: echo "0x0e79" >> ~/.android/adb_usb.ini
And disabled/reenabled debugging on the tablet?
Click to expand...
Click to collapse
No but I will give it a try and report back.
None of my changes are taking effect??!
Still not working, just a question. I am running Win7 64bit could this be the problem?? Do I need to be on a 32bit system to do the decompiling, compiling?
Tried on my wife's 32bit system still the same. For some reason it's not compiling the .apk right.
Rockstar52 said:
I am trying to create a custom theme, by modifying the framework-res.apk. I have been successful in porting some really cool .png files, but my problems start with the de-compiling & recompiling the .apk so I can modify the .xml & .9.png files. It seems every time I recompile my .apk it sends me in to a boot loop. I have used both APKTool and APK Manager with no luck. Here are my steps:
APK Manager:
1. Use a root explorer to copy the framework-res.apk.
2. Paste the file on my sd card.
3. Copy the file and paste it in the "place-apk-here-for-modding" folder.
4. Choose option 9 for compile.
5. Open the .xml file with Notepad++.
6. Recompile .apk using option 11.
7. Yes to "is this a system file?"
8. Yes to "keep original files & signatures"
9. Delete the files I modified from the "keep" folder and the resources.ascr file.
10. Finish the build of the .apk.
11. Copy & paste the modified .apk back to my sd card.
12. Rename the file from unsigned-framework-res.apk to framework-res.apk.
13. Use root explorer to cut & paste the modified to my /system/framework folder.
14. Reboot.
I now end up in a boot loop what am I doing wrong??
Click to expand...
Click to collapse
With ApkManager did you delete the 'public.xml' folder in ..\res\values ?
waterpolo said:
With ApkManager did you delete the 'public.xml' folder in ..\res\values ?
Click to expand...
Click to collapse
No, I did not. Was I supposed to?
EDIT: Ok I did some digging and what I have found is that the file size of the original framework-res.apk is 9.32mb. Once I rebuild it whether I modified anything or not the rebuilt .apk is only 7.34mb. Upon further inspection it seems to leave out all of the "value" named folders from the newly built .apk, and it does this whether I use APKTool or APK Manager(even though I say keep files). Has anyone else had this problem?
IM having the same problem,no solution though ! i edited bools.xml but after recompiling its not there ! Anyone solution ?
Related
Quick question. It says put the file/folder in the root of your SD Card, Boot into recovery, then flash the zip file, for example Gingerbread Keyboard, but every time you boot into recovery, it just brings up Windows Mobile, help?
Gv2004 said:
Quick question. It says put the file/folder in the root of your SD Card, Boot into recovery, then flash the zip file, for example Gingerbread Keyboard, but every time you boot into recovery, it just brings up Windows Mobile, help?
Click to expand...
Click to collapse
There is no such thing as "Recovery" for us since we run off the SD card. You will have to use something like "Root Explorer" or something with root rights and copy and paste it to system>>app. Be sure to copy the lib that comes with the keyboard. That one will go into System>>lib. If you have any troubles you can PM me if you like.
P.S. Questions should go in the Q&A section, just a heads up man.
Forgot to mention. When I say copy and paste, I mean the actual app and lib that is inside the folder. You will have to unzip it first and you will see what I am talking about once you see it. One with say .apk at the end (which is the app) and one will have a .lib at the end which is the lib file.
I unzipped the file, I have a folder called "App", which as the .apk, and a folder called "Lib" which has the ".lib", so I want to copy and paste the .lib into system/lib, and the app in system/app, do I put both files on the root of my SD card first? and once I copy and past both into Root Explorer System/lib and System/app, what do I do next?
Gv2004 said:
I unzipped the file, I have a folder called "App", which as the .apk, and a folder called "Lib" which has the ".lib", so I want to copy and paste the .lib into system/lib, and the app in system/app, do I put both files on the root of my SD card first? and once I copy and past both into Root Explorer System/lib and System/app, what do I do next?
Click to expand...
Click to collapse
just reboot after that, infact just keep going on market and d/l a few things and it should update to the newer version itself, hope this helps.
just use titanium backup, I backed up the keyboard along with my apps so if I switched builds and it does't have the gingerbread keyboard, it will add it when do an app restore. One thing you have to manually select the keyboard from the app list, long press and backup.
just do an adb push it is the easiest way.
download the gingerbread keyboard (LatinIME.apk) and the lib file (libjni_latinime.so)
(assuming you have the sdk installed and you have usb debug turned on)
in command prompt, navigate to the folder that contain these two files.
then type: adb push Latinime.apk /system/app/ (press enter)
then type: adb push libjni_latinime.so /system/lib/ (press enter)
then you should have the new keyboard installed!
Hey Guys,
This is a small tutorial for those who want to Deodex a Single Application manually.
Deodex And Odex:
The APKs or JARs of Android contain certain .odex files whose supposed function is to save space. These ‘odex’ files are actually collections of parts of an application that are optimized before booting. Doing so speeds up the boot process, as it preloads part of an application. On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.It will make your faster theoretically even though it would be too small to notice.When deodexing the .odex file is changed to classes.dex file. Deodexing also allows us to theme and install mods.Many of the Stock Roms and CyanogenMod 7 roms are now odexed and to theme them or to add mods we need to have it deodexed. So lets learn how!!
Deodexing:
Preparation:
Hope you have Java Development Kit installed on your computer to run the scripts.Get it from: here.Select you OS from the list and download the suitable package.(We would need the full thing and not the Demo versions.)
Download the Attached .zip File
Extract its Contents to a Folder.(Extracting to a New Folder in the Desktop is Preferred for Ease)
We will name this Folder with the Extracted Contents as Deodex(or any name that you like)
Procedure And Explanations:
First of all copy the Application file that you need to Deodex.A Android Application file is the .apk file found in the system/app directory.Copy the .apk file and the .odex file of the application that you want to Deodex and paste in the Deodex folder(Folder to which the attachment's contents was extracted)
Now go to your system/framework directory and you can see a lot of .jar and .odex files in this folder and copy all its contents to the folder to which the attachment's contents was extracted.
Before doing anything more backup your rom and the application file(If anything goes wrong you can use it then)
To Deodex a application you need to specify its "BOOTCLASSPATH" files. BOOTCLASSPATH are files that contain the classes for an application or in simple language BOOTCLASSPATH files are those files that are required by a android application to run properly. They are actually those files that we have copied from the system/framework directory to our Deodex folder. There are mainly 5 BOOTCLASSPATH files for every android rom.They are: android.policy.jar , core.jar , bouncycastle.jar , ext.jar , framework.jar
All apps are dependent on these files but some apps are dependent on some other BOOTCLASSPATH files.So sometimes the problem is that we actually dont know to which of these files is a particular app dependent to.So we will have to specify all the BOOTCLASSPATH files or the .jar files in the system/framework directory.So problem solved!! Now enough with the theory class,lets proceed to the practical classes!!!!!
Open Command Prompt.
As an example we will Deodex Settings.apk
Type in this command in Command Prompt:
Code:
java -Xmx1024m -jar baksmali.jar -c :am.jar:android.policy.jar:android.test.runner.jar:bmgr.jar:bouncycastle.jar:
com.android.location.provider.jar:com.google.android.maps.jar:sonyericsson.suquashi.jar:
core.jar:corej-unit.jar:ext.jar:framework.jar:ime.jar:input.jar:java.awt.jar:javax.obex.jar:monkey.jar:pm.jar:
:services.jar:sqlite-jdbc.jar:svc.jar -x Settings.odex
Here:
-Xmx says the heap memory needed.In the above command it is given to 1024m. Sometimes deodexing may have errors due to the low heap memory.So set it to 1024m itself.
-jar baksmali.jar says the program to run baksmali.jar file.
-c says that the following files are the BOOTCLASSPATH files of the application we are deodexing.
-x says the name of the application that we are deodexing.It should end with .odex extension.
Note:
When you specify the .jar files just add all those .jar file names in the system/framework folder(only add the .jar files and not the .odex files).Ensure that you have added the .jar extension at the end of each file. Separate the .jar files with colon " : " symbol.
If you have made no spelling errors and have done everything mentioned you will get a folder named "out".
Now we have to smali the out folder into classes.dex file.
So again type in the Command Prompt:
Code:
java -Xmx1024m -jar smali.jar out -o classes.dex
Here:
-o says what the output file should me named to.Dont rename the classes.dex file into anything else.
Now you will have a file in our Deodex folder(Folder to which the attachment's contents was extracted) called "classes.dex".
Finalizing:
Now open the application's .apk file(which you were trying to deodex) with WinRar.
Move the classes.dex file that you got to this .apk file.(Just drag and drop it to the .apk file opened with WinRar.)
Now you will have a deodexed .apk file.
Note: After deodexing you will have to delete the .odex file of the particular application which you had deodexed.
I will make a guide to Odex back a Deodexed application soon!
Hope this guide helps you....
For any doubts or questions please post it here in this forum and I will try to attend to it.........
Re: Deodex A Single Application
Thanks bro..
Good tut..
sent from my phone using hands and brain...
thanks
Re: Deodex A Single Application
Good tut...
But quite long
Sent from my W8 using xda app-developers app
hey...nice tutorial and nice explanation :good:
thanks
Re: Deodex A Single Application
But helpful too...
sent from my phone using hands and brain...
Gogeta said:
Good tut...
But quite long
Sent from my W8 using xda app-developers app
Click to expand...
Click to collapse
I made it long so that everyone understands.Even those who are very new to android
i'm stucked when i try to deodex settings.odex..
any suggestions???
Hidzrie said:
i'm stucked when i try to deodex settings.odex..
any suggestions???
Click to expand...
Click to collapse
you must deodex
settings.apk + settings.odex.....
i've already follow exactly like the tutorial above but cmd just stucked...
in 'out' folder there are \com\android\settings\ folder and these files were in it and nothing more:
AccessibilitySettings$1.smali
AccessibilitySettings$2.smali
AccessibilitySettings$3.smali
AccessibilitySettings$4.smali
AccessibilitySettings$5.smali
AccessibilitySettings$6.smali
AccessibilitySettings.smali
please anyone help..
Credit/thanks: http://forum.xda-developers.com/showthread.php?t=1208320 ?
Hidzrie said:
i've already follow exactly like the tutorial above but cmd just stucked...
in 'out' folder there are \com\android\settings\ folder and these files were in it and nothing more:
AccessibilitySettings$1.smali
AccessibilitySettings$2.smali
AccessibilitySettings$3.smali
AccessibilitySettings$4.smali
AccessibilitySettings$5.smali
AccessibilitySettings$6.smali
AccessibilitySettings.smali
please anyone help..
Click to expand...
Click to collapse
follow the highlighted lines and try again and deodexing takes time according to your computer's ram.so be patient.if you still cant do it then just upload the system=>framework folder and the app you want to deodex and its odex file and Private Message me the links. I will check whats the problem.
L_S said:
Credit/thanks: http://forum.xda-developers.com/showthread.php?t=1208320 ?
Click to expand...
Click to collapse
this can be found in the android sources site but it not so easy to understand for beginners so i made it a little easier to understand and i didnt refer that guide because all is clearly written in the android sources site.
i understood why some of you are making mistakes when trying to deodex a apk or jar file.
its because you are copying exactly the same bootclasspath files that i specified in the guide.
it varies depending on your device and your rom. So I have made some changes in my guide.some lines are highlighted in red.
follow those lines.
Hidzrie said:
i'm stucked when i try to deodex settings.odex..
any suggestions???
Click to expand...
Click to collapse
Specify your device and rom that you use. Are you sure that you followed what i told itself? Try it once more as I have made some more changes in the guide to help you guys.
Still if you cant do it then just copy your framework folder and the apk and .odex file that you want to deodex and pm me. I will try to deodex it.
fotak-x said:
you must deodex
settings.apk + settings.odex.....
Click to expand...
Click to collapse
no fotak we dont need to deodex settings.apk. We only need to deodex the .odex file but we will have to keep the apk file also in the same folder.
Leon1234 said:
Specify your device and rom that you use. Are you sure that you followed what i told itself? Try it once more as I have made some more changes in the guide to help you guys.
Still if you cant do it then just copy your framework folder and the apk and .odex file that you want to deodex and pm me. I will try to deodex it.
Click to expand...
Click to collapse
I'm using samsung gt-s5830i.. Rom simplicity v4..
I've tried like many times..still wont work..
Hidzrie said:
I'm using samsung gt-s5830i.. Rom simplicity v4..
I've tried like many times..still wont work..
Click to expand...
Click to collapse
dont worry,we can figure it our!
what error are you getting in command prompt?
can you give the lines that come up in command prompt?
Leon1234 said:
dont worry,we can figure it our!
what error are you getting in command prompt?
can you give the lines that come up in command prompt?
Click to expand...
Click to collapse
There are no error appear on cmd..
After I insert a command to deodex settings.odex and press enter, it just like nothing happen...
There are no error appear on cmd..
After I insert a command to deodex settings.odex and press enter, it just like nothing happen...
Click to expand...
Click to collapse
you will have to wait for some time when deodexing depending on the ram of your device.
what is the ram of your computer?
and do you have java 7?
Hey guys! Since deodexing older Z series phones with this latest update has been a pain in the *** for deodexing here's a detailed guide on how to get a correctly deodexed system folder and avoid bootloops...
First part: Getting files from the phone.
To get the files from our phone first we'll have to install ADB Drivers, you can find them here on xda or go google it. Once you have adb drivers installed go to the folder where you installed them. Press Shift while right clicking on the folder and select Open command promp.
Here are the commands to get the folders with apk, note that you'll find them in your C:\ folder.
- To get app folder:
Code:
adb pull /system/app /app/
- To get framework folder:
Code:
adb pull /system/framework /framework/
- To get priv-app folder:
Code:
adb pull /system/priv-app /priv-app/
You will get apk's only on app and priv-app folders, the only folder with odex files (arm folder) will be framework.
------------------------------------------------------------------------------------------------------------
Now let's go for sqsh files to get odex files for app and priv-app folders.
- To get odex.app.sqsh:
Code:
adb pull /system/odex.app.sqsh
- To get odex.app.sqsh:
Code:
adb pull /system/odex.priv-app.sqsh
You'll find these files inside the same folder where adb.exe is
Second part: Unpacking .SQSH files
To resume a little, you may refer to IaguCool's guide
Once you have downloaded SquashFS Tool, move both .sqsh files to the folder.
When you have opened the command promp use these codes to extract files...
> To get odex files for app folder (After extracting rename the squash-root folder to app):
Code:
unsquashfs -no-xattrs odex.app.sqsh
> To get odex files for priv-app folder (After extracting rename the squash-root folder to priv-app):
Code:
unsquashfs -no-xattrs odex.priv-app.sqsh
Third part: Merging files
Create a folder named system and move app, framework and priv-app folders from C:\ to the new folder.
After that grab the folders you extracted with SquashFS Tool and merge them with app and priv-app folder.
After doing this move SemcGenericUxpRes folder to priv-app folder
Fourth part: Deodexing
Download JoelDroid's Lollipop Batch Deodexer and replace the file named oat2dex.jar found on /tool folder with this one: Latest oat2dex
Then open the program and select the /system/ you've created to start the process.
Once it has finished, grab SemcGenericUxpRes folder and move it back to /framework
Now you can either replace folders manually on your phone using TWRP by moving the deodexed system folder to your phone and mounting System partition, erasing app, framework and priv-app folder and then pasting the ones from the deodexed folder. OR make a flasheable zip.
How to manually move folders to /system partition
> Boot to recovery (TWRP MANDATORY)
> Mount system partition
> Go to file manager and go to: /system/ partition
> Manually delete app, framework and priv-app folder (you must first open the folder, then open the menu and delete)
> Then go to where you put the deodexed folders, open app folder, open menu, choose copy and paste on /system/ folder, same process for priv-app and framework.
> Once you're done go to Wipe option, choose advanced wipe and wipe Dalvik-cache and cache.
> Boot and you're good to go! No need to fix permissions
In both cases, after you have either flashed or replaced the folders, go to Wipe option > Advanced Wipe and clean Dalvik-cache and cache to avoid problems.
Does it have issue with OpenGL and Play Store?
Sent from my D6503 using Tapatalk
RyTekk said:
Does it have issue with OpenGL and Play Store?
Sent from my D6503 using Tapatalk
Click to expand...
Click to collapse
No, that's why you need to download latest oat2dex version See deodexing part
Why not just copy App, priv-app and framework folder from system and deodex them?
Black_Eyes said:
Why not just copy App, priv-app and framework folder from system and deodex them?
Click to expand...
Click to collapse
Cause you get bootloop if you just replace odex files present in app and priv-app (Especially after replacing the deodexed framework folder in system).
If you extract via adb you'll get app and priv-app folders clean, without odex files. That way you can make a cleaner deodex since you don't replace .odex files, just merge both folders in one, app with .apks and app with .odex
I wish it was as easy as in 5.0.2 but no, on 5.1.1 is way more complicated to have a properly deodexed system.
BTW i've tried by deodexing manually by copying folder and then boot into recovery delete app, priv-app and framework folder via TWRP file manager and then flashed the deodexed zip and it worked
C:\adb>adb pull /system/odex.app.sqsh
remote object '/system/odex.app.sqsh' does not exist
C:\adb>adb pull /system/odex.priv-app.sqsh
remote object '/system/odex.priv-app.sqsh' does not exist
help
Everything was fine except google play services, it crashes every time i want add account
Perfect work @xkeita ,
I saw you asking so many guys about deodexing .222 firmware these days and finally you managed!
Great work, great tutorial. I will try asap.
could you provide the zip? or the zip from this thread http://forum.xda-developers.com/sprint-galaxy-s5/general/how-to-deodex-lollipop-rom-t3065596 can be used?
zyclops1 said:
C:\adb>adb pull /system/odex.app.sqsh
remote object '/system/odex.app.sqsh' does not exist
C:\adb>adb pull /system/odex.priv-app.sqsh
remote object '/system/odex.priv-app.sqsh' does not exist
help
Click to expand...
Click to collapse
same problem..
edi194 said:
Everything was fine except google play services, it crashes every time i want add account
Click to expand...
Click to collapse
Same here bro
I thought I had accidently deleted some necessary google services files while removing bloatwares so I tried flashing latest Gapps for 5.1.1 over stock sony FW but no effect. Can't figure out why
I'm having Xperia ZR (5.1.1 Stock)
zyclops1 said:
C:\adb>adb pull /system/odex.app.sqsh
remote object '/system/odex.app.sqsh' does not exist
C:\adb>adb pull /system/odex.priv-app.sqsh
remote object '/system/odex.priv-app.sqsh' does not exist
help
Click to expand...
Click to collapse
gundam_warlock said:
could you provide the zip? or the zip from this thread http://forum.xda-developers.com/sprint-galaxy-s5/general/how-to-deodex-lollipop-rom-t3065596 can be used?
same problem..
Click to expand...
Click to collapse
If you have an Xperia Z1 it might differ from this a little bit, I think those don't have odex.xx.sqsh on their filesystem, check if you have odex files in app and priv-app.
Phones that I know that so far work with this sqsh filesystem are Xperia Z, ZL, ZR, Xperia Tablet Z
edi194 said:
Everything was fine except google play services, it crashes every time i want add account
Click to expand...
Click to collapse
sshivampp said:
Same here bro
I thought I had accidently deleted some necessary google services files while removing bloatwares so I tried flashing latest Gapps for 5.1.1 over stock sony FW but no effect. Can't figure out why
I'm having Xperia ZR (5.1.1 Stock)
Click to expand...
Click to collapse
Did you clear dalvik-cache and cache? If it still gives you googleplayservices fc, manually download the GooglePlayServices from APKMirror and install as normal app
xkeita said:
If you have an Xperia Z1 it might differ from this a little bit, I think those don't have odex.xx.sqsh on their filesystem, check if you have odex files in app and priv-app.
Phones that I know that so far work with this sqsh filesystem are Xperia Z, ZL, ZR, Xperia Tablet Z
Click to expand...
Click to collapse
I tried to deodex directly without pull sqsh, everything except nfcnci failed, when i tried to copy to system and reboot, nfc is fc. When check nfcnci folder only apk and lib folder exsist, but nothing exsist inside lib folder.
Where do i wrong?
xkeita said:
Did you clear dalvik-cache and cache? If it still gives you googleplayservices fc, manually download the GooglePlayServices from APKMirror and install as normal app
Click to expand...
Click to collapse
Dalvik-cache & Cache ! I tried wiping the whole data, it didn't work.
App install window goes on forever and app not installing.
Got it working by installing latest play services before deodexing. (as the updated play services app in the data partition runs, no matter if system is having broken play services package)
Fixed it for now but still wondering what causes the issue
sshivampp said:
Fixed it for now but still wondering what causes the issue
Click to expand...
Click to collapse
same issue here , how can i fix this?
@xkeita Bro if not ask for much could create a video tutorial ? ?????
Hamidreza2010 said:
same issue here , how can i fix this?
Click to expand...
Click to collapse
what I did is flashed the ftf (to go back to stock)
installed latest play services via play store
then followed the deodexing guide
Note: after deodexing, do not wipe data or uninstall updated play services otherwise error will occur again
works fine thank you
ZR 5.1.1
After download the rom by XperiaFirm I must continue this step?
Second part: Unpacking .SQSH files
To resume a little, you may refer to IaguCool's guide
Once you have downloaded SquashFS Tool, move both .sqsh files to the folder.
When you have opened the command promp use these codes to extract files...
> To get odex files for app folder (After extracting rename the squash-root folder to app):
Code:
unsquashfs -no-xattrs odex.app.sqsh
> To get odex files for priv-app folder (After extracting rename the squash-root folder to priv-app):
Code:
unsquashfs -no-xattrs odex.priv-app.sqsh
Third part: Merging files
Create a folder named system and move app, framework and priv-app folders from C:\ to the new folder.
After that grab the folders you extracted with SquashFS Tool and merge them with app and priv-app folder.
After doing this move SemcGenericUxpRes folder to priv-app folder
Fourth part: Deodexing
Download JoelDroid's Lollipop Batch Deodexer and replace the file named oat2dex.jar found on /tool folder with this one: Latest oat2dex
Then open the program and select the /system/ you've created to start the process.
Once it has finished, grab SemcGenericUxpRes folder and move it back to /framework
Hi guys, i really love the 3Min battery Mod from @gharrington Tyvm bro. There is a lot of threads of how to make it yourself but i think most of them are not too detailed and cover everything. So since i use these instructions my self i thought of sharing them in case someone may benefit from it.
Preparation: :
1. Download the latest BatchApkTool .
2. Tools needed and how to extract System.img.
3. Recommended tools needed: Notepad ++, 7zip or Winrar
Instructions::
A.
1. Download the latest BatchApkTool unzip it and move the need files to their designated folders explained in the next step.
2. We need to get SystemUI folder and framework folder(Inside it Framework_res.apk and arm64 folder is needed) either from a System.img in that case use the guide in the preparation section on how to extract it or import them from your device using any file manager with root.
3. Put SystemUI folder in _priv-app folder, and framework folder in to _framework folder.
B.
Open BatchApkTool select your language make sure that all the settings match your rom, enter the following numbers for changes:
83. Smali(By default it's the latest "2.2 latest when writing this" so just check it in case)
84. Api level: ------------- select 23( for Marshmallow)
85. Apktool(By default it's the latest stable version "it was 2.2.0 when writing this" just make sure it is)
C.
1. Under Smali section select '01 Deodex all apks and jars'(In case your rom isn't deodexed yet if it is skip this step). If your rom is stock then your SystemUi.apk needs to be deodexed for this to work. (For Nexus 6p select Arm64 when asked)
2.Under Smali section select '02' to move the deodexed files to _Input_Apk folder.
*Make a backup of META-INF folder and AndroidManifest.xml after extracting them from the deodexed SystemUI.apk file using Winrar or 7zip.
3.Under ApkTool section select '1' to decompile Apks.
4. After that go to _Input_Apk folder and open the decompiled SystemUI folder, navigate to res/layout/system_icons.xml and open with notepad ++
5. Find:
Code:
android:layout_width="9.5dip"
and
Code:
android:layout_height="14.5dip"
Note: These values may not be an exact match, doesn't matter
Change both values to
Code:
android:layout_width="0.0dip"
and
Code:
android:layout_height="0.0dip"
6. Hit enter and directly underneath that line add the following:
Code:
<com.android.systemui.statusbar.policy.MinitBattery android:layout_width="wrap_content" android:layout_height="wrap_content" />
7. Save your work and close notepad ++
8. You now need to navigate to smali/com/android/systemui/statusbar/policy folder
** Download the latest Modfiles package(3MinitBatterySettings, MinitBatteryResources, 3 Smali files) needed from here or main website.
9. Copy the 3 smali files(files that end with .smali) into that policy folder.
10. Time to recompile the SystemUI.apk. Under ApkTool section select '3 recompile apks' in Batchapktool.
11. Once recompiling of SystemUI.apk is complete go to it in _OUT_APK you will find it there, open it with 7zip or Winrar and Don't Extract.
12. Delete META-INF folder and AndroidManifest.xml from newly recompiled SystemUI.apk and replace them with the original backup we took in step C.2.
13. Download the 3MinitBattery_Template1.zip(will remove original SystemUi.apk and replace it) or 3Minit_Battery_Template2.zip(Will not remove the original SystemUi.apk and will leave it for you to remove it manually in case you want to back it up).
14. Use one of the template zips then open it don't extract it just open it with Winrar or 7zip and drop 3MinitBatterySettings, MinitBatteryResources that we got in step C.8 to their respective folders in the zip file. Drop the newly recompiled SystemUI.apk to SystemUI folder if you choose template 1 and if you choose template 2 put it in priv-app folder.
P.s: If you choose template 2 after flashing it go to system/priv-app/SystemUI folder in your device and with any file manger with root delete SystemUi.apk after you back it up to where ever you choose then reboot the device.
15. After this make a backup of your rom and flash the zip.
16. To use 3minBattery app open it and choose your customization then reboot you should see the changes after that. Good luck! :good:
Credits go to:
- @gharrington for his Mod&Guide.
- bursoft for Batch ApkTool.
- @bdorr1105 for his Thread.
- https://androidmtk.com for the Guide&Tools.
Awesome tutorial.. I am looking to add it into a modified stock rom for a Samsung tablet that I have.. Do you know of any easy to follow tutorials for that? i am very new to this part of android..lol.. i am usually on the flashing end and now i am trying to help out for this tab because it has no custom roms until mine. Again, awesome tutorial.
glockman4519 said:
Awesome tutorial.. I am looking to add it into a modified stock rom for a Samsung tablet that I have.. Do you know of any easy to follow tutorials for that? i am very new to this part of android..lol.. i am usually on the flashing end and now i am trying to help out for this tab because it has no custom roms until mine. Again, awesome tutorial.
Click to expand...
Click to collapse
Ty much appreciated. It has been a while since I created this thread since then I have stopped using this mod because it's kind of a headache to do it for every update add to that since Google already enabled the battery percentage inside the battery there was no need any more for the mod. Anyway it's still great to be able to change from time to time. Regarding the tutorial I am sorry to say I haven't tried to create a custom ROM so I can't help you much with that but I am sure there are a lot of tutorials but will require some time to search. Good luck with your project.
Hi,
I want to edit the SystemUI_ZKE.apk, but when I use "APK Editor Pro" for instance the apk crashes after a reboot.
What would be the right way to do this? My goal is to delete the charging.ogg file that wakes my wife as I plugin a charger when I go to bed
Any other solution to *that* problem is welcome too.
I'm on a A2017G B06 btw.
Thanks in advance,
Cheers,
/Cacti
Edit: Sorry, wrong forum, should be posted in the Questions & Answers. @mods: please move it, thanks.
le_cactus said:
Hi,
I want to edit the SystemUI_ZKE.apk, but when I use "APK Editor Pro" for instance the apk crashes after a reboot.
What would be the right way to do this? My goal is to delete the charging.ogg file that wakes my wife as I plugin a charger when I go to bed
Any other solution to *that* problem is welcome too.
I'm on a A2017G B06 btw.
Thanks in advance,
Cheers,
/Cacti
Edit: Sorry, wrong forum, should be posted in the Questions & Answers. @mods: please move it, thanks.
Click to expand...
Click to collapse
You need to use apktool on Windows or Linux instead: https://ibotpeaches.github.io/Apktool/. You'll need Java already installed.
Your device also needs to be rooted and have TWRP recovery installed.
Put the apktool.jar and wrapper script in the system directory (C:\Windows on Windows)
Pull frameworks and SystemUI from your device with
Code:
adb pull /system/framework/framework-res.apk
adb pull /system/framework/framework-zte-res.apk
adb pull /system/priv-app/SystemUI_ZTE/SystemUI_ZTE.apk
Install frameworks to your computer:
Code:
apktool if framework-res.apk
apktool if framework-zte-res.apk
Decompile SystemUI_ZTE.apk:
Code:
apktool d SystemUI_ZTE.apk
Make whatever changes you want to make then recompile with:
Code:
apktool b SystemUI_ZTE
Use signapk.jar to sign the apk then put the apk into a flashable zip and flash to your device in TWRP.
If you want to make changes to smali you'll need to pull the SystemUI_ZTE odex file and deodex the apk with oat2dex and then use 7-zip or WinRAR to paste the classes.dex file into the apk before decompiling.
Gr8 tutorial. I'll try that tomorrow, hope I get it fixed. Thank you!
Cheers,
/Cacti
Sent from my ZTE A2017G using XDA-Developers Legacy app
Hi,
*
Earlier I tried with APK Editor Pro (https://play.google.com/store/apps/details?id=com.gmail.heagoo.apkeditor.pro)
What happened was (after replacing the SystemUI_ZTE.apk with the modified APK) after a reboot the system booted with parts of the UI nog working. Navigationkeys didn't work except for the home button, and I had no status bar at all. After rebooting again it only showed my wallpaper, and no matter what I did it wouldn't show me anything else. So I had to restore.
*
Modifying the APK with the APKTool gave me the exact same result. Only thing i did differently as to bkores guide was I signed it using ZipSigner (but that never failed me before) and I just replaced the file using TWRP, instead of flashing it through an installer zip. But I can't imagine that being the problem?
*
Anyways, anybody able to modify the SystemUI_ZTE.apk? All I need is the B06 (A2017G) with a replaced charging.ogg (with only silence).*Any tips are welcome.
*
TIA,
*
Cheers,
/Cacti
Sent from my ZTE A2017G using XDA-Developers Legacy app
le_cactus said:
Hi,
*
Earlier I tried with APK Editor Pro (https://play.google.com/store/apps/details?id=com.gmail.heagoo.apkeditor.pro)
What happened was (after replacing the SystemUI_ZTE.apk with the modified APK) after a reboot the system booted with parts of the UI nog working. Navigationkeys didn't work except for the home button, and I had no status bar at all. After rebooting again it only showed my wallpaper, and no matter what I did it wouldn't show me anything else. So I had to restore.
*
Modifying the APK with the APKTool gave me the exact same result. Only thing i did differently as to bkores guide was I signed it using ZipSigner (but that never failed me before) and I just replaced the file using TWRP, instead of flashing it through an installer zip. But I can't imagine that being the problem?
*
Anyways, anybody able to modify the SystemUI_ZTE.apk? All I need is the B06 (A2017G) with a replaced charging.ogg (with only silence).*Any tips are welcome.
*
TIA,
*
Cheers,
/Cacti
Click to expand...
Click to collapse
Try copying META-INF folder from old apk to new apk. If that doesn't work try copying resources.arsc from new apk to old apk and flash the old apk. Don't sign
Can it have anything to do with the .odex file?
I'll try the meta-inf thingy and see if that works
Cheers,
/Cacti
Sent from my ZTE A2017G using XDA-Developers Legacy app
Actually try this instead. I think the apk needs to be deodexed before it can be modified like you said.
Pull the odex file
Code:
adb pull /system/priv-app/SystemUI_ZTE/oat/arm64/SystemUI.odex
Get smali folder from the odex file with oat2dex.jar here: https://github.com/testwhat/SmaliEx/releases/tag/snapshot
Open command window in directory of odex file
Code:
java -jar oat2dex.jar smali SystemUI.odex
Decompile the apk and then copy and paste the smali folder into the directory of the decompiled apk.
Make your charging.ogg change and then recompile the apk. Copy and paste the META-INF from original apk to new apk.
Push apk to your device and delete the "oat" folder in the SystemUI_ZTE folder on your device.
Hi,
Thank you for your support so far, but that didn't work out eighter....
bkores said:
Code:
adb pull /system/priv-app/SystemUI_ZTE/oat/arm64/SystemUI.odex
Click to expand...
Click to collapse
Assuming you made a typo (since there is no SystemUI.odex) I used this instead:
Code:
adb pull /system/priv-app/SystemUI_ZTE/oat/arm64/SystemUI_ZTE.odex
bkores said:
Get smali folder from the odex file with oat2dex.jar
Click to expand...
Click to collapse
After the oat2dex command I don't have a smali folder, just 5434 smali files scattered over serveral folders, so I don't know how to proceed from there.
Cheers,
/Cacti
le_cactus said:
Hi,
Thank you for your support so far, but that didn't work out eighter....
Assuming you made a typo (since there is no SystemUI.odex) I used this instead:
After the oat2dex command I don't have a smali folder, just 5434 smali files scattered over serveral folders, so I don't know how to proceed from there.
Cheers,
/Cacti
Click to expand...
Click to collapse
Well then create a folder called smali in the directory of decompiled apk and paste the folders into smali
Can someone help me, i want to change framework.jar but there is no classes.dex in jar nor framework.odex in /system/framework/oat/arm64 (also arm). Because of it i can't decompile it with smali/baksmali tool. I want to change volume steps in AudioService exactly what VolumeSteps+ do but without Xposed. Any help? I'm on Nougat B10 Rom.
SkaboXD said:
Can someone help me, i want to change framework.jar but there is no classes.dex in jar nor framework.odex in /system/framework/oat/arm64 (also arm). Because of it i can't decompile it with smali/baksmali tool. I want to change volume steps in AudioService exactly what VolumeSteps+ do but without Xposed. Any help? I'm on Nougat B10 Rom.
Click to expand...
Click to collapse
Perhaps this can help a bit : https://forum.xda-developers.com/axon-7/themes/a2017-volume-steps-enabler-call-media-t3745747
If you want a decompiled framework, I can send you. Just pm me.
If you want I'll implement your mods and recompile again. Up to you to test
raystef66 said:
Perhaps this can help a bit : https://forum.xda-developers.com/axon-7/themes/a2017-volume-steps-enabler-call-media-t3745747
If you want a decompiled framework, I can send you. Just pm me.
If you want I'll implement your mods and recompile again. Up to you to test
Click to expand...
Click to collapse
I solved a problem, AudioService is not in framework.jar anymore, it's on services.jar. Check my post on your mentioned thread.