[Idea] 9 Patch Creator / Editor - Android Software Development

Problem:
Existing tools in SDK (draw9patch) only shows you the borders (which show how to subdivide the image for scaling and where to put content) of images you've created and have the original. Once compiled the images lose the visual border. This means you have to recreate the borders for images from existing themes and ROMs that you didn't create.
Solution (proposed):
An app that loads both bordered and and compiled (non-bordered) images showing them with editable borders so you can edit them. Saving would be to both bordered and compiled formats so you don't have to compile an APK just to create an image for a theme.
...anyone on board for this?
Kermit Woodall

Good idea, I'm not 100% sure apktool doesnt do this already.

I'll check into that. Thanks.

If Adobe was smart they'd be all over this one. That would really grind Apple's gears wouldnt it?

APKTool appears to let me extract items from an APK (which 7 zip does as well) but I didn't find any 9 patch editing in it.
So the idea is back on I hope!
K

kwoodall said:
APKTool appears to let me extract items from an APK (which 7 zip does as well) but I didn't find any 9 patch editing in it.
So the idea is back on I hope!
K
Click to expand...
Click to collapse
Hmm.. do you use apktool latest? I have added 9 patch decoding (real one, so no need to have image sources) in v1.3.0 .

Related

Creating 9 patch PNGS for theming!!

Alright, last week or so, I said I was going to try working on themes and after a few days finally got the whole 9 patch PNG jargon figured out!!! It was a pain in the ass figuring out how it all worked and even after searching i was still unclear.
Software you will need:
Adobe Photoshop or equivalent to edit your PNGs, adjust transparency, add effects)
Android SDK Tools and SDK starter package
Xultimate-d9pc.exe and repsective .zip file (this converts the raw .9.png into a working .9.png)
draw9patch (included in the SDK Tools) *I am working on another way to cut this step out since it is what takes the majority of time*
Java JDK (For Android SDK Tools to work)
Android SDK: Click Me! Android SDK r12 Do all the updates for the tool packages.
Xultimate-d9pc: Click Me!! Extract this into the Android SDK Tools Folder!! VERY IMPORTANT!!!
Java JDK: Click.. for 64 bit Windows Click.. for 32 bit Windows
I have uploaded all of these to my website for your convenience. I don't have the quickest server, so be patient with the downloads!!
Sorry for no audio in the video either. I didn't have a Mic hooked up and figured a video tutorial would be enough. Below is a youtube link and the pasted instructions from the youtube video.
WARNING: the steps below look intimidating, but really are quite easy after you grasp the idea.. I created so many steps to keep the total n00b in mind.
Step 1: Send the .apk that you want to modify from your phone to your email (or transfer your way of choice)
Step 2: copy the .apk somewhere on your harddrive (I put all my android stuff including tools and SDK in an 'android' folder as you will see in the video)
Step 3: open up the .apk in 7zip and navigate to the drawable folder (in this case; res >> drawable-hdpi)
Step 4: highlight all the pngs and .9.png's you would like to modify and copy them to a folder (this is where you will make your edits outside the .apk and compile them at a later time)
Step 5: Open the .9.pngs in photoshop and have some fun! (use your creativity to add overlays, borders, glows, etc.) tip: don't get to complicated, because you will need to pick split/stretch points later for the 9 patch conversion.
Step 6: When done modifying the .9.pngs, just save and overwrite the files you would like (in the case of the MMS app, the same image is used for multiple bubble files)
Step 7: Open up ONLY the .9.png's in the draw9patch tool located in your android SDK tools folder. Add the 9 patch data as shown in the video. Tip: some people only add one middle top and middle left split point/pixel, but i find its usually easier to add TWO points for the top and left quadrant as you will be picking your EXTENTS of where you want the content to be.
Step 8: On the right and bottom quadrant, create a solid line connecting the respective pixels together. These two steps will add the information to the PNG of where to split and stretch from, while also giving constraints of where the content can go.
Step 9: After all the 9 patch images are saved in draw9patch, if you open them you will notice the black pixels you just created. Do NOT, DO NOT try and recompile the .apk at this point, thinking you are done.. the bubbles (in this case) will look like crap, because you are not finished yet.
Step 10: Copy (or move) the newly created .9.png's into the ORIGINALS folder for the xultimate.exe software.
Step 11: Run the xultimate.exe. This will take about 2 seconds or less.
Step 12: naviigate through the 'done' folder and you will notice the .9.PNGs no longer contain the black border pixels!!! CONGRATS!!!
Step 13: Copy all modified images back into the open 7zip .apk archive and overwrite all the existing.
Step 14: replace your current .apk on your phone with this 'new' .apk and enjoy!!
and finally...
Tutorial -couldn't get youtube tags to work.
*If anyone is wondering why I Copied to the REV 2 folder but did the tutorial on the REV 1 folder, I was just demonstrating how to copy the files, but was working on my theme in the Rev 1 folder. DONT BE CONFUSED!!*
Thank you kind sir!
-Sent from my Random Epic.
This could be useful enough to move to Themes and be stickied with dreams tutorial.
Only reason I didn't throw it in those forums yet was that I figured a few people could try it and review the process before it became a 'good' tutorial. I know sometimes a tutorial is easy to understand or works for some people, but others have issues or don't understand the directions as well.
I hope this works for everyone and people are less intimidated to mess with this type of stuff!!
Relating to my other thread, I will continue to work on the MMS and Swype theming, I just wanted to get this together so everyone can start theming!
Wow, this looks very "easy"
Maybe I'll finally be able to edit .9.pngs without help
/sig
Avelnan said:
Phones are going to come to life someday. Take note: LG Optimus line. ASUS Transformer. And now the Nexus Prime.
Click to expand...
Click to collapse
Why not just use apk manager to decompile, edit the .9.png's leaving the black outer border pixels alone, then recompile the apk, extract the modded png's, then copy them into the source apk?
shane6374 said:
Why not just use apk manager to decompile, edit the .9.png's leaving the black outer border pixels alone, then recompile the apk, extract the modded png's, then copy them into the source apk?
Click to expand...
Click to collapse
That's fine in some instances, but it wouldn't really allow you to create .9pngs that are of a different size....
Also...I would think editing them in say GIMP only would "corrupt" the draw9patch data? It seems to me that it's more than just having a few pixels as borders and guidlines, it's also the files data in relation to those pixels
Sent from my SPH-D700 using xda premium
squshy 7 said:
That's fine in some instances, but it wouldn't really allow you to create .9pngs that are of a different size....
Also...I would think editing them in say GIMP only would "corrupt" the draw9patch data? It seems to me that it's more than just having a few pixels as borders and guidlines, it's also the files data in relation to those pixels
Sent from my SPH-D700 using xda premium
Click to expand...
Click to collapse
Editing with gimp wouldn't and doesn't corrupt the image from what I know. That's why your able to compile the image after editing it with gimp without error.
Sent from my SPH-D700
ac16313 said:
Editing with gimp wouldn't and doesn't corrupt the image from what I know. That's why your able to compile the image after editing it with gimp without error.
Sent from my SPH-D700
Click to expand...
Click to collapse
Exactly. What I do is cut all but the 1 pixel border into a new layer, edit that layer, merge the layers and save. I understand the concept the op is stating, but all of this can be done with the method I said as well. If you want to completely change, or add png's you will need to also make xml edits to add the image there or change container sizes, which is done by decompiling with apk manager. The only thing you might have to do is run the images throught the draw9 tool, but in most cases you wouldn't even need to do that.
Sent from shane6374's Epic via Tapatalk
also, if you see the black bars, you are dealing with a previously edited rom/apk. when you build from leaks or official google aosp releases you dont have that. very nice work mr. socks
I have a question. How do you create a new 9.png to use, for example with miui lockscreen. I dont really get that. Do I have to create the 9.png as the same as the original 9.png on the lockscreen. just wondering. Any help would be appreciated
thank you
cowsquad said:
I have a question. How do you create a new 9.png to use, for example with miui lockscreen. I dont really get that. Do I have to create the 9.png as the same as the original 9.png on the lockscreen. just wondering. Any help would be appreciated
thank you
Click to expand...
Click to collapse
It really depends on what image it is and what you want it to do. Some aspects that you might think are controlled by an image might actually be controlled by a xml file.
shane6374 said:
It really depends on what image it is and what you want it to do. Some aspects that you might think are controlled by an image might actually be controlled by a xml file.
Click to expand...
Click to collapse
Is there a way to find what aspects are controlled by a xml file.
Sent from my Droid using Tapatalk
cowsquad said:
Is there a way to find what aspects are controlled by a xml file.
Sent from my Droid using Tapatalk
Click to expand...
Click to collapse
Sure, you can take the name of the image and search for it in the xml files. Very easy to do with windows explorer. I use it to fine images and color codes all the time. If you know how to read the xml file you can see how it all works.
I don't know what file you're wanting to edit, but that might help. I'd throw up some resources I've used for you but I'm at work right now.
shane6374 said:
Sure, you can take the name of the image and search for it in the xml files. Very easy to do with windows explorer. I use it to fine images and color codes all the time. If you know how to read the xml file you can see how it all works.
I don't know what file you're wanting to edit, but that might help. I'd throw up some resources I've used for you but I'm at work right now.
Click to expand...
Click to collapse
Whenever you have time, could you email me those resources. That will be appreciated. Pm and I send you my email
Sent from my Droid using Tapatalk
cowsquad said:
Whenever you have time, could you email me those resources. That will be appreciated. Pm and I send you my email
Sent from my Droid using Tapatalk
Click to expand...
Click to collapse
Start with this one here. If you have sdk and draw9patch in the tools folder, you can use this to help guide you. There was one other site I found when I was starting out themeing, but I'm not finding it right now.
http://developer.android.com/guide/developing/tools/draw9patch.html
i tried to run the ultimate.exe but i get an error, my ant/res doesnt exit. how do i fix that
cowsquad said:
i tried to run the ultimate.exe but i get an error, my ant/res doesnt exit. how do i fix that
Click to expand...
Click to collapse
I don't even know what that is. Do you have sdk installed?
Sent from shane6374's Epic via Tapatalk
shane6374 said:
I don't even know what that is. Do you have sdk installed?
Sent from shane6374's Epic via Tapatalk
Click to expand...
Click to collapse
Yes, I do. I have sdk, eclipse and java set up already. I'm gonna reinstall everything now and see the results.

[Linux][UTILITY][TOOL] APK Multi-Tool

GgI am currently working on a major update to the apk manager application as well and changing the name to APK Multi-Tool with some new added features and also to fix some issues with some code errors.
I am also changing a lot of the features as well since a lot of the code has been outdated for a while.
I have updated all the files and modified Apk manager's Scripts to fix many user reported bugs from Daneshm90 apk manager which he had written a simple script to ease the process of editing apks. Got a lot of downloads so thought its in demand
Whether you're doing basic image editing or editing the smali or xml files, on average u have to use (Brut.all or JF's smali/baksmali) awesome tool to extract the apk, edit it, then sign the apk and then adb push/install it. This process is quite tiresome if you are testing a method that needs fine tweaking.
This script should make the process a LOT smoother.
Theres an option of compiling/signing/installing all in one step
Thanks:
Goes to Daneshm90 the Original Writer of APK Manager
Goes to Brut.all for his awesome tool.
Goes to JF for ofcourse, smali/baksmali
Features:
- Added framework dependent decompiling (For non propietary rom apks). (Option 10). Checks whether the dependee apk u selected is correct.
- Allows multiple projects to be modified, switch to and from.
- Allows to modify system apk's using apktool but ensures maximum compatibility in terms of signature / manifest.xml
- Batch optimize apk (Zipalign,optipng,or both)
- Batch Ogg optimization
- Batch install apk from script (option 19)
- Batch Theme Image Transfer TOOL
- Batch Theme optipng TOOL
- Batch Theme Zipalign APK TOOL
- Compression level selector (monitor status above menu)
- Error detection. Checks if error occurred anytime u perform a task, and reports it
- Extract, Zip apk's.
- Incorporates brut.all's apktool
- Improved syntax of questions/answers
- Logging on/off has been removed. Instead a log.txt is created which logs the activities of the script organized using time/date headers
- Optimize pngs (ignores .9.pngs)
- Pull apk from phone into modding environment.
- Push to specific location on phone
- Quick sign an apk (Batch mode supported)
- Read log (Option 24)
- Sign apks
- Supports batch installation, so if u drag multiple apks into the script (not while its running) it will install them all for u. U can ofcourse drag a single apk as well
- User can change the max java heap size (only use if certain large apks get stuck when decompiling/compiling apks) (Option 19)
- U can now set this script as ur default application for apks. When u do, if u double click any apk it will install it for u.
- Zipalign apks
- Much Much More
Instructions:
- Place apk in appropriate folder (Any filename will work, if running for first time folders will not be there, you must run and then the folders will be created)
- Run script
- Minimize the script
- Edit files inside the project folder
- Maximize the script
Requirements:
Java 1.7
Android SDK
FAQ
Resulting apk file is much smaller than original! Is there something missing?
First: compression of resources.arsc file. Sometimes this file is compressed in original apk, sometimes not and apktool always compress it. Second: lack of META-INF dir. Apktool builds unsigned apks, so they lack signatures stored in this dir. Third: apktool uses newest Android SDK, so it could optimize files better, especially if original app is old. So: unpack both original and resulting apk, remove META-INF from original and then compare sizes. If they're still much different, then you could report on XDA or somewhere.
There is no META-INF dir in resulting apk. Is this ok?
Yes. META-INF contains apk signatures mostly and after modifying apk in no longer signed, so there are no signatures in it. You have to sign resulting apk and then META-INF dir will be created.
What do you call "magic apks"?
Sometimes there are some apks which (for my current knowledge) are invalid, broken, theoretically they shouldn't exist. There may be many reasons of their existence: my lack of understanding of Android resources; some non-public, maybe future SDK tools or custom modifications of these; manual hacking of binaries, etc. Usually I can't do anything about it, but you could at least try to replace broken parts by something valid. Actually it's quite likely that they aren't even used, because if they would, then application would crash.
Got problems ?
1. Make sure your path has no spaces
2. Your filename has no wierd characters
3. Java/adb are in your path
4. It's not a proprietary rom's apk (aka Sense,Motorola,Samsung) (If u are, then use option 11 and drag the required framework, eg com.htc.resources, twframework-res...etc)
5. It's not a themed apk (if it is, expect .9 png errors, use as close to stock as possible)
6. Look at the log to know whats happening
7. If all else fails, post as much info as possible and we will try to assist you.
TO DO LIST
Add new feature to Randomly Generate a new Key File for signing the apk files after modifying and recompiling of the apk files this will also allow of uploading to the android market as this added feature will allow you to sign apk files that you may of compiled without signing beforehand.
Modify the Signapk script to be compatible with the Randomly Generation feature in the works
and a few other added features are in the works as I am redesigning the application and rewriting a lot of the code to fix issues as well as some of the new features have broken parts as some features have been moved and broken some command line prompts.
Installing APK Multi-Tool Itself
Instructions (Linux):
1-Download, create a folder in your sdk called "APK-Multi-Tool" and extract into it.
2-Goto the the "sdk/APK-Multi-Tool" folder and rename "Script.sh" to "script.sh".
3-Go into the "other" folder, right click on one file at a time, goto "permissions" in the new window and check the execute box.(do this with all the files)
4-To add the path to your folder open up a terminal and type in -
sudo su
PATH=$PATH:/THE PATH TO YOUR "SCRIPT.SH"
(for me this looks like the following)
PATH=$PATH:/sdk/APK-Multi-Tool/other/
5-export PATH
6-install "sox"
7-Type into the terminal "cd PATH TO YOUR SCRIPT.SH"
7.5 export PATH={PATH}:/PATH TO Your SDK/sdk/platform-tools/adb
8-Type "./script.sh"
9-You should have a running APK-Multi-Tool.
how to install sox:
Open the software center of the linux service and searched for sox. Installed it and it there you will have SOX working.
- Place apk in appropriate folder (Any filename will work, if running for first time folders will not be there, you must run and then the folders will be created)
- Open terminal and change-directory to APK-Multi-Tool(Easiest way is to type "cd ")
- Chmod 755 Script.sh
- Chmod 755 all files apps inside other folder
- Run script by typing ./Script.sh
- Minimize the script
- Edit files inside the out folder
- Maximize the script
Downloads:
https://github.com/APK-Multi-Tool/APK-Multi-Tool-Linux/archive/master.zip
Please check back daily or weekly as this project is under active Development and I am releasing Alpha releases on the website for Testing and bug reports.
Lol, why has nobody commented on this?
You're a savior. This is awesome. Can't wait for the rewrite.
AW: [Linux][UTILITY][TOOL] APK Multi-Tool
+1
Haven't seen this also available for Linux, so this is great.
Sent from my Galaxy Nexus using xda premium
Binary updates
UPDATED to apktool-cli-1.5.3-SNAPSHOT
-Updated to smali/baksmali to v1.4.2
-Fixed (issue #396) - Correctly handle android:debuggable while in debug
mode.
-Fixed (issue #340) - Fixed superclass errors on debug mode.
-Updated to Gradle 1.4
-Updated known bytes for configurations to 38 (from addition of layout
direction)
-Fixed NPE when handling odex apks even with --no-src specified. (Thanks
Rodrigo Chiossi)
-Fixed (issue #427) - Correctly handles `--frame-path` on uild
Error 404 on GitHub download page
xcly said:
Error 404 on GitHub download page
Click to expand...
Click to collapse
Fixed
Sent from my DROID RAZR CDMA XT912 using Tapatalk 2
I merged a few projects together instead of having multiple Android developer projects. I did some spring cleaning and deleted a few projects that was not useful and served no purposes. Also renamed the project organization which broke the link forgot to update lol.
Sent from my DROID RAZR CDMA XT912 using Tapatalk 2
I ran the script but I can't see any folders being created.. Trying to sign an apk. Looked up on google and all I can find is your instructions to put apk in appropriate folder (which I can't see..)
Thanks in advance
I will look into this ABCs see what's up
Sent from my DROID RAZR CDMA XT912 using Tapatalk 2
I ran the apksign tool separately using terminal for now
I got
The program sox is missing or is not in your PATH,
please install it or fix your PATH variable
If I go to the other folder there is no sox like in the windows version.
I will look into this asap once I get some free time
Sent from my DROID RAZR CDMA XT912 using Tapatalk 2
civato said:
I got
The program sox is missing or is not in your PATH,
please install it or fix your PATH variable
If I go to the other folder there is no sox like in the windows version.
Click to expand...
Click to collapse
I had the same problem but it was fixed once I installed sox. There was a tutorial on google search for setting up apk manager you might wanna have a look at.
Sent from my GT-I9300 using xda premium
raziel23x said:
I will look into this asap once I get some free time
Sent from my DROID RAZR CDMA XT912 using Tapatalk 2
Click to expand...
Click to collapse
xcly said:
I had the same problem but it was fixed once I installed sox. There was a tutorial on google search for setting up apk manager you might wanna have a look at.
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
I got it solved , I just entered the Ubuntu software center and searched for sox. Installed it and it works.
Maybe good to add this in OP when using linux. It is stupid of me thinking it was something harder so thank you for your help and fast response.
A other methode I found here
PS:
You don't need to type in ./Script.sh in teminal in linux , just clicking on it (Script.sh) and select "run in terminal" does the trick without typing anything.
updated the original post with detailed instructions
raziel23x said:
updated the original post with detailed instructions
Click to expand...
Click to collapse
Put updated info into the README file. Made a few corrections (hope you like).
AndyOpie150 said:
Put updated info into the README file. Made a few corrections (hope you like).
Click to expand...
Click to collapse
pushed your changed to github all code changes are welcome even forking the repo on github and making changes and doing pull request are welcome
raziel23x said:
pushed your changed to github all code changes are welcome even forking the repo on github and making changes and doing pull request are welcome
Click to expand...
Click to collapse
Just uploaded changed attachment. Fixed minor typos in Installation Instructions. Sorry I didn't get it straight before you pushed to github.
I deleted the info for Windows in previous attachments as well due to this being for the Linux version. Didn't know if you caught that.
PS: Thought I would let you decide if you liked my hair brained ideas first.
Is there any way to have a .jar file work without having to rename to .apk, or is that a mind bogling code rewrite. I'm all for learning.
Hey, I made some changes to the script to act more like the windows version of this tool. I added a setup.sh which will create all the folders and set permissions to everything. i also the ability to have multiple projects going at the same time, and also added a separate jar/dex folder so there is no need to rename the jar files to .apk to edit it. and other updates as well. its not 100% up to par with the windows one, but these few changes make a huge difference. Would you be interested in this?
---------- Post added at 11:38 AM ---------- Previous post was at 11:36 AM ----------
AndyOpie150 said:
Just uploaded changed attachment. Fixed minor typos in Installation Instructions. Sorry I didn't get it straight before you pushed to github.
I deleted the info for Windows in previous attachments as well due to this being for the Linux version. Didn't know if you caught that.
PS: Thought I would let you decide if you liked my hair brained ideas first.
Is there any way to have a .jar file work without having to rename to .apk, or is that a mind bogling code rewrite. I'm all for learning.
Click to expand...
Click to collapse
actually yes there is..i made an updated version of the script which has those features
clmowers said:
Hey, I made some changes to the script to act more like the windows version of this tool. I added a setup.sh which will create all the folders and set permissions to everything. i also the ability to have multiple projects going at the same time, and also added a separate jar/dex folder so there is no need to rename the jar files to .apk to edit it. and other updates as well. its not 100% up to par with the windows one, but these few changes make a huge difference. Would you be interested in this?
---------- Post added at 11:38 AM ---------- Previous post was at 11:36 AM ----------
actually yes there is..i made an updated version of the script which has those features
Click to expand...
Click to collapse
Make a pull request on github and in will merge it
Sent from my Xoom using Tapatalk HD

[GUIDE]Ultimate Guide[Decompiling][9 pngs][Theming]

The Ultimate Guide​
Preliminary Requirements:-
PC with Windows(Please avoid Windows Vista)
Java JRE or JDK
APK Multitool
framework-res.apk, SystemUI.apk, twframework-res.apk, com.htc.resources for installing
7-zip
Notepad++
Android Device for testing
Photoshop or equivalent image editing software
android-sdk(for 9 png editing)
Lots and lots of patience and mind
What this guide includes:-
Main Part:
1. Easiest Decompiling and Recompiling Guide *Must Read before continuing*
Theming Part:
2. APK png resources(General Location of General pngs)
3. Explanation of 9 pngs and how to edit or make them
4. How to Batch edit pngs (Not 9 pngs) (Changing color, etc)
All of us like if all things are present in one guide
This guide covers topics like decompiling, 9 png editing, theming in a very newbie friendly manner.
I have worked upon this guide to make it so that no problem arises during performing certain tasks which I faced.
I have covered workarounds such that they ensure LEAST no. of errors while performing these tasks.
However, if even then any problem arises, I am always there to help you out :laugh:
Main Part:
Decompiling: [MUST READ]
We are assuming that you have installed JAVA, Android SDK and apk-multitool without any problems
1. Copy your mobile's framework-res.apk, SystemUI.apk and twframework-res.apk in others folder in directory where you have extracted apk-multiool
2. Open Setup.bat. Choose 2 :- Installing Framework-res
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Setup.bat​
Choose 1 (framework-res.apk)
Choose 2 (twframework-res.apk) [similarly install OEM specific files such as com.htc.resources , etc]
Choose 4 (SystemUI.apk)
Window will close each time you choose an option
You will have to restart Setup.bat each time
3. Now place the apk you want to edit in place-apk-here-for-modding
4. Now open script.bat. (If you see any error, either you haven't installed JAVA and SDK[adb] or they aren't implented, Please install them properly before continuing). Click any key to continue
APK-Multitool Window​
5. You will see the above window. Now, make sure you have installed all frameworks and Compression level is set to 9.
6. Now, we will choose our project. Click 24. A list of files present in place-apk-here-for-modding will be in front of you. Choose any file
7. Click on 9. Now decompiling will be in process.
8. After it is complete, go to projects folder, you will see a folder with the name of apk you decompiled
Decompiled apk example​
If it is decompiled properly, then there will be apktool.yml file in it
9. Do your modifications. Now, you can edit .9.png files (they will be discussed later) and xml files which were uneditable first
You will notice that there will be many new folders which weren't present in compiled form of apk. These all folders are generated from a file called resources.arsc present in compiled form which is absent in decompiled form
Such an example is of values folder which contains crucial xml files like styles.xml, strings.xml, ids.xml, etc
Always open xml files with Notepad++, it will mark commands and syntax making it look aligned and making it easy to understand
Example of decompiled xml file ​
Also, you can edit 9 patch files also which will be changed from now on
Example:-
We will discuss 9 png in detail later on
10. After you have done your modifications and you are ready to recompile the app, choose 11 (Compile System APK) if you are editing System App or 12(Compile Non-System App) if you are editing other than System App
11. a) If System App:-
After some time it will ask that if you want to copy additional files other than signatures to ensure less amount of errors, then choose y
After extracting some files, it will ask you to delete files from keep folder
Simply go to keep folder,
If you edited any pngs and there are many and you are lazy enough to delete one by one, then delete the whole folder in which you edited pngs
If you edited any xml file, then delete that xml file AND ALSO DELETE RESOURCES.ARSC
Why? Because we told that values and several other folders are generated from resources.arsc while decompiling
Now, if we don't delete resources.arsc, the modification we did in values folder will be reverted to original state
After doing this, go to script.bat again and press any key to continue
11. b)If its not system app:
Just recompile it and sign it man through the menu in apk multitool man.
It is easy as hell. Tutorial of non-system app has been ended here
12. Now, you will get another apk name System_ apkname.apk
Open both apks as archives by 7-zip
13. Last and most important step:-
Just drop the files you edited from new apk to old apk in correct folders. By now, you may have understood that resouces.arsc INCLUDES your edited xmls
14. Now, the final apk is not System_apkname.apk but apkname.apk (the original file you started with). Push it and enjoy
This is a work in progress.
Will add more things soon
Don't hesitate to ask any questions about anything
Credits:
@d3cka for teaching best about 9 pngs
@deathnotice01 for helping me
Miscellaneous Google and xda posts
Theming Part​
General APK png Resources
Here I will tell you where to find some pngs to theme your Phone
Note: Here I will tell location of pngs but that may differ based on modification done to your ROM by OEMs or devs. These pngs are found after decompiling or extracting the apk files. For more reference, read this.
In this part, there is only brief information, but for a very good guide, please go here. I haven't covered it all up as d3cka himself has done a marvellous job in making that guide. All the things present in that guide should solve all your queries.
General location of apks:
SystemUI.apk - /system/app/
framework-res.apk - /system/framework/
twframework-res.apk - /system/framework
framework.jar - /system/framework/
lidroid-res.apk - /system/framework/
Click to expand...
Click to collapse
Variable list:
I have referred to some locations as drawable-xdpi. X here stands for
X: m, l, h, xh
Meaning pngs can be in drawable-mdpi, drawable-hdpi, drawable-ldpi, drawable-xhdpi depending on resolution of your phone
In some places, I have just added * in order to fill spaces that are not common in each png
[?] means maybe only for GB or Samsung
Click to expand...
Click to collapse
Battery Icons -
(i)Ice Cream Sandwich/Jelly Bean: SystemUI.apk/res/drawable-xdpi/stat_sys_battery**.png
(ii)Gingerbread: framework-res.apk/res/drawable-xdpi/stat_sys_battery**.png
Status Bar icons - SystemUI.apk/res/drawable-xdpi/
Note, some, however very few status bar icons are also present in framework-res.apk
Platlogo - framework-res.apk/res/drawable-nodpi/platlogo*.jpg
(image that pops up when repeatedly clicked on Android Version)
In Gingerbrad, its a single file but in ICS and JB, they are many images.
Default Wallpaper - framework-res/res/drawable-xdpi/default_wallpaper.jpg
Default Lockscreen Wallpaper[?] - framework-res.apk/res/drawable-xdpi/zzzzzzzz_default_lockscreenw.jpg
On stock based HTC roms, the default wallpaper location is specified in the.build.prop (so the dev can either swap out the image, or change the path)
The default wallpaper path for HTC roms is /system/customize/resource/wallpapers_a_00.jpg (Thanks to CNExus)
Spinners[GB] - framework-res.apk/res/drawable-xdpi/spinner_****_**.png
(The loading circles)
Menu Icons - framework-res.apk/res/drawable-xdpi/ic_menu_**.png
These icons may also be present in twframework-res.apk for Samsung Touchwiz ROMs
Notification Toggles
(i)With lidroid 15 toggles : lidroid-res.apk/res/drawable-xdpi/
(ii)Without lidroid mod : SystemUI.apk/res/drawable-xdpi
These were some general pngs of system apps that may be used to theme the phone. You can find respective pngs to theme in their apks.
Will add more soon...
9 PNG Discussion
These are special types of pngs that can be stretched to fit the need of program or different scenarios or cases. It contains 1 pixel lines on each border of different lengths for different things
As told above, we can't edit 9 png in compiled form as it will lose these lines which define its properties. So, we first need to decompile apk in order to edit 9 pngs
So, after decompiling apk, open 9 png in Photoshop and select the part inside that 1 px border and edit anything you want (Hue, Saturation, Bevel, Emboss, ANYTHING)
Now save it (save it as a normal png and then rename it as .9.png because photoshop doesn't recognise 9 png extension and image will loose its RGB format)
Explanation of 9 png:-
You can read this for more information
If you have doubt that you have gone wrong somewhere or you have made a new png from scratch and want to test if it is correct or not:
(Check all 9 png files you edit as they can cause Force Closes or bootloops)
Go to folder where you extracted android-sdk and go to tools folder and open draw9patch.bat
A window like this will open up:-
Drop you 9 png here
A new window will open with you 9 png on it
Tick on show bad patches
If you see red rectangles, you have a bad 9 patch image. You will need to delete or add those lines in png to remove all red boxes. If you want to delete, press Shift and start moving cursor over lines you want to delete. You can choose method of hit and trial to remove all rectangles and move the lower scale to see how your image size is adjusted
Or you can do what I do:
1. Remove all lines
2. Add single dot on top centre and left centre border of image (That can be taken as stretchable area)
3. Add lines on right and bottom of image where you want to fill content. Now, click on Show Content
The purple area you see in image is the content area (Text will be filled there. Eg:- Popup Menu)
4. Now, you can adjust these lines acoording to your need that what you want for stretchable area and content area until an unless there comes an red triangle
5. When it is done. Save the file. DONE
Easy, isn't it?
That's what theming is
Batch Editing pngs in Photoshop
Well the scenario is you have 200 pngs and you want to change their color, hue, add effect to them, etc. Definitely not worth the time you will spent doing this one by one. So, here, I will cover how to batch apply same edits on to your infinite pngs. Here, I am taking example of changing color of battery png from green to purple, you can apply any attribute to your image in the same way. I repeat it is not for .9.png files. Read above guide for reference
Let's start
1. First copy all your pngs you need to edit in a separate folder. I have made a folder named Battery Base and pasted my all pngs of battery there.
Now create another folder where your edited pngs will be saved. For eg:- Battery Done. (Don't create it inside Battery Base folder)
2. Open Adobe Photoshop and Choose Window>Actions or Alt+F9
3. Click on the note like file (Create new Action)
Rename it to anything you want . I have chosen Battery_color
Then click on Record. Now, you will see that red circle is enabled and now everything you do on image will be recorded and will be applied on each image.
4. Now, do this very carefully, don't miss any step.
We will do every thing that we want Photoshop to do with each file we want to edit.
a) So, first we want Photoshop to open the image. So , click on Open and choose any png from Battery Base folder (Choose a file with more color so that you know what color exactly your file will be after editing. That is why I chose 90 percent battery here).
b) Now, after opening, we want to change Color of png from green to purple. So, choose Image>Adjustment>Hue and Saturation or Ctrl+U
A dialog box with 3 sliders will appear. Move upper slider to change color. You can move other slider to change saturation and brightness if you want. Now, if you got it right, click on OK.
Every step of yours is being recorded, so don't do unnecessary stuff you don't want to do on other images. Nonetheless, if you have done it, then Drop down the Battery Base Action in action palette and you will see your every action there, If you want to delete any action , you can delete it from there. You can also add any action before pre completed action by clicking above that action and performing it.
Now, you can do anything you want to be done on your rest of pngs.
c) Now, we want Photoshop to save this png to carry on working on others. So, Go to File>Save as... and save it as a png in Battery Done folder. Photoshop will ask you to choose, so choose smallest compression and no interlace.
d) Image is saved but we also want Photoshop to close the png so that it does not open 200 tabs for editing 200 pngs. So, click on close (Small cross on title bar of png). If, it asks that do you want to save changes to png . Say no, because if you say yes, the png in Battery Base will be changes and when batch processing is done, that png in Battery Done will be of different color that all others.And also, your all green pngs in Battery Base folder will turn purple too. But we want purple images in Battery Done and green in Battery Base.
5. Now, we hae done what we want, so, we will stop recording the Action. Click on that square in Actions Palette.
6. Fun Starts. Now we will do the batch processing.
Go to File>Automate>Batch
In the dialog box, Choose the action to be Battery_Color (or obiviously any action you created)
Source folder: Battery Base
Destination Folder: Battery Done
Tick both Override Action 'Open' commands and Override Action 'Save as' commands
Click on OK. Sit back for 3 to 5 minutes(204 pngs) and TADA
You can apply any action in same way. Such as bevel, glossy, pale, etc to innumerous amount of pngs
Why APK-Multitool?​
Yeah, why not just apktool or VTS (Virtuous Ten Studio)
But, when working with certain system apk files, there is a feature of APK Multitool that comes in very handy and that is, making a keep folder and asking you to delete stuff which you modded to then make an apk file. Certain files in apk do not need to be touched which can be easily controlled by APK Multitool.
Note: This is no way against VTS in any form
As I was making a guide which ensured least amount of errors, I chose APK Multitool, because we can easily fix those known errors od Status Bar disappearing or this and that :victory:
apktool is very minimalistic but not too user friendly for a newbie. And it may return with huge amount of errors if not used correctly.
So, APK Multitool is a perfect balance in between simplicity and work power
FAQ
Oops
Last One left
Awesome guide areeb..
Will include this guide in the index for sure
-asdf-
Will be a great guide for me
Sent from my GT-I9100 using Tapatalk 2
Great guide.
Good info. Nice work :good:
This is a good guide, very good one. But, I've found that the latest APK Multi Tool doesn't work for Android 4.2.2 apks.
Does this one work? Any solution?
krazzyvishal said:
This is a good guide, very good one. But, I've found that the latest APK Multi Tool doesn't work for Android 4.2.2 apks.
Does this one work? Any solution?
Click to expand...
Click to collapse
Thanks for notifying
You can try downloading this - http://d-h.st/cze and replacing the previous files with the new files in others folder
It's by Rizal Lovin from his guide here http://forum.xda-developers.com/showthread.php?t=2195680
Or you can notify the bug (if it's a bug ) here http://forum.xda-developers.com/showthread.php?t=1310151
Best theming guide i ever seen
i love ur ,9 pngs method and how u explained us more deeply about them
Thanks
krazzyvishal said:
This is a good guide, very good one. But, I've found that the latest APK Multi Tool doesn't work for Android 4.2.2 apks.
Does this one work? Any solution?
Click to expand...
Click to collapse
Try some of the suggestions in my guide. Link below.
From me to you.
great guide for starters
all hail to areeb
iamareebjamal said:
So, after decompiling apk, open 9 png in Photoshop and select the part inside that 1 px border and edit anything you want (Hue, Saturation, Bevel, Emboss, ANYTHING)
Click to expand...
Click to collapse
Here's what i do if i want to keep the .9.png border intact:
Open my .9.png.
Select>All.
Select>Modify>Border. Set width at 1 pixel.
Select>Inverse.
Edit>Cut.
Edit>Paste special>Paste in place.
Layer>Arrange>Send to back.
This splits the the border from the image allowing you to edit the image freely without affecting the 9patch.
I'll attach my action i created to automate the process.
Extract the action from the zip.
Window>Actions.
Select dropdown menu.
Load actions> select split.9.atn
One final thing. Photoshop has no problems with the .9.png extension. When you save your image (save for web) it will show as .png, just insert .9 into the name. I've never had a problem.:good:
Appreciate! Great guide
dully79 said:
Here's what i do if i want to keep the .9.png border intact:
Open my .9.png.
Select>All.
Select>Modify>Border. Set width at 1 pixel.
Select>Inverse.
Edit>Cut.
Edit>Paste special>Paste in place.
Layer>Arrange>Send to back.
This splits the the border from the image allowing you to edit the image freely without affecting the 9patch.
I'll attach my action i created to automate the process.
Extract the action from the zip.
Window>Actions.
Select dropdown menu.
Load actions> select split.9.atn
One final thing. Photoshop has no problems with the .9.png extension. When you save your image (save for web) it will show as .png, just insert .9 into the name. I've never had a problem.:good:
Click to expand...
Click to collapse
Thanks for suggestions
About last thing, I never said anything about Photoshop having problems with .9.png files
Maybe words appeared different from what they meant
iamareebjamal said:
Thanks for suggestions
About last thing, I never said anything about Photoshop having problems with .9.png files
Maybe words appeared different from what they meant
Click to expand...
Click to collapse
Sorry, my bad. I didn't mean it had problems. What I was trying to say is you can just add the .9 without any problems.
Normally I just copy the nines into a separate folder, work on them, then when saving double click and replace. Doesn't save much time with a handful, but when you have quite a lot it all adds up. Plus you still have the originals incase of an error.
dully79 said:
One final thing. Photoshop has no problems with the .9.png extension. When you save your image (save for web) it will show as .png, just insert .9 into the name. I've never had a problem.:good:
Click to expand...
Click to collapse
I think you're using a step or two more than you need to layer the border, and to save I just merge the layers, save and close.
XperienceD said:
I think you're using a step or two more than you need to layer the border, and to save I just merge the layers, save and close.
Click to expand...
Click to collapse
What steps are they? When it's automated using the action it takes less than a second.
Everyone has their own technique, personally I think merging layers and saving is redundant as they are merged when saved.

Regarding omnistyle theming

Hello I created custom header image to use with omnistyle. But I realised I need a full apk to get it work. There is no option in pure nexus ROM to use custom header image (my own image). So how do I create an app (like this https://play.google.com/store/apps/details?id=com.dirtyunicorns.headers&hl=en )for omnistyle? I tried googling but could not find an answer. I am not a developer but some guidance or template would help.
Hello, i don't know if you still need this? I can make a template for Android Studio with a little guide if this is still relevant.
PONYMODZ said:
Hello, i don't know if you still need this? I can make a template for Android Studio with a little guide if this is still relevant.
Click to expand...
Click to collapse
Do you happen to know where to go to change the OmniStyle QS image collection names? For example, I've replace all of the "Nature" images with pictures of sharks. That was easy enough and the new images show up and work, but the image collection in the list still says "Nature." I would like to change it to say "Sharks." I've dug through the OminStyle.apk up and down, but I can't find where those names are set. I see them in the AndroidManifest.xml, but changing the android:label in the androidmanifest.xml has no effect.
sharkie405 said:
Do you happen to know where to go to change the OmniStyle QS image collection names? For example, I've replace all of the "Nature" images with pictures of sharks. That was easy enough and the new images show up and work, but the image collection in the list still says "Nature." I would like to change it to say "Sharks." I've dug through the OminStyle.apk up and down, but I can't find where those names are set. I see them in the AndroidManifest.xml, but changing the android:label in the androidmanifest.xml has no effect.
Click to expand...
Click to collapse
The names are set in the androidmanifest.xml i have no clue why it does not work for you. But it would be easier if you just add your images with an apk or add them directly to the Omnistyle.apk if you need help with that just contact me.
PONYMODZ said:
The names are set in the androidmanifest.xml i have no clue why it does not work for you. But it would be easier if you just add your images with an apk or add them directly to the Omnistyle.apk if you need help with that just contact me.
Click to expand...
Click to collapse
I've already added my images to the OmniStyle.apk, and that works. I just want the image group text to say what the actual images are rather than whatever the text is by default.
I'd rather work it out in the thread, if that's alright. This way others can find it should they need it.
I'm about to go to bed now, but tomorrow I can upload the AndroidManifest.xml, or the APK I'm working with, if you want to have a look. Let me know how to proceed.
Thank you so much for being willing to help me out with this!
Sent from my moto g(6) using XDA Labs
So here's what I have so far:
- You can see in the attached screenshot (AndroidManifext-xml_Changes.png) that I've changed the text in the "android:lable" section of each activity.
- You can see in the attached screenshot (Screenshot_MiXplorer_20190612-122940.png) taken from the OmniStyle.apk on my phone that the AndroidManifest.xml is there on my phone with my new text changes.
- However, you can see in the attached screenshot (HeaderImageCollectionTitle-NoChange.png) that the changed labels did not actually change anything.
More Information:
- This is the OmniStyle.apk from the 6-4-19 release of the Havoc ROM for the Pixel 2 XL. I've also check this ROM's Setting.apk and SystemUI.apk in case the text was set there, but I don't see any reference to those words anywhere in Settings or SystemUI. The link to that ROM is: https://forum.xda-developers.com/pixel-2-xl/development/pie-havoc-os-t3851780
- Here's a link where you can download my already modded apk as well in case you wanted to have a look at it (It's too big to upload directly): https://drive.google.com/open?id=1N-ivQSa3In1LbD8LZ4QrVrzo1HAB0giT
Let me know what else you need, if anything.
@sharkie405
So i have checked the apk and the Androidmanifest.xml is correct but when i tested the apk, for me it wasn't working at all. I use the same ROM as you on my S7(herolte) and when i replace my apk with yours there it cant be loaded at all i just see my custom Headers, maybe it's an issue with your ROM or the apk itself. Try to update your ROM and edit the new apk again, but best would be to restore your Omnistyle.apk and make custom headers with the Android Studio Template from me, if you need help with it just ask

Modifying the layout of the Joying Radio app

Modifying the layout of the Joying Radio app.
version 0.2 See changelog at the bottom of this post.
This works in essence for most apks. There are some differences where the layout is defined in xml files or in json files.
Requirements:
java runtime version 7 or better.
apktool: (https://ibotpeaches.github.io/Apktool/)
Editor that handles unix LF correct. Any linux or Mac OS/X editor will do. Notepad on Windows does NOT. On Windows use Notepad++: (https://notepad-plus-plus.org/download/) for example.
Optional: ApkPack: (http://mirrors.gtxlabs.com/joying/3_Misc_Tools/ApkPack/)
Read(!!) the basic apktool Basic, Decoding, Building: (https://ibotpeaches.github.io/Apktool/documentation/) documentation to get a general understanding for the apk structure. It's about 1½ page and prevents a lot of questions.
Knowledge of working in a terminal / command box (some people still call this a DOS-box). These actions are not done using a nice graphical interface/program.
Installation of requirements:
Java: Either use Sun java: (https://www.java.com) for all platforms, Openjdk: (http://openjdk.java.net) for linux, or Mac OS/X's own java version (make sure it is version 7 or better)
apktool: See here: (https://ibotpeaches.github.io/Apktool/install/)
ApkPack.exe: This one can be used to pack/unpack the Allapp.pkg. This allows you to get the apks. Another option is to "adb pull" the original from your unit to work on.
apkPack is a windows binary but runs fine under wine.
General note
An apk file is actually nothing more than a zip file. This means that you can also unzip/rezip an apk. For only modifying buttons and other graphical elements, this is sufficient. When you also want to modify the layout of the main screen or sub-screens, you really need apktool to decompile/compile. If you want to do minor code changes, you also need apktool. (Also a java jar file is also nothing more than a zip file).
Note for Windows users
Text files contain lines (obvious). These lines end with CRLF ("\r\n") line endings on Windows (and MAC versions before OS/X). On linuxes/unixes they end with "\n".
For some files inside an apk this really matters! That's why you need an editor that can handle that correctly, like for example Notepad++.
Android is Case sensitive! Uppercase and lowercase characters do matter and are different (unless when used in strings)
Getting the radio apk
Copy one of my radio mods.
Use ApkPack.exe to get the apk out of the Allapp.pkg.
Use adb to copy the apk from the unit like "adb pull /system/app/JY-1-C9-Radio-V1.0/JY-1-C9-Radio-V1.0.apk ." (the last "." is not a typo). This assumes you already made a connection via USB or tcpip
Download the apk from "http://mirrors.gtxlabs.com/joying/1_Firmware/".
Install framework-res for use in apktool
This step might not be necessary for the radio apk, but is necessary if you modify apks that use system functions. It's anyway better to do this step.
Every Apktool release contains internally the most up to date AOSP framework at the time of the release. This allows you to decode and build most apks without a problem. However, manufacturers add their own framework files in addition to the regular AOSP ones. To use apktool against these manufacturer apks you must first install the manufacturer framework files.
Inside the 5009_60.zip (or previously the 5009_20.zip), you will find inside "/system/framework" the "framework-res.apk". Extract that one from the zip.
In a terminal window, you do on the command line:
Code:
<path_to>/apktool if <path_to>/framework-res.apk
You need to do this step for every new ROM upgrade from Joying.
Decompile the apk
Create some folder where you want to work on the apk.
Inside that folder do inside a terminal:
Code:
<path_to>/apktool d <path_to>/JY-JY-1-C9-Radio-V1.0.apk
(Change forward slash "/" to backward slash "" on windows.).
This will create a folder "JY-JY-1-C9-Radio-V1.0" containing the decompiled apk including the from-binary-to-UTF-8 text converted AndroidManifest.xml.
Code:
AndroidManifest.xml (file)
apktool.yml (file)
assets (folder containing "all kind of things" needed by the apk, but not belonging to the standard res structure. This can be images, files, scripts or even other apks)
original (folder containing original AndroidManifest.xml)
res (folder containing layout, graphics, translations, etc.)
smali (folder containing the decompiled code in "smali" format)
The "res" folder contains a large amount of sub folders.
The three most important folders are:
Code:
drawable-land-nodpi-v4 (contains resolution unspecific graphic elements for landscape mode)
drawable-nodpi-v4 (portrait version of above. Only needed because the original apk contains a corrupt png and can't be recompiled)
raw (contains screen config/layout in json formatted files. Most apks have the config/layout in straight xml)
Initial steps when using the original apk
When using the original apk (instead of one of my mods), you need two extra steps:
- Copy the "ic_point.png" from the folder "drawable-land-nodpi-v4" to the folder "drawable-nodpi-v4". As mentioned: that png is corrupt in the original "drawable-nodpi-v4" which makes that you can't recompile the apk.
- You need to make a small code change in smali to get rid of the "PS:" prefix in front of the PS-text containing the station name.
Edit the "smali/com/syu/radio/RadioController.smali" in a good editor! (NOT Notepad).
Search for the string "PS:" which is in line 1557.
Change:
Code:
const-string v3, "PS:"
into
Code:
const-string v3, ""
Relation between the graphical elements and the layout definition
All the graphical elements like buttons, the frequency ruler and numbers for the (big) frequency are in "res/drawable-land-nodpi-v4".
The layout definition is in "raw/radio_ui.json". The "radio_ui.json" determines which graphical elements are used, and how and where they are positioned. The "radio_ui.json" also determines which texts in which font and font size are used and where they are positioned.
Examples:
The big frequency ruler is named "type":"HorizontalRuler" in the radio_ui.json and defined by the graphical element "drawables":["bk_ruler"], where "bk_ruler.png" is the image. Note that in the json file no extensions (.png) are used.
The "type":"StationView" determines the 6 buttons with inactive (unselected: *_n), active (current selected: *_p) and "on_click/on_tap" (*_p) state. Note also that you will find a ' "extras":[30,0,0,0],' in these sections. This will offset the x-postion 30 pixels to the right. If you want to center the text, change it to: "extras":[0,0,0,0],
The Frequency numbers and the buttons left/right around it. The frequency numbers are the images "num_0.png" to "num_9.png", plus the "num_point.png". The buttons left/right are the "drawables":["ic_freqm_n", "ic_freqm_p"] (down) and "drawables":["ic_freqp_n", "ic_freqp_p"] (up).
The PS, TA, AF, PTY etcetera can easily be found. These do not contain "drawables" (images), but are defined by textsize and text color.
All elements are positioned in a "X0,Y0,X1,Y1" or "top_left_X, top_left_Y,bottom_right_X, bottom_right_Y] rectangle.
Actually this is all.
You can play with it to change the layout.
If you want to change color or form of buttons, ruler or other elements, you have to modify exiting elements or create new elements in either Gimp or Photoshop or another package you are familiar with.
Note1: most PNGs are stored in "optimized" color mode (only store used colors) instead of "RGB" color mode (use full color palette). On small PNGs this can reduce the files by a factor 2, thereby reducing your apk size from ~2 MB to ~1.5 MB. This also means that in Gimp or Photoshop (or whatever), you first need to set the color mode to "RGB" before altering the elements, and before saving them back to "optimized".
Note2: Remember that Android is case-sensitive. When working with the layout or the graphics, keep this in mind!
Recompile the apk
When you are done "playing" and you want to experience the great and glorious app you created, you need to recompile it.
In your folder where you have the unpacked folder "JY-JY-1-C9-Radio-V1.0", you do a:
Code:
<path_to>/apktool -c b JY-JY-1-C9-Radio-V1.0
- Note that you specify the folder name, not some apk name
- the "b" is for build.
- The "-c" is to use the original AndroidManifest.xml
If you see errors, please first google for it before asking questions. There is so much to find on this stuff on the web.
If your apk compiled successfully (don't mind the warnings), you will find it inside "JY-JY-1-C9-Radio-V1.0/disẗ" as a new "JY-JY-1-C9-Radio-V1.0.apk".
Push the apk to your unit.
Simply use one of the scripts from my repository. Make sure to have adb in the right place (windows) or change the script accordingly. Read the Readme: (https://github.com/hvdwolf/Joying-RootAssistant/blob/master/Radio-Mod/Readme.md) on my github repository inside the "Radio-Mod" section for info on how to use the scripts to install it on your unit.
Troubleshooting
Q1. adb or adb.exe can't be found.
A1. Make sure you have adb installed. Use the proper path to adb.
Q2. I can't get a connection to the unit.
A2. Search the web and find out how adb should work, see also the readme in my Radio mods. On 6.0.1 first activate adb over tcpip, or conect via USB.
Q3. You get an android icon instead of the Radio icon and when you tap it, your unit says "application not installed".
A3. Reboot, check again and try another time to copy it to your unit. If nothing works (after a couple of attempts), reboot and copy the original radio apk back in place, reboot again.
Q4. You rebooted the unit and you hear music, but you don't see a Radio icon.
A4. Same as Q3/A3: so do the same. This is due to the fact that the Radio function is a 2-step approach on the Intel joying units. The CarRadio.apk (hidden) does the real work. The Radio.apk is just the visible "tweak and go" app.
Changelog:
Version 0.2, 06 June 2017; few typos and rephrasing; Add reference to working in terminal / cmd box; Add paragraph on installing framework-res.apk as dependency for apktool.
Version 0.1, 05 June 2017; first version
Do you need to pull the framework file from the unit and load into apk tool first?
https://ibotpeaches.github.io/Apktool/documentation/#framework-files
I ran into issues on 6 with apktool until I loaded the framework.
gustden said:
Do you need to pull the framework file from the unit and load into apk tool first?
https://ibotpeaches.github.io/Apktool/documentation/#framework-files
I ran into issues on 6 with apktool until I loaded the framework.
Click to expand...
Click to collapse
Did you have issues with the Radio app or with the SofiaServer apk?
I tried with the framework that came with apktool (inside the jar) and with the framework-res.apk from the joying unit.
Apart from the issues you can encounter on this 6.0.1 version, I didn't notice differences for the Radio app.
I can imagine that with SofiaServer being a real system app, that it also might need the framework-res.apk.
However, normally when decompiling you get an error if you miss a "framework" type apk. It will even mention which apk you need. (Had that on my previous Samsung phone which uses a lot of Samsung only resource and framework like apks.
I will at least add a 5th Q/A section describing how to do that.
surfer63 said:
Did you have issues with the Radio app or with the SofiaServer apk?
I tried with the framework that came with apktool (inside the jar) and with the framework-res.apk from the joying unit.
Apart from the issues you can encounter on this 6.0.1 version, I didn't notice differences for the Radio app.
I can imagine that with SofiaServer being a real system app, that it also might need the framework-res.apk.
However, normally when decompiling you get an error if you miss a "framework" type apk. It will even mention which apk you need. (Had that on my previous Samsung phone which uses a lot of Samsung only resource and framework like apks.
I will at least add a 5th Q/A section describing how to do that.
Click to expand...
Click to collapse
I had issues when I made changes to the SofiaServer apk. I initially built against the 6.0.1 ROM using the 5.1.1 framework. I didn't see any errors, the apk just would not work when loaded on the unit. Now, I pull it from the ROM and load on every ROM update ( just to be safe).
gustden said:
I had issues when I made changes to the SofiaServer apk. I initially built against the 6.0.1 ROM using the 5.1.1 framework. I didn't see any errors, the apk just would not work when loaded on the unit. Now, I pull it from the ROM and load on every ROM update ( just to be safe).
Click to expand...
Click to collapse
I added a section and not as a new Q/A

Categories

Resources