What do you think? - Android Q&A, Help & Troubleshooting

Hello guys, I had an idea and wanted to discuss it with you people that you are definitely more experienced than me, I was wondering if it was possible to create a single apk which is the ROM, or this apk should include the bootanimation, and the launcher would be the apk (or rather a activity in it) ditto for SystemUI framework-res or for short, this apk should consist of the various components that make up a normal ROM, all in one file (except, I think for the folder META-INF because that is read, as far as I know, the default of any recovery, or should create a recovery made ​​on purpose), the benefits would be many of the small size of the system, the speed, the "simplicity" of programming (think that should be programmed to a single apk with all the functions of a system and not to distribute all in many files), but then I came effettivamante doubt that this is not feasible, and so I wondered if you could do the same thing but only for apk (those contained in the app folder)
So what do you think?Is feasible?

No.

R: What do you think?
luxifr said:
No.
Click to expand...
Click to collapse
Why?

UP!! someone might be a little more precise

---blacksoul--- said:
UP!! someone might be a little more precise
Click to expand...
Click to collapse
Don't bump your own thread. Why on earth would we even want to do it? It would increase the size of the ROM, make it extremely hard to debug, and I'm not even sure how it could hypothetically work.

"Joining" all the system apps is certainly possible.
But:
-Seperate apps can be supported and updated better
-One APK with ALL THOSE THOUSENDS of Java code lines is VERY messy
-Compiling it would take long , very long - less attractive to developers
-I can think of much more, but it isn't of any use so I'll stop here.
Cy
Sent from my Galaxy Nexus running Android 4.2 JB

I'll add one other...
You'd still need an underlying file system since Android/Java are interpreted languages and require an interpreter to execute the code.

Related

Developer workflow?

Hi there! I was curious as to the ROM developer workflow. I'm somewhat familiar with building AOSP for x86 VMs and have done some skinning and manipulating system apk's ... but I have some other questions:
1. What distinguishes a ROM package from other zip installers, I guess since it is *nix, everything's a file and most ZIPs then just have the files changed?
2. Jokersax makes mention of doing all development on the device itself... What this workflow, just doing a lot of nandroid backups then, or just replacing things on the fly and hoping for the best?
3. What options exist for adapting system level native code, perhaps I guess I'm asking if, for instance, the camera works with Blur stock SBFs, how could one go disassembling the functionality and deriving CM9 compatible packages? Are the drivers that tightly coupled with the UI elements? That would seem impossible to maintain, and say what you want about Motorola, I couldn't imagine this to be the case.
Thanks -ap
Sent from my MB855 using xda app-developers app
antipasto said:
Hi there! I was curious as to the ROM developer workflow. I'm somewhat familiar with building AOSP for x86 VMs and have done some skinning and manipulating system apk's ... but I have some other questions:
1. What distinguishes a ROM package from other zip installers, I guess since it is *nix, everything's a file and most ZIPs then just have the files changed?
2. Jokersax makes mention of doing all development on the device itself... What this workflow, just doing a lot of nandroid backups then, or just replacing things on the fly and hoping for the best?
3. What options exist for adapting system level native code, perhaps I guess I'm asking if, for instance, the camera works with Blur stock SBFs, how could one go disassembling the functionality and deriving CM9 compatible packages? Are the drivers that tightly coupled with the UI elements? That would seem impossible to maintain, and say what you want about Motorola, I couldn't imagine this to be the case.
Thanks -ap
Sent from my MB855 using xda app-developers app
Click to expand...
Click to collapse
1) You are pretty much correct....and rom can be turned into a simple one file zip or vice versa
2) He actually uses the device along with a build machine. You can do some simple stuff on the device itself, but if you're going to get into decompiling jars or apks, you will need a bot or a PC.
3) Apktool (Linux/Windows) or Android Suite (Windows) will allow you to break down the apks like you are describing. I'm sure you can make a blur apk work with CM9 (obviously app developers on the Play market do manage to make both). I'm not very familiar with Blur/CM7, as I started work on ROMs after ICS had hit, and I really didn't see much real desire to do something that wasn't forward from where my phone was.
Mainly, you can do source work, which you are most likely familiar with the process of.
I do "port" work...taking the framework, apps and some other necessary functionality-related parts and making a new rom for my device with it.
If you are interested in the process, by all means get in touch with me via PM. We are in need of some people to help with a void that has been left by our team member Spleef taking on a second job.
Thank you so much for the extensive reply. I have about a kabillion personal projects, it would be perhaps interesting to ruminate some on the metadevelopment as it were, I do notice that the Cyanogen project seems to have a lot more ability to automate their workflows, it would be cool to try and get more people into those kinds of logistics to help out... Anyway, I'm trying to remain productive, I'm a long time lurker, and I can't bring myself to post unnecessarily to even get to the 10 posts I need to provide feedback in the development forums, but I'll try
I've been really inspired with the Clojure / Java community, especially "Leiningen" and things like Jenkins for continuous integration. Could be cool to try and think at this level, perhaps like a chrooted VM or something that enthusiasts could run to assist in build CPU times, or hell I dunno, this kind of thinking is all pie in the sky and is hell to set up possibly for little gain, although I'm encouraged that Bittorrent is being used a little more here and there perhaps to offload some of the hosting costs. FWIW I have used S3 in my own projects, and for various static sites I have, I've been hard pressed to pass 30 cents a month in hosting costs on S3, but this is all low traffic stuff and there's a lot of options out there with various kinds of advantages and disadvantages.
All in all, thank you all for your continued efforts, especially going into the later part of this year when JB will mature, and the possibility of ICS drivers being integrated. You guys rock!

Making "Stock" Custom ROMs Defunct (XposedFramework) - Tweaks for any ROM Version

Making "Stock" Custom ROMs Defunct (XposedFramework) - Tweaks for any ROM Version
Introduction
Recently it has dismayed me how, across the Android Community, people seem to feel that it's necessary to run a "Custom ROM" in order to get improvements and changes to your ROM. Of course, some of you know it's possible to modify the APK files directly to change things, but these changes need to be done every time your base ROM is updated. Once Samsung starts leaking out updates to 4.2 like a sieve, you guys will be all over them, needing to update your patches and tweaks every time.
Anyway, seeing this displeases me, as it encourages people to see "Custom ROMs" as a commodity, and something you consume. In essence, users were getting their "fix" of tweaks from their "chef", but not learning how to do it themselves, nor realising their beloved chef isn't doing anything magical. In fact, their chef is likely decompiling the applications, and using baksmali/apktool to take apart the app, hard-code in their changes, then rebuild it. This method has worked well for 3 years, but it's been in need of an update for some time.
The Enlightenment
Then I saw this thread by rovo89. That man deserves a beer for every Android user there is, for his work on the Xposed Framework! His and Tungstwenty's work on this has made it possible to modify the core Android system, without doing any actual modifying of applications.
OK... Why are you telling me this?
This invention seems to have pretty much gone unnoticed by the world. The reasons this is vastly superior to any other way of making modifications to apps and the system are:
Your modifications are not tied into a single version of the APK or app or framework. If the ROM is updated, the patch should still work perfectly on the new version of the app (this doesn't necessarily apply across major updates like 4.1 to 4.2, but should be fine across 4.1.0 to 4.1.2 style changes).
You are not actually modifying any files on the phone! If something goes wrong, you can just disable the support for the framework, and the tweaks will do nothing. As such, it's easier to get a working phone if something dies - in fact there is a ZIP placed on your SD for this very purpose. Just flash it in CWM and it will disable the framework.
As no actual files are being modified, it doesn't matter if your ROM is odexed, deodexed, or a bit of both (ie. certain apps deodexed, but frameworks odexed). With this, there is no reason to run a deodexed ROM, since you can change pretty much everything you want to without touching the raw files. So leave them as odex files and you'll not have any problems. Bear in mind we deodex to allow easier customisation, odexed is actually slightly faster, and removes the majority of the dexopt process on first boot.
No application signatures are modified, as the apps are not touched, so if you were to use this to modify an app like Maps or Gmail, you won't get issues when trying to update to a new version of the app via the market.
The only way this can succeed is for you to try it. I usually run a "custom ROM" on my phone. For the first time ever, I've been using a stock ROM for a significant period of time. On the Note2 in particular, Samsung is really getting good at this. But they're not perfect. And as such, I started to look at using this to perfect their work.
When you run a custom ROM, look at what you're getting, and ask yourself why it doesn't use this method. I've only made one little modification so far, but it's one that annoys me hugely! The blooming SMS -> MMS conversion when you try to write any form of prose in a text message. I cannot stand the limitation of SMS to 160 characters, so the ability to chain together messages is a godsend to me. Unfortunately though, Google and Samsung seem to like to restrict you to 3 SMS messages worth of text before converting to an MMS message. Which is wonderful, except when you have totally unlimited SMS, but pay for MMS. As such, I was finding my ability to communicate in my usual verbose way somewhat hindered by the messaging app.
Alas that is no longer an issue. If you want to get started, here's how.
OK... How do I use this?
Download and install the APK file from this post - http://forum.xda-developers.com/showthread.php?t=1574401. I have tested it on the N7100, it works fine. Run it, install the framework, grant it root (yes, this requires root!), and reboot. I have mirrored the APK below just in case of issues.
Download and install the APK modification you want from http://www.villainrom.co.uk/forum/microdownloads/
When you get a notification about enabling the modification (after the APK is installed), tap that notification, and enable the plugin by ticking the box.
Reboot your phone
Go test your modification
If you have any issues with this, please paste the contents of /data/xposed/debug.log on a pastebin site or in
Code:
tags.
[SIZE="5"][B]How can I make my own modifications like this?[/B][/SIZE]
Will post this a bit later, along with the source of this plugin.
[SIZE="5"][B]References[/B][/SIZE]
[url]http://forum.xda-developers.com/showthread.php?t=1574401[/url]
[url=http://forum.xda-developers.com/member.php?u=4322181]Tungstwenty[/url]
[url=http://forum.xda-developers.com/member.php?u=4419114]Robo89[/url]
[SIZE="5"][B]Sources[/B][/SIZE]
You can find the sources for Xposed Framework at [url]https://github.com/rovo89[/url]
You can find the sources for all Xposed modifications I have made so far on Github:
[url=https://github.com/pulser/xposedSMStoMMS]Disable SMS -> MMS Conversion[/url]
[url=https://github.com/pulser/xposedDisableBatteryFullAlert]Disable 100% Battery Notification[/url]
[url=https://github.com/pulser/xposedEnableCallRecording]Enable Call Recording[/url]
[url=https://github.com/pulser/xposedScrollingLauncherWallpaper]Enable scrolling wallpaper in stock launcher[/url]
[url=https://github.com/pulser/xposedEmailTextColour]Make text in email app message list clearer to read (lighter) on the black background[/url]
Install the Xposed Framework from this thread: http://forum.xda-developers.com/showthread.php?t=1574401
Modifications
OK so a few people suggested an addon repository... I have got one sorted
Downloads
http://www.villainrom.co.uk/forum/microdownloads/
I've added some of mine so far, but I won't add other people's - they can add them themselves, and maintain them
This system is vastly superior to a stickied forum thread, as you can update your own modification (as a developer), and as a user, receive notifications if a modification is updated.
Developers
Register for an account (Free, easy, no spam etc)
Go to http://www.villainrom.co.uk/forum/account/join-user-groups
Tick the option for Xposed Uploader, and hit Save. A request will be sent to me for your application. I'll approve it when I see it (should be quite fast, it gives me a popup)
Head back to http://www.villainrom.co.uk/forum/microdownloads/ and click the Upload button at the top right.
Use a general title that describes what your modification does. Put in a version string too. I tend to use the format 1.0, 1.1, 1.2 etc, but this is up to you. You can add Alpha or Beta or other designations if you wish.
For author, pop in your name or username. And enter a brief description of what the modification does (which will appear in the index)
Click Categories/Agreements, and select which category the modification falls under. If you think there's a category which should be added, let me know.
Under Full Description, you can enter a detailed description of your modification. Finally, under File Options, use File to Upload to select your APK file. You can optionally add an Image to Upload. The Use File URL should be set to no, and the File URL box left blank.
Users
There is no need to register an account to download files from the repository. If you wish to receive notifications of updates, you can register an account - just hit the red "Log in or Sign up" button - you can use a Twitter or Google account if you want, or just make a plain account. It makes no difference.
Head across to http://www.villainrom.co.uk/forum/microdownloads/ and have a look at the modifications you want.
Click watch file (at the bottom right) if you want notifications about updates to a modification
Click Report to report a modification for being malicious or problematic.
Click "add comment" to discuss or comment on the modification, or leave a "review" or feedback
Click on the stars under (0 votes) to leave a star rating on the modification, which will help generate most popular lists on the main page.
Click to see licence details of mine:
Feel free to use these as you wish, for non-commercial purposes. You may share these for personal use. Note that distribution in any kind of "package" or "custom ROM" is not personal use. Sending a friend a copy is personal use, feel free to do that and share the love.
Feel free to make changes to the source code of the modifications if you think you can improve them, provided you make your changes available in a similar manner. If you fix a bug or error, please send a pull request.
If you wish to use these commercially, please contact me. This includes in any "distribution package", be it a ROM, app, store, marketplace or other package. That's not in the spirit of this project, so get in touch with me and we'll discuss it.
Tl;dr:
End users, have fun, use these, enjoy them, share them, tweak them, just be sure to share your source changes and/or send a pull request if you improve something!
"Custom ROM" Developers, and anyone wanting to try to use these for commercial purposes: Don't. These are to encourage people to learn about these changes, so contact me if you want to do something else with them. Commercial use, including distribution in "Custom ROMs" is not permitted.
How to make your own such modification
This information is NOT complete. This example only uses 1 of about 10 different types of modification. I have spoken to rovo89 and he has said it would probably be possible to document this further. This example covers ONE usage case - I am going to override an entire method.
1. Create a new empty Android project in Eclipse.
2. Within the "application" section of your AndroidManifest.xml, add the following metadata:
Code:
<meta-data android:name="xposedmodule" android:value="true"/>
<meta-data android:name="xposedminversion" android:value="2.0rc1.*" />
3. Within the assets folder of the project, add a plain text file, "xposed_init". Within this, I have put
Code:
uk.co.villainrom.pulser.allowlongsms.AllowLongSMS
uk.co.villainrom.pulser.allowlongsms is the PACKAGE name of my Java package. AllowLongSMS is my class name. The purpose of this is to tell the Xposed Framework what to run.
4. Within AllowLongSMS.java (ie. the class name, with .java on the end), I put the following code:
PHP:
package uk.co.villainrom.pulser.allowlongsms; //this sets the package for our project, this is the first part of the value in xposed_init file in assets.
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XC_MethodReplacement;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
//above includes all the required parts of the xposed framework that we need here
public class AllowLongSMS implements IXposedHookLoadPackage { //here we declare the class AllowLongSMS. We say it implements IXposedHookLoadPackage, as we want to make use of the hook-in on package load. Other options are available here for working with native libs etc, and resources, but I'm not using these right now.
public static final String MY_PACKAGE_NAME = AllowLongSMS.class.getPackage()
.getName(); //this doesn't do anything, I just left it here for if I needed to write logs and wanted to have the package name easily accessible.
public static final String TAG = "PulserMmsTweak"; //same here, this doesn't do anything.
@Override //we are going to override the method handleLoadPackage, if it exists further up the hierarchy
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
//this method is called every time a package is loaded. We have a parameter that we're going to call lpparam, that is passed in, that relates to what package was loaded
if (lpparam.packageName.equals("com.android.mms")) { //if the package that has just been loaded is called "com.android.mms" then
ClassLoader classLoader = lpparam.classLoader; //create a classloader object that we can now use
XC_MethodReplacement methodreplacer = new XC_MethodReplacement() { //create a method replacer object, as we are going to REPLACE an entire method within the mms app.
protected Object replaceHookedMethod( //we make an object here, that passes in the parameters of what to actually change
XC_MethodHook.MethodHookParam paramAnonymousMethodHookParam)
throws Throwable {
return Integer.valueOf(255);
/* THIS IS THE IMPORTANT LINE
* This line returns the value 255. Why this happens won't make sense yet, but THIS is where you put your "new method" code.
*
*/
}
};
XposedHelpers.findAndHookMethod("com.android.mms.MmsConfig", //here we say that we want to find and hook into the method "getSMSToMmsTextThreshold" which is part of the class com.android.mms.MmsConfig. We then say that we're passing this to methodreplacer, which we defined earlier
classLoader, "getSmsToMmsTextThreshold", methodreplacer);
}
//if the package wasn't com.android.mms, do nothing.
}
}
Awesome work mate. Wish I had a Note 2 to check this on.
EDIT: Wait.. I can use this on any device! Rock on. Thanks!
Wow this is great post. While reading this it makes me learn something like what is going on in background.
Sent from my GT-N7100 using Tapatalk 2
Thanks for continuing that amazing project pulser!!
I think i'm going to create some small apks for some stuff very soon (and release them of course).
Cool stuff as always pulser, keep it up
simone201 said:
Thanks for continuing that amazing project pulser!!
I think i'm going to create some small apks for some stuff very soon (and release them of course).
Cool stuff as always pulser, keep it up
Click to expand...
Click to collapse
The original guys are not gone, was talking to them recently
There's scarce documentation so far on this, but I will see what else I can do with it... I might make post 2 a repository of these APKs for now...
chaitanya87 said:
Wow this is great post. While reading this it makes me learn something like what is going on in background.
Sent from my GT-N7100 using Tapatalk 2
Click to expand...
Click to collapse
That's the intention Glad it worked! This is about learning, and not just "using".
Sure, you can download the APK and use it, but that's no better than just downloading some zipkang ROM that claims it does everything including making your morning coffee... This is about taking a look at HOW it works too That way people can make their own tweaks and share them!
pulser_g2 said:
The original guys are not gone, was talking to them recently
There's scarce documentation so far on this, but I will see what else I can do with it... I might make post 2 a repository of these APKs for now...
Click to expand...
Click to collapse
A small repo for APKs would be really cool and useful for users....
tell me if i can contribute in some ways (i'm an app dev mainly also)
simone201 said:
A small repo for APKs would be really cool and useful for users....
tell me if i can contribute in some ways (i'm an app dev mainly also)
Click to expand...
Click to collapse
I will work something out (I can easily make a repository if this kicks off, so people can upload them and they appear).
TBH right now it's more a case of thinking up some ideas. For now, I can add anything people send into the second post (though I think it would be reasonable that we request source for all such modifications, just given the sheer ability to modify anything that this has...)
I can't think of enough things to tweak, we just need to work out WHAT people will like to modify, and implement it
I'll be a good example and put mine onto git shortly
My own notepad of things I need...
http://forum.xda-developers.com/showthread.php?t=1965801
http://forum.xda-developers.com/showthread.php?t=1924905
call record:
http://forum.xda-developers.com/showthread.php?t=1938808
http://forum.xda-developers.com/showthread.php?t=1871525
Hey folks,
I'm happy to see some new interest on Xposed.
I've been using it since rovo89 came up with this brilliant idea, and have to admit I was kind of sad to see not many saw its great potential.
Personally, I'm using a couple of hacks for my individual use, but if the community starts to be interested in the HOWs rather than merely nagging about the apks I guess I can try to make an effort to clean and share the code.
Please do ask away stuff, I'm eager to seeing this being used to its full potential
For now, please check the Tweakbox sources. While the code itself might no longer 100% apply to the most recent S2 stock roms, it's still a nice example of how the hacks can be done.
this sounds great! like an universal (almost!) patching system. I hope more chef will write mods for this. man...wish i had taken some lessons in coding.
for a start, how about some of the often repeated annoyance in stock samsung that drives many to use custom roms just to get these functions:-
1) disable the scrolling quick setting panel when you open notification
2) 15 toggles as implement by guys like Wanam.
3) call recording (ok we got this already)
4) 4 way reboot menu
5) some kind of user definable custom battery graphics.
sunwee said:
this sounds great! like an universal (almost!) patching system. I hope more chef will write mods for this. man...wish i had taken some lessons in coding.
for a start, how about some of the often repeated annoyance in stock samsung that drives many to use custom roms just to get these functions:-
1) disable the scrolling quick setting panel when you open notification
2) 15 toggles as implement by guys like Wanam.
3) call recording (ok we got this already)
4) 4 way reboot menu
5) some kind of user definable custom battery graphics.
Click to expand...
Click to collapse
Yeah this is pretty universal. I'd even remove the word "almost" tbh...
For 1, do you mean to disable the scroll animation so that it shows the leftmost icon (wifi) first?
2 is possible, I know samsung has done it on 4.2, is the custom implementation better?
3 is done like you said.
4 should be more than possible.
5 is definitely possible, at least via flashing the modification for the battery style you want...
Thank for the ideas
i flash custom rom just because i need below few things
1.Call-Record. (done)
2.15 toggle, or maybe add NFC, S Beam, Multiwindow, Smart Stay as well
3.Louder Volume Speaker.
4.CRT Lock and Unlock Screen.
5.4 Way Reboot.
6.Unlimited Multi-Window
thanks for the good work and sharing.
Hi. So glad to see that this amazing framework didn't "die"
I would have one question about the mods...
Ok its likely that for the same device they work on different bases of the rom like DLJ5, ELK4 am I right?
But does a mod that was made for lets say the Note 2 work on a SGS3 or must it be adapted?
Thanks !
DirkStorck said:
Hi. So glad to see that this amazing framework didn't "die"
I would have one question about the mods...
Ok its likely that for the same device they work on different bases of the rom like DLJ5, ELK4 am I right?
But does a mod that was made for lets say the Note 2 work on a SGS3 or must it be adapted?
Thanks !
Click to expand...
Click to collapse
If it's touchwiz then it should work - samsung seems to have unified a lot of it.
Jerdog used the SMS to mms patch fine on his s3.
It really just depends on the modification itself tbh...
If I would like to start writing my own mods is there somewhere a guide how to debugg the mod I write?
Thanks!
one more
can you add:
*:laugh:skip music track with volume button

[Q] apk modding question

hello. i am interested in how to mod an apk for offline capability.
for example, Asphalt 8 game, is now version 1.2.1b i have searched offline mods, i only find "unlimited money". i just want offline, no money, no nothing.
i have apktool, i have java development, i have signapk, i have software for apk midification. can you guys help me? either make my apk offline, or tell me how to do it?
It's not simple and depends on the app. If you're asking I suppose you have no idea how an app actually works? If so, there isn't much you can do…
Basically, you need to look for the relevant checks and modify/remove them.
GermainZ said:
It's not simple and depends on the app. If you're asking I suppose you have no idea how an app actually works? If so, there isn't much you can do…
Basically, you need to look for the relevant checks and modify/remove them.
Click to expand...
Click to collapse
i do know how apk's work, in fact i have decompiled and modified a fiew, signed and all such. but only minor stuff in resources or xml. i did not touch the smali. now the problem is i have no idea for what strings to search. except the "enable internet check" and some lines. but i suspect that's not all. because after i modified that, the building gave me 6 errors.

(APP PORTING) app discussion

We have stock ROMs, aosp, omni, paranoid versions and more.
As we all know mobile phone manufactures like to include there own apps. Now porting them seems like a complicates process which in most cases seems unlikely to happen.
I open this topic to hopefully get a better understanding of how apks are put together. Here I have a few question to start with and hopefully we could find a way to make porting of apps easier in the future.
1.how does the the android framework affect the app?
2.what files in the apk check the framework if compatible?
3.which files in the apk rely on the androids framework to function?
4.What are the main files to edit in an apk?
I know many apps are different but there's obviously something which stops the from being able to work on other phones. If apps in play store can played on all phones then manufacturer software must be able too.
Hopefully together we can make it possible. I've opened this to get some ideas and views from different people and more experienced developers.
Sent from my GT-I9505 using xda app-developers app
Sent from my GT-I9505 using xda app-developers app
adry1988 said:
We have stock ROMs, aosp, omni, paranoid versions and more.
As we all know mobile phone manufactures like to include there own apps. Now porting them seems like a complicates process which in most cases seems unlikely to happen.
I open this topic to hopefully get a better understanding of how apks are put together. Here I have a few question to start with and hopefully we could find a way to make porting of apps easier in the future.
1.how does the the android framework affect the app?
2.what files in the apk check the framework if compatible?
3.which files in the apk rely on the androids framework to function?
4.What are the main files to edit in an apk?
I know many apps are different but there's obviously something which stops the from being able to work on other phones. If apps in play store can played on all phones then manufacturer software must be able too.
Hopefully together we can make it possible. I've opened this to get some ideas and views from different people and more experienced developers.
Sent from my GT-I9505 using xda app-developers app
Sent from my GT-I9505 using xda app-developers app
Click to expand...
Click to collapse
framework-res.apk basically contains the
elements of the Graphical User Interface for the
phone. This file is available at /system/ framework/framework-res.apk. Poking in this file would mean changing the
complete look and feel of your device. Since it is
the main element of your screen, replacing it
directly by pushing it through ADB would lead to
soft-brick. Therefore, this apk should carefully be
modified and replaced using the recovery module of the phone.

How can I learn how Android works?

I'm not a developer but I have knowledge about Linux and how PCs in general work. Is there any book/course that explains how android works on a deeper level? I'm not interested in apps or user UIs, I want to know the deeper levels like how partitioning works, how the OS is loaded, why some bootloaders are locked by default, what a custom recovery is or what is the first thing to load when you power on your phone/tablet (do phones have a BIOS like PCs or anything equivalent?). Thanks in advance.
I'm also interested in this, but I think the answer is it's a bunch of undocumented proprietary baseband processor junk nobody will share for the boot, then the rest is basically a Linux distro made by 1000 monkeys on 1000 typewriters copy/pasting stuff provided by their hardware vendors together, and the components of that also probably have no documentation or incorrect documentation.
Just browsing through directory structures on a rooted phone there's so much unused and inaccessible junk like config files for really old versions of android, random vendor apks that aren't configured, and firmware for other processors strewn all over, sometimes multiple copies of the same structure, that it makes no sense. It looks like a bunch of vendors gave their support libraries to manufacturers with the intent they'd delete the unused parts and copy the used parts in, but the manufacturers don't understand how to do that so they just paste the same full directory structure several different places until it starts working.
If it made any sense, some people would just learn it and rooting new phones wouldn't be hard.
dan2525 said:
I'm not a developer but I have knowledge about Linux and how PCs in general work. Is there any book/course that explains how android works on a deeper level? I'm not interested in apps or user UIs, I want to know the deeper levels like how partitioning works, how the OS is loaded, why some bootloaders are locked by default, what a custom recovery is or what is the first thing to load when you power on your phone/tablet (do phones have a BIOS like PCs or anything equivalent?). Thanks in advance.
Click to expand...
Click to collapse
The rabbit hole goes as deep as you want it to. I have plenty of information to get you started. Happy digging!
*A general overview of the android boot process, thanks to the Lineage OS developers.
*An old, but good read on reverse engineering aboot.
*And a much more recent article on reverse engineering android. It gets very detailed in this one. It also goes into the low level processes of android. Like; What loads the bootloader? That kind of stuff. I think this is what you're after. Hope it helps.
About the bios question. The short answer is, "kind of". They have a very simple and proprietary one that's not easy to access. It also does not function in the same ways that a PC bios does. It's more like a motherboard programmer. It's hard to explain. The last article goes into some of that.
Spaceminer said:
The rabbit hole goes as deep as you want it to. I have plenty of information to get you started. Happy digging!
*A general overview of the android boot process, thanks to the Lineage OS developers.
*An old, but good read on reverse engineering aboot.
*And a much more recent article on reverse engineering android. It gets very detailed in this one. It also goes into the low level processes of android. Like; What loads the bootloader? That kind of stuff. I think this is what you're after. Hope it helps.
About the bios question. The short answer is, "kind of". They have a very simple and proprietary one that's not easy to access. It also does not function in the same ways that a PC bios does. It's more like a motherboard programmer. It's hard to explain. The last article goes into some of that.
Click to expand...
Click to collapse
Do you know if there is any tool that lists all the various initscripts and settings in use on a running system? I'd like to remove Google entirely from my phone, but there are so many firmwares and initscripts all over the place that I can't even figure out which ones are actually used to run the system. Half of the settings files, properties, and commands return 0 results or 3-4 useless results when searching for them on the internet.
ZHNN said:
Do you know if there is any tool that lists all the various initscripts and settings in use on a running system? I'd like to remove Google entirely from my phone, but there are so many firmwares and initscripts all over the place that I can't even figure out which ones are actually used to run the system. Half of the settings files, properties, and commands return 0 results or 3-4 useless results when searching for them on the internet.
Click to expand...
Click to collapse
The best way to remove google entirely is to flash a custom ROM or GSI if your device supports it. You really only need to look in system/app and system/priv-app for google stuff. Some phones use stock Google apps for things like the Calendar or MMS. So, to run google-less you may need to replace some system apps as well. Just a warning, even if you already know this. Removing certain apps, even google apps, may cause problems for normal operation. Definitely make a backup before deleting anything in the system.
ZHNN said:
Do you know if there is any tool that lists all the various initscripts and settings in use on a running system? I'd like to remove Google entirely from my phone, but there are so many firmwares and initscripts all over the place that I can't even figure out which ones are actually used to run the system. Half of the settings files, properties, and commands return 0 results or 3-4 useless results when searching for them on the internet.
Click to expand...
Click to collapse
I'm no expert but have been running lineageos 14.1 for some time now. It is a version of android 7.1 in which everything google has been removed. I use it with microG which replaces google play services.
You may wish to look into it instead of re-inventing the wheel.
I use it with a firewall (AFWall +), and Xprivacylua for additional privacy.

Categories

Resources