Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,739,209 Members 48,228 Now Online
XDA Developers Android and Mobile Development Forum

[APK][Xposed] ResXploit : Theming your android the easiest way! No decompiling APKs!

Tip us?
 
WisdomSky
Old
(Last edited by WisdomSky; 3rd October 2013 at 03:40 PM.)
#1  
WisdomSky's Avatar
Senior Member - OP
Thanks Meter 579
Posts: 139
Join Date: May 2013
Location: In your mind

 
DONATE TO ME
Battery Full [APK][Xposed] ResXploit : Theming your android the easiest way! No decompiling APKs!

This would be my second public-released xposed module...

(A duplicate thread is also posted in the Android Themes Section, so user who are only interested in themes can also see this)

I did not expect that my WisdomSky Xploit would be a big hit.
I'm just an Amateur developer who just started delving into android development 3months ago and I didn't expect that much appreciation from my work... XD

But all of these would not be made possible if not because of sir @rovo89 and sir @Tungstwenty and their Xposed Framework, right? That's why I thank them a lot...

REQUIREMENTS
Xposed framework must be pre-installed before installing this.


What does the ResXploit do?

ResXploit has two parts:
the Removable part, terminal
and the main star, engine

The terminal is where you enter the commands(I'll discuss it later). These commands will then be interpreted by the engine and then passed to Xposed framework...

Flow:
TERMINAL >> ENGINE >> XPOSED FRAMEWORK

I have provided a variety of modules:
ResXploit (Terminal + Engine) (RECOMMENDED FOR NEWBIES)
ResXploit Terminal (Terminal Only)(DEPRECATED)
ResXploit Engine (Engine Only)

You might be wondering why I made one which has both terminal and engine... and other two which are separated...
ROM Chefs, Themers and some others would understand directly why...

All the commands are interpreted by the Engine right? so that would mean that once you have entered all the desired commands, the terminal will now end up as useless... so you will just delete so no one can touch the engine...
If you are a ROM Chef or a themer, you can theme all the apps you need to theme using ResXploit and then remove the terminal, so end-user interaction of the engine is prevented after you have released your ROMs to the world.

FOR NEWBIES!
I recommend you to use the ResXploit (Terminal + Engine)...
It is very smart..
I included 99% accurate error-checking system,
line numbering system,
and also Xposed module prioritization(which is first implemented on ResXploit for better module performance).



COMMANDS
We have four basic commands in the ResXploit, the apk, drawable, string, and boolean.

apk - A prerequisite command. This command is very vital whenever you using the ResXploit. This will define the target application by using the package name of the target application. You need to include this before you enter any command or else your command will not know which application is targeted and end up in lost island.

Code:
Select Code
format: apk <package name>
example: apk com.android.systemui

drawable(also drw) - The most often used command. The command which will change icons/images (png drawables) of an application. You can either overlay the existing image with your favorite color or completely replaced it with a .png image from your sdcard.

Code:
Select Code
format1: drawable <target application's drawable name> <image path, no need to include /sdcard> <transparency, 0 to 255>
example1: drawable status_bar_background bg.png 255

format2: drawable <target application's drawable name> <HEX RGB color code> <transparency, 0 to 255>
example2: drawable status_bar_background #fff00ff 255

string(also str) - This command will change string(text) values of the application. The predefined string values are usually located in res/values/strings.xml of an application, but I guess they are not visible when you view the contents of an application using Archive managers like RootExplorer. But there is a way to identify them. I will include it later.

Code:
Select Code
format: string  <target application's string value holder name> <replacement string>
example: string app_name My App

boolean(also bln) - This command will change boolean values of the application. The predefined boolean values are usually located in res/values/bools.xml of an application, but I guess they are not visible when you view the contents of an application using Archive managers like RootExplorer as well.

Code:
Select Code
format: boolean  <target application's boolean value holder name> <replacement boolean value, either true or false only>
example: boolean allowNumberNotifications true

Some simple examples screenshots:

drawable and string commands in action



ResXploit UI screenshots:



If you find my ResXploit module interesting,
Please hit THANKS!!! XD



UPDATES & CHANGELOGS:

ResXploit Engine 1.0.8 - added support to framework-res(android).(latest)
ResXploit 1.0.8 - updated engine(1.0.8).(latest)

NOTICE: ResXploit is now an abandonware.
My flash drive where I stored the sources of my android projects was corrupted unexpectedly.
And also, my phone was broken. I have no device to use to re-write everything from scratch... Sorry...
Attached Files
File Type: apk ResXploit.apk - [Click for QR Code] (24.5 KB, 1887 views)
File Type: apk ResXploitEngine.apk - [Click for QR Code] (14.2 KB, 872 views)
File Type: apk ResXploitTerminal.apk - [Click for QR Code] (22.9 KB, 1110 views)
File Type: apk resxploit-1.0.8(latest).apk - [Click for QR Code] (25.9 KB, 3145 views)
File Type: apk resxploit-engine-only-1.0.8(latest).apk - [Click for QR Code] (15.0 KB, 897 views)

Projects Featured in XDA Portal:
- WisdomSky Xploit: customize statusbar and clock color
- ResXploit: theme android without decompiling apks

UPCOMING PROJECT:
ROM++: Your ROM's OTA update solutions...
The Following 121 Users Say Thank You to WisdomSky For This Useful Post: [ Click to Expand ]
 
WisdomSky
Old
(Last edited by WisdomSky; 16th August 2013 at 03:50 PM.)
#2  
WisdomSky's Avatar
Senior Member - OP
Thanks Meter 579
Posts: 139
Join Date: May 2013
Location: In your mind

 
DONATE TO ME
Tutorial and samples

System Apps Package Names:
SystemUI - com.android.systemui
Settings - com.android.settings
Mms - com.android.mms
Contacts - com.android.contacts
Launcher - com.android.launcher
Gallery - com.android.gallery3d
File Explorer - com.android.qrdfileexplorer
Framework-res - android
Tip: If you want to find the package name of a specific application(not on the list), you can open Root Explorer(download it from googleplay) and then browse the apk you want to check, open it and choose "view". You can find AndroidMaifest.xml file inside. Open it then find the package="xxxxxxxxxxx". The words or group of words inside the quotations separated by a period is the package name of that application.

Note: ResXploit is far safer(in terms of error awareness) to use than the ResXploit terminal. If possible, only use ResXploit. In the simple tutorials below, please expect that I'm referring to ResXploit only.



Changing Statusbar background color
let's say color red...
Code:
Select Code
#!/
apk com.android.systemui
drawable status_bar_background #ff0000 255
Changing Notifications Panel background color into transparent
Code:
Select Code
#!/
apk com.android.systemui
drawable notification_panel_bg #000000 0
Changing Notifications Panel background with an image from sdcard
let's say that the png image is located in /sdcard/my_img.png
Code:
Select Code
#!/
apk com.android.systemui
drawable notification_panel_bg my_img.png 255
You might be wondering where i'd get the target application's drawable filename?
Actually, you can just open the root explorer and view the files inside the apk of the target application. under the /res directory(folder), you can find a variety of subdirectories prefixed with [drawable, like drawable-hdpi,drawable-mdpi and so on... Basically, all images inside those folders are under the scope of drawable command in Resxploit. And if you want to target a certain image in the drawable folders, you just need to get the file name without the .png or .9.png. That's it!



Adding "comments"...
Comments in programming are human-readable additional information. If you want to put notes somewhere in your script, you can put "#" before your statement. When the terminal find a "#" before a statement, the terminal will ignore it and skip it. However if you will enter a non-command information and is not started withcl a "#", the terminal will ofcourse read it as command and then throws an error message.

Code:
Select Code
#!/

# my comment. my comment. my comment  
apk com.android.systemui
drawable status_bar_background #ff0000 255

# the terminal will skip the command below
# because it started with a "#"

#drawable oh_no #ff00ff 255


Defining working directory path of your images
If you want to start theming and you already have the images you want to use stored inside a single folder, then you can tell the terminal where these images are located so you don't need to enter the path redundantly.
You can define it on the very first line of ResXploit, after the "#!/" you can add the folder name or path to the folder.

let's say we have our images put in a folder in sdcard named my_images or /sdcard/my_images, then you can define it like this.
Code:
Select Code
#!/my_images

#we can start theming now
drawable hello some_image.png 255
drawable world next_image.png 255

Projects Featured in XDA Portal:
- WisdomSky Xploit: customize statusbar and clock color
- ResXploit: theme android without decompiling apks

UPCOMING PROJECT:
ROM++: Your ROM's OTA update solutions...
The Following 44 Users Say Thank You to WisdomSky For This Useful Post: [ Click to Expand ]
 
greedisgood99999
Old
(Last edited by diestarbucks; 10th August 2013 at 04:39 PM.)
#3  
Senior Member
Thanks Meter 8
Posts: 293
Join Date: Apr 2012
great work dude...noypi are very smart of course,,
The Following User Says Thank You to greedisgood99999 For This Useful Post: [ Click to Expand ]
 
daggerxXxsin
Old
#4  
daggerxXxsin's Avatar
Senior Member
Thanks Meter 36
Posts: 287
Join Date: Aug 2011
Location: Manila
Very interesting. I've been interested in theming for a while now but haven't gotten my feet wet. I'll be waiting for your tutorials. Great work mate!

Sent from my Galaxy Nexus
 
souler456
Old
(Last edited by souler456; 10th August 2013 at 04:13 PM.)
#5  
souler456's Avatar
Senior Member
Thanks Meter 63
Posts: 298
Join Date: Jan 2013
Location: C:/Earth/Asia/Philippines/Laguna/Calamba
Nice! I love to see Pinoys In-Action with the XDA community!

Will wait for the tutorial of yours repa!


@greedisgood99999 Please stop that bad-habit of quoting... It's quite irritating tropa...
The Following User Says Thank You to souler456 For This Useful Post: [ Click to Expand ]
 
meatballstz
Old
#6  
meatballstz's Avatar
Member
Thanks Meter 5
Posts: 42
Join Date: Oct 2012
Location: Pekalongan
Wait for the tutorial

Sent from my Xperia Mini Pro
 
Dovidhalevi
Old
#7  
Senior Member
Thanks Meter 957
Posts: 1,979
Join Date: Jun 2012
So ... a scriptable general purpose module. This is a phenomenal idea. OK still requires digging into the apk but a whole lot easier than building a new module from scratch.

Mission: Get rid of Armv7 calls the FC apps on my old clunker (also need help buying a new phone--if I had it, would have reserved the edge already!). Google Now first tries to init the "off line" voice recognition engine. Minimum, want to simply disable this call. I use overlays to prevent other such calls. Maximal, to replace with the old "on line" voice recognition engine.

Capability in this yet?
Among the booleans?

what say you
The Following User Says Thank You to Dovidhalevi For This Useful Post: [ Click to Expand ]
 
WisdomSky
Old
#8  
WisdomSky's Avatar
Senior Member - OP
Thanks Meter 579
Posts: 139
Join Date: May 2013
Location: In your mind

 
DONATE TO ME
Quote:
Originally Posted by Dovidhalevi View Post
So ... a scriptable general purpose module. This is a phenomenal idea. OK still requires digging into the apk but a whole lot easier than building a new module from scratch.

Mission: Get rid of Armv7 calls the FC apps on my old clunker (also need help buying a new phone--if I had it, would have reserved the edge already!). Google Now first tries to init the "off line" voice recognition engine. Minimum, want to simply disable this call. I use overlays to prevent other such calls. Maximal, to replace with the old "on line" voice recognition engine.

Capability in this yet?
Among the booleans?

what say you
i don'think so... because ResXploit's scope is only the res or resource directory of the apk structure...
if a boolean value is defined in the res/values/bools.xml that will actually toggle controls then it would be great... but i think, in your case it is deeply hard-coded to work like that...

Projects Featured in XDA Portal:
- WisdomSky Xploit: customize statusbar and clock color
- ResXploit: theme android without decompiling apks

UPCOMING PROJECT:
ROM++: Your ROM's OTA update solutions...
The Following 2 Users Say Thank You to WisdomSky For This Useful Post: [ Click to Expand ]
 
Metallijim
Old
(Last edited by Metallijim; 11th August 2013 at 08:54 PM.)
#9  
Metallijim's Avatar
Senior Member
Thanks Meter 593
Posts: 1,010
Join Date: Dec 2011
Location: Bedford

 
DONATE TO ME
Default Framework.res?

Can you theme the framework.res using this?

package name is only 'android' no com. or anything..

EDIT: Tried and it seems to go through ok, but nothing seems to change. Rebooted several times, changed an image in my keyboard, checked it was ticked in Xposed framework, setup a folder in my internal storage, checked superuser granted access, pressed high priority in settings. Don't know

Here's a debug log (uploading tomorrow, pc occupied)
 
Rokonacdc
Old
#10  
Rokonacdc's Avatar
Senior Member
Thanks Meter 51
Posts: 174
Join Date: Jul 2013
Will this work for non system apps? The unlock button on the PowerAmp lock screen drives me insane because it's the only thing I can't change and I absolutely hate green.

Tags
xposed theme wisdomsky resxploit hack
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes