Related
I have managed to compile (from source) and install CM7.2 on my HTC dream, but my questions below are related to Android:
1. Is there a way to find out which packages (.apk) were installed on my system and if so, how do I do that?
2. Is there a way to find out each package dependencies (I need to figure out this as I am bent on removing the vast amount of guff installed on the phone - I won't need 90% of this stuff)?
3. Similarly to 2 above - is there a way to look at dependencies of a package not yet installed on my system (i.e. the .apk file)?
4. How do I actually remove a package for good from the system?
5. Similarly to 3 above, how do I actually install a package from within the root system - I know I can do this via adb, but is there a way to do this inside the, say, command line terminal?
6. Is there a way to alter (understand remove) certain program permissions which I could see "granted" to a particular program/package? I know there are various ways to look at these, but I wish to remove permissions I am not happy being granted to that particular program/package.
And one last a bit more advanced query: I would like to build a single package from the source tree and then install the resulting .apk file on my system.
Basically, I will try to upgrade a package with a new revision and add a few patches to the package source of my own before compiling it and building it again.
I usually build the whole lot (all packages + the rootfs image itself) with "mke bacon", but if I want to alter the source and build a single package how do I do that?
I am not very familiar with the Android make system, so I don't want to go heads-first into something and make a real mess of it.
Thanks a lot for any assistance given.
Small addition as apparently I cannot post a reply (too few posts) in this thread: http://forum.xda-developers.com/showthread.php?p=9055790#post9055790
Question to ezTerry (if he is reading this!): the advice given in that post above was absolutely splendid! I followed it religiously and it worked an absolute treat!
There is one exception though - I've LOST all of my IMEI, IMEI SV and Baseband information after applying these fixes. As soon as I installed the radio updates and then installed my newly-compiled kernel + CM7.2 (successfully!) I then checked the above fields from Settings and they were all gone!
After a while, the baseband, IMEI and IMEI SV appeared, but the IMEI and IMEI SV stuff have now different values than what I've had previously (I've had T-Mobile IMEI, now it appears that I was "assigned" O2 IMEI & IMEI SV values - very bizarre!).
Is this something I need worry about and (I don't yet have a sim card, but I plan to get one soon after I fix my phone), more importantly, how the hell do these IMEI numbers appeared on my phone - where did they came from?!
josh36 said:
Small addition as apparently I cannot post a reply (too few posts) in this thread: http://forum.xda-developers.com/showthread.php?p=9055790#post9055790
Question to ezTerry (if he is reading this!): the advice given in that post above was absolutely splendid! I followed it religiously and it worked an absolute treat!
There is one exception though - I've LOST all of my IMEI, IMEI SV and Baseband information after applying these fixes. As soon as I installed the radio updates and then installed my newly-compiled kernel + CM7.2 (successfully!) I then checked the above fields from Settings and they were all gone!
After a while, the baseband, IMEI and IMEI SV appeared, but the IMEI and IMEI SV stuff have now different values than what I've had previously (I've had T-Mobile IMEI, now it appears that I was "assigned" O2 IMEI & IMEI SV values - very bizarre!).
Is this something I need worry about and (I don't yet have a sim card, but I plan to get one soon after I fix my phone), more importantly, how the hell do these IMEI numbers appeared on my phone - where did they came from?!
Click to expand...
Click to collapse
Any takers?
@1 Check out the respective directories, i.e. for system apps /system/app
@2 Trial and Error, or someone might have made such a list for your device already
@3 No simple way, you would have to look through the decompiled code i guess
@4 Remove the apk from the folder (for example /system/app) and reboot your device, after wards you might have to clean up some extra folders, i.e. settings of that app. (you can use SD Maid from my signature for that)
@5 Some can just be installed the usual way, by opening it. Some .apk files have to be put in the system folders, afterswards reboot and the app should be "installed". To put those apps there use a rootcapable file explorer of your choice. To edit /system you will need to remount it as it is read only by default, you can do that through command line, but most good file explorers have an option for that.
@6 Yes thats possible, there was an app to do that, just not sure what it was called... It is very likely though, that those apps will not work correctly or just FC.
For the make system, if you just change a package, and build again, it will most likely just rebuild the changed files. I'm not so sure either though... damn make system can be pretty messy... and get upset real fast if you change something ;-).
Dark3n said:
@1 Check out the respective directories, i.e. for system apps /system/app
Click to expand...
Click to collapse
Yep, that indeed helped - I didn't realise that the .apk files are "intact" and do not behave in the "standard" (in Linux terms) way a "package" behaves - the app is "installed" as soon as .apk is placed in /data/app or /system/app. The PacketManager does the rest on reboot.
It also cleans up the mess "automagically" if I delete .apk file and reboot, which is nice.
Dark3n said:
@2 Trial and Error, or someone might have made such a list for your device already
Click to expand...
Click to collapse
Yeah, that's a real bugger - I can't see a way of finding the dependencies, but I haven't looked properly at "pm" (the Package Manager command line tool) - maybe I could use something there.
Dark3n said:
@6 Yes thats possible, there was an app to do that, just not sure what it was called... It is very likely though, that those apps will not work correctly or just FC.
Click to expand...
Click to collapse
A very simple example will issustrate my point - my calendar application is installed and needs some sort of GOOGLE_MAIL and access to the internet permissions, neither of which I am happy to grant, because 1) I won't be using online calendars; and 2) I won't use (google) mail.
The truth is, I deliberately did not install any google apps as I won't be using any of them - ever!
Now, every time I boot up and look at my log files with logcat I see a bunch of error messages that this application (the calendar) needs a bunch of permissions which do not exist (naturally, as I haven't installed a single google app on my phone).
So, I wish to wipe out these permissions from the calendar so that logcat is not filled with junk every time I start my phone.
As I already pointed out above, there are also some installed apps who are listed to "need" permissions I am not happy to grant - like the internet access to calendar for example (there are more apps, but I think you get the point).
Dark3n said:
For the make system, if you just change a package, and build again, it will most likely just rebuild the changed files. I'm not so sure either though... damn make system can be pretty messy... and get upset real fast if you change something ;-).
Click to expand...
Click to collapse
Yeah, that was my plan B - there must be another - easier - way though.
I wish to update a lot of stuff (I will be recompiling/refreshing existing packages as well as adding new things I developed for "standard" Linux), but with this Android make system I am blind - it is very different to what I am used to in the Linux world.
To top it all off, I can't post in any of the devs forums yet as I do not have 10 posts!
Further to my previous post - I just found out a superb article about stripping out Android and removing unnecessary packages from it - http://wiki.cyanogenmod.com/wiki/Barebones
It lists various dependencies and shows what could be deleted and what cannot be - what I wanted really.
My only remaining problem - at least for now - is the making of specific packages without building the whole image.
I've been trying to figure out how to get NFC working on the stock ROM for a while now. In no way am I a DEV or experienced with Android coding, but I have learned a few things along the way. I know basic NFC functions are available in certain ROMS, but this is about getting it working on the stock ROM. I am also aware that Google Wallet will not work on these phones without a secure elemint (sp?). But with all of the interest in NFC (even though its uses are limited), I would think alot of people would like to have the option to enable it on the stock ROM.
Here is a few things a have discovered:
These phones already have the Nfc.apk and Nfc.Odex files included. They are very similar to the files on the Korean version of this phone that has working NFC.
The framework-res.apk xml already includes code for NFC operations. I have read where people have said that extra framework is needed, but from what I see (again limited knowledge) it already exists.
I also found (I can't remember where) more code for NFC that includes connection instructions and what it is supposed to do when a NFC signal is detected.
So I am thinking, maybe the only thing we need at this point is to have the option for NFC along with the toggle added to the "Wireless and Network" menu on the phone. Maybe it already exists and just needs to be activated.
Oddly enough, it seems very little information exists about trying to activate NFC on the SkyRocket I727 stock ROM. Alot of the information a got was from the regular Galaxy SII forum and it is obvious that phone isn't coded exactly as ours.
So, can any one tell me in which part of the coding is the "Menu options" enabled for the "Wireless and Network" settings? Maybe I am wrong about all of this, but if anyone knows anything more about it (not just guessing but actually knows something), please post it here so we can get the NFC function working on the stock ROM.
On a seperate note, the same place I found the coding about the NFC operations (like I said, I can't remember where it was but I will try to find it again) I also found additional mentioning of an"FM radio chip"???
OOOOKKKKKKK...can someone atleast point me in the right direction to find this out on my own?
You can edit setting.apk and enable nfc. Or just dload a rom that lets u use nfc.
scott14719 said:
I've been trying to figure out how to get NFC working on the stock ROM for a while now. In no way am I a DEV or experienced with Android coding, but I have learned a few things along the way. I know basic NFC functions are available in certain ROMS, but this is about getting it working on the stock ROM. I am also aware that Google Wallet will not work on these phones without a secure elemint (sp?). But with all of the interest in NFC (even though its uses are limited), I would think alot of people would like to have the option to enable it on the stock ROM.
Click to expand...
Click to collapse
appdroid said:
You can edit setting.apk and enable nfc. Or just dload a rom that lets u use nfc.
Click to expand...
Click to collapse
Thanks for the response, but what do I edit in settings.apk? I have read this more than a couple of times, but no one seems to be able to say what edits to make to the settings.apk. As far as the others ROMS go, I realize NFC works in other ROMS, but I'm trying to find an option to enable it in the Stock ROM. Any info you can provide would be great. Thanks.
Edit...I took a look at the setting.apk XML from a T-mobile phone that has NFC enabled and it seems to be the same as the settings.apk XML from the Skyrocket. This is the confusing part. Everyone seems to think the settings.apk app needs editing, but it is the same as ones in the versions of our phones that have working NFC. As a matter of fact, the NFC.apk apps are the same as well. This is why I am thinking it only needs the option added to the "Wireless an Netwok" menu in order for it to work (which is my original question on how to do so). Things just aren't adding up here?
OK, so I've been looking around some more and I found something interesting.
The T-Mobile (T989) version of the Skyrocket has an extra file located in the settings.apk that the I727 AT&T Skyrocket doesn't appear to have in it's settings.apk.
This file is named "smali". Most of the rest of the settings.apk on both phones appear to be very similar. There are about 9 extra lines of code in the "manifest.xml" in the I727 but they do not appear to be related to Nfc operations at all.
This "smali" file in the settings.apk on the T-mobile phone contains a folder called "com" and the "com" folder contains three more folders called "android", "broadcom", and "samsung". The "broadcom" and "samsung" folders appear to contain information (code) about bluetooth operations. The 'android" folder is the interesting one. It contains a "settings" folder that has many other folders in it. Again, most interesting is a file called "Nfc". It contains 5 smali files that all contain code about Nfc functions. I think this may be the actual file(s) that AT&T had Samsung leave off of this phone (I727) so Nfc is not enabled.
So finally, my new question(s) is..........
Can anyone confirm that the exclusion of the "smali" file in the settings.apk on the Skyrocket is the reason we can not use Nfc?
-and-
Would it be safe or even possible to insert the "smali" file contained in the T-mobile settings.apk into the settings.apk of the AT&T Skyrocket phone and see if it would properly activate Nfc on the AT&T Skyrocket? If so, could this be done on the "stock" AT&T 2.3.6 ROM without being DeOdexed?
I realize this is a lot to ask, but this is the only way we can get NFC working on the stock ROM like it should be in the first place. Maybe one of the Devs that works with the skyrocket can help to answer some of these questions. Thanks to anyone that can help.
This doesn't help u in your finally quest of enabling nfc, but the reason u see the smali folder in the decompiled system.apk for the T-Mobile apk is most likely because it is deodexed, and the apk that u are looking at from your skyrocket is not deodex. If u use apktool or something similar to apktool and decompile a non deodexed apk u will not see any smali file. The smali folder is basically the Java code that is in the system.odex file (layman's terms)
This is why most..or most ever apk edit is don't on an odex apk. Because without it being doedex u would have to edit both the apk and the odex file
To add
If can get your hands on a stock doedex sky rocket rom that's what u would want to use to compair the two with
Sent from my Galaxy Nexus using Tapatalk
runandhide05 said:
To add
If can get your hands on a stock doedex sky rocket rom that's what u would want to use to compair the two with
Sent from my Galaxy Nexus using Tapatalk
Click to expand...
Click to collapse
I have compared the Stock SkyRocket ROM to both T-Mobiles ROM and the Superstock ROM. The SuperStock ROM is a DeOdexed AT&T version of what I have. The Stock ROM (on my phone) and the SuperStock ROM (DeOdexed) seem to be the same. I have not searched and compared every single file and line of code but the settings.apk and framework.apk and framework-res.apk files seem to be the same? The "smali"file folders that were located on the T-mobile ROM are not on the DeOdexed Stock ROM (atleast not that I have found. Unfortunately I have seem to come to the end of my abilities to do anything else. I just don't have the knowledge to go any further. Hopefully one of the DEVs around here could help out if they get the time. I know the effort would be appriciated, but it is up to them.. Most of them seem to be keeping pretty busy with updating their ROMS.
**edit** Ok, I spoke too soon. I found the "smali" files in the DeOdexed Superstock ROM. They are in the ".jar" files. The framework.jar file has the folder that has info about NFC in it. I just have no idea what to do with it from this point. I still think that everything that is needed for NFC to work is already in the Stock ROM, it just needs menu options to get to it.
Hello Guys!
As the title says, is changing System Version possible
I have the AsiaRetail version of A2, and installing any ROM, be it GB based or ICS based, changes the System Version to ATT.en.us. So, its a little peculiar seeing ATT.en.us on an Indian phone.
Any help is appreciated!
P.S.: I also tried editing the build.prop, but it doesn't change the System Version at all.
Look, as you can figured out, the system version is just a piece of text in the buil.prop.
If i'm not wrong, numa rom is based on ATT.en.us rom, so, when you install it, your phone says like you have an ATT.en.us phone, but not, is still international.
You must always remember which class of phone you have, in your case, international.
If you want to edit correctly the build.prop (But i don't recomendo so), you have to edit it with a text editor, then save it, and reboot. I guess, you forget to reboot, to make the effects of the changes.
brianmoyano said:
Look, as you can figured out, the system version is just a piece of text in the buil.prop.
If i'm not wrong, numa rom is based on ATT.en.us rom, so, when you install it, your phone says like you have an ATT.en.us phone, but not, is still international.
You must always remember which class of phone you have, in your case, international.
If you want to edit correctly the build.prop (But i don't recomendo so), you have to edit it with a text editor, then save it, and reboot. I guess, you forget to reboot, to make the effects of the changes.
Click to expand...
Click to collapse
I know it still remains International one, and yeah, I think I had rebooted after I had edited the build.prop. Anyways, I like STOCK ROMS more.
Thanks for your reply though!
If this is the wrong place for this post notify me which thread to go to and I will move it my self no worries.
So is there anyone out there who knows how to reverse engineer closed source android files? Example; Bootloader? I want to remove knox from bootloader and open up the bootloader completely. I want to be able to play pokemon go no matter what kind of block they send out. Current update they block all root users. Not everyone is a cheater which is ridiculous to block us all.
I need to make a custom rom and would love to start by learning how to hack the bootloader and remove Knox completely. This is for lollipop 5.1.1 on the Grand Prime SM-G530T1 if I had my own pc at the time id try to look it up and learn it. Would really appreciate any given help. There is a handful of us who want a working rooted rom for this device and options arent supported so if I can get access to all the source files and make them all open then I can look into making a custom rom that wont be corrupted. Goal here is to use the stock files. Build from stock keep it simple. Remove some thing add others.
Make it strictly a rom for playing games with root access hidden. Once I learn how to hack all the files I will start doing it for other phones and help others as well.
So can anyone help or give me and answer as to how to do this.
Hi folks.
I'm new here.
It's my first post so please forgive me if there's something wrong.
Basically I want to know is, what type of knowledge do i need (programming language and other things) to work on root of android like build.prop and making custom roms and working on the custom recovery etc.
What do I need to learn to understand those things and work on them.
Thanks.
Kaksrocks said:
Hi folks.
I'm new here.
It's my first post so please forgive me if there's something wrong.
Basically I want to know is, what type of knowledge do i need (programming language and other things) to work on root of android like build.prop and making custom roms and working on the custom recovery etc.
What do I need to learn to understand those things and work on them.
Thanks.
Click to expand...
Click to collapse
Your question is not specific and I not sure exactly what information you requesting. For instance,
1 "root of android" ? Are you trying to root you're phone?
2. "build.prop"? Adding or modifying that can be done with an android app provided your device is already rooted. Ising ADB and fastboot may also be a possible.
3. " making custom roms" ? Does that mean installing or actually building a custom rom? Actually building a custom rom that is best left for advanced level developers. If, you mean installing a custun rom then generally speaking that is usually done in custom recovery by flashing a .zip file. Its very specific for each phone and carrier.
4. "working on custom recovery"? Depends on which custom recovery you have installed and what options are available. A YouTube search can provide some general information.
I am assuming you are interested in rooting you phone and unfair with all is necessary in order to do so. I suggest, searching for your specific model and carrier hear on XDA. For instence, I have a note 4, I search, "XDA Sprint Note 4".
Mr. JAVI said:
Your question is not specific and I not sure exactly what information you requesting. For instance,
1 "root of android" ? Are you trying to root you're phone?
2. "build.prop"? Adding or modifying that can be done with an android app provided your device is already rooted. Ising ADB and fastboot may also be a possible.
3. " making custom roms" ? Does that mean installing or actually building a custom rom? Actually building a custom rom that is best left for advanced level developers. If, you mean installing a custun rom then generally speaking that is usually done in custom recovery by flashing a .zip file. Its very specific for each phone and carrier.
4. "working on custom recovery"? Depends on which custom recovery you have installed and what options are available. A YouTube search can provide some general information.
I am assuming you are interested in rooting you phone and unfair with all is necessary in order to do so. I suggest, searching for your specific model and carrier hear on XDA. For instence, I have a note 4, I search, "XDA Sprint Note 4".
Click to expand...
Click to collapse
Well. First of all thanks for the reply.
I do have the knowledge on how to root the device and i have my device rooted.
I know how can i modify the build.prop file.
But i want to know how the tweaks are actually made to put them in build.prop file to get it into work. How that tweak is made.
How to know what actually should i edit and etc.
And for custom roms. I do actually want to know about how to actually make a custom rom. Even though if its a high level thing. I still want to know. So that i can start learning and get in that field.
I want to know how custom recovery is made. For ex how twrp was made. And i want to learn its functionality.
Thanks again for the reply.
Kaksrocks said:
Well. First of all thanks for the reply.
I do have the knowledge on how to root the device and i have my device rooted.
I know how can i modify the build.prop file.
But i want to know how the tweaks are actually made to put them in build.prop file to get it into work. How that tweak is made.
How to know what actually should i edit and etc.
And for custom roms. I do actually want to know about how to actually make a custom rom. Even though if its a high level thing. I still want to know. So that i can start learning and get in that field.
I want to know how custom recovery is made. For ex how twrp was made. And i want to learn its functionality.
Thanks again for the reply.
Click to expand...
Click to collapse
I
You welcome and I also Thank you for responding.
In regards to modification of build.props, I advise beginning with custom recovery and making a full back- up (all partitions). I have soft bricked my phone more that once by modifying build.pros and simply did a full wipe and restored my backup and up and running. Kernel Aduitor is an app that provides a Build prop Editor but there are stand alone app that are also available.
If your custom recovery is TWRP then Tipatch is an app that is worth looking into. Its available here on XDA or can be downloaded via Google Play Store.
Odex Roms vs Deodex Roms and what that means. I suggest Deodex if your plan on modifying and/or porting.
Also good to know the differences between kerels permissive vs enforcing.
Apps= ApkTool X, Apk Editor v1.3,(this is a lower version that offers a rebuild function while the updated version available from Google Play dose not) Md5 , and ZArchiver.
As far as how to make custom roms? Thats above my skill level. However, If you download a custom rom make a copy and rename it, then use a root file manager to extract it or ZArciver app and look threw the files of the rom. May help prove helpful in learning basic structure.
Keep in mind I am not a developer. Modified, porting, flashing, treaking I do often. For instance, Im tunning and od Note 4 on marshmallow 6.0.1 and have official Google Play Dark Theme.
If you have any questions
https://forum.xda-developers.com/android/themes/official-google-play-store-dark-theme-t3977061
Mr. JAVI said:
I
You welcome and I also Thank you for responding.
In regards to modification of build.props, I advise beginning with custom recovery and making a full back- up (all partitions). I have soft bricked my phone more that once by modifying build.pros and simply did a full wipe and restored my backup and up and running. Kernel Aduitor is an app that provides a Build prop Editor but there are stand alone app that are also available.
If your custom recovery is TWRP then Tipatch is an app that is worth looking into. Its available here on XDA or can be downloaded via Google Play Store.
Odex Roms vs Deodex Roms and what that means. I suggest Deodex if your plan on modifying and/or porting.
Also good to know the differences between kerels permissive vs enforcing.
Apps= ApkTool X, Apk Editor v1.3,(this is a lower version that offers a rebuild function while the updated version available from Google Play dose not) Md5 , and ZArchiver.
As far as how to make custom roms? Thats above my skill level. However, If you download a custom rom make a copy and rename it, then use a root file manager to extract it or ZArciver app and look threw the files of the rom. May help prove helpful in learning basic structure.
Keep in mind I am not a developer. Modified, porting, flashing, treaking I do often. For instance, Im tunning and od Note 4 on marshmallow 6.0.1 and have official Google Play Dark Theme.
If you have any questions
Click to expand...
Click to collapse
Great. Thanks for the information you provided.
You were pretty helpful.
So again thanks.