Identifying source code of specific devices - Android Software/Hacking General [Developers Only]

Hi,
1. Android source code has multiple directories with code for different devices. Also, within a particular directory, there are paths showing different branches and tags. Just as an example, within 'android / platform / external / iptables' directory (url: https://android.googlesource.com/platform/external/iptables/), we have multiple branches showing different releases - e.g. master, brillo, lollipop, marshmallow, etc. For each of them, there are different versions - marshmallow-cts-release, marshmallow-dev, marshmallow-dr-dev, marshmallow-dr-dragon-release, marshmallow-dr-release, marshmallow-dr1.5-dev, marshmallow-dr1.5-release, marshmallow-dr1.6-release, marshmallow-mr1-dev, marshmallow-mr1-release, marshmallow-mr2-release, marshmallow-mr3-release, marshmallow-release.
How do we identify which branch is implemented in a particular device? Also, there is an option to select tags - which also list various versions of say Android 7.1.1. If I am searching for source code of one phone (e.g. HTC 10), is there a way that I can identify the source code of that particular device?
2. Do the OEMs such as HTC, Samsung, Motorola, Xiaomi, Google etc. use the Android source code in the form that is available at Git repository (open source) or do they make some modifications in the source code for their devices? Further, if there are any modifications, is it possible to view the final source code used by OEMs?
Any help in this regard is highly appreciated.
Thanks in advance!
Regards,
John

I'm not exactly an expert but I'll throw in my two cents.
1. I'm not sure how to find the specific branch that a device uses. But this is Android, and you can pretty much install whatever if it's compatible. If you see this ( http://www.htcdev.com/devcenter/downloads ) and sort by device "HTC 10" you'll see many different results. The type on some look similar to branch names (MR, MR 2, etc) so I assume that's related to it.
2. Most OEMs do modify Android a bit, and you can see the source for any of them. Websites like I linked above (htcdev.com) are the OEM open source packages. If you download the kernel source for the HTC 10 all you would do (usually, some packages are annoying) is extract the contents into your working directory and overwrite existing files. You could probably run diff to view the actual changes they implement.
Hope this somewhat helps!
Edit: To see other OEM open source sites just Google the vendor and open source. Like for LG I Google "LG open source" and it's the first one.
Sent from my LG-H901 using Tapatalk

Related

[Q] AOSP ROMs built with proprietary APKs and LIBs

This may be a bit of a philosophy thing, but I can't find any reference in xda forums / USENET groups / or google searching...
If I have proprietary apks and libs that I want to include in /system/app and /system/libs on an AOSP build, where do I put them? What has worked so far, is to copy the files to <AOSP_ROOT>/out/target/product/*/system after building once, and then rebuild again. This seems very hackish.
I see a couple possibilities for doing it the right way:
<AOSP_ROOT>/prebuilt/android-arm #(benefit of being platform specific)
<AOSP_ROOT>/external/*/out #(technically an external component)
I think the first method makes the most sense, but either way it looks like I'd have to create an Android.mk to go along with that, and again I'm completely in the dark about how to proceed. I'm assuming that some of the build environments folks are using to create custom AOSP ROMs address this already or at least they probably should, so this seems the appropriate forum to ask such a question.

How can I view the source code of an android app?

This is probably a noob question, but how can you view the coding of an android application? I just had a small test app developed for me and I would like to look at the "guts" of it.
I downloaded the emulator but I haven't been able to figure out how to see my app's code using it. Maybe there is another way that's easier? You know, something akin to the "view page source" tab enabled in many browsers that allows you to see an html page's code?
I tried opening it with TextEdit on my Mac but it says its not readable.
What's an easy way to take a look at/edit the code?
Thanks in advance for your help!
Android-apktool
Android-apktool - A tool for reengineering Android apk files ...
http: / / code.google.com/p/android-apktool
It is a tool for reengineering 3rd party, closed, binary Android apps. It can decode resources to nearly original form and rebuild them after making some modifications; it makes possible to debug smali code step by step. Also it makes working with app easier because of project-like files structure and automation of some repetitive tasks like building apk, etc.
It is NOT intended for piracy and other non-legal uses. It could be used for localizing, adding some features or support for custom platforms and other GOOD purposes. Just try to be fair with authors of an app, that you use and probably like.
Click to expand...
Click to collapse
Google "apk manager"
Sent from my DROIDX using XDA App
Thank guys, however it says it can't be found - see this screencast I recorded: screencast.com/t/kII8UcBqE1RQ
Any ideas?
I feel like it can't be that complicated, but there is almost no info about in on Google...

GB Vibrant -> Sidekick kernel compile

Just to see what would be involved, I tried modifying Samsung's Vibrant GB kernel source tree, hoping to form a basis for a Sidekick GB tree.
Going on the assumption that the Sidekick was very similar to the Vibrant except where it wasn't, and using the Sidekick Froyo sources as a guideline, I forked off a CONFIG_S5PC110_SIDEKICK_BOARD config option from the existing CONFIG_S5PC110_VIBRANT_BOARD.
Then I tried to bend it back toward being more like the Sidekick Froyo setup.
Then I beat on it repeatedly until I got it to compile.
If none of this makes you feel confident, well, it shouldn't.
I tried to methodically sort out the differences, but I'm pretty sure that the sound driver and GPIO assignments need serious help. Since GPIO is the way the handset's CPU communicates with its peripherals, it probably needs to work right for best results. Or any results.
Anyhoo, you're welcome to see my patches. Sorry, I haven't gotten a github repo set up yet.
https://carbon.flatlan.net/nxd/vibrant-gb-to-sidekick-v001-danger-brick-likely.patch
Also in that directory are my patches to disable the unfortunate keystroke logger Samsung shipped in their GPL source drop. Every custom ROM I've tried has had this keystroke logger. It would be just wonderful if we could eradicate it. Our keystrokes do not need to go into dmesg. But that's a digression.
My willingness exceeds my skill. But perhaps we can organize a project to overcome the obstacles to GB on the SK4G, one by one.
Here's my basic comparison of the Sidekick and Vibrant Froyo trees.
I fetched both sources. Both are KD1 versions.
I did `make distclean` to make sure the trees were empty of build files. Before this would work, I had to create two directories containing empty (zero byte) Makefiles. Samsung had created these directories in the source tree, but removed them before distribution.
drivers/fsr/Makefile
fs/rfs/Makefile
Then I generated sorted lists of the filenames in each source tree:
Code:
cd sidekick-froyo/
find * -type f | sort > ../sidekick_froyo_files.txt
Code:
cd vibrant-froyo/
find * -type f | sort > ../vibrant_froyo_files.txt
Then I diffed the files to see which files existed in one source tree, but not the other:
Code:
diff -u sidekick_froyo_files.txt vibrant_froyo_files.txt > sidekick_froyo_vs_vibrant_froyo_files.txt
I've attached that file.
Note that some files appear different only because of filename case differences, eg all the net/netfilter stuff.

[Q] Cherry Picking from Gerrit and Github!

I've read a multitude of guides (i have read gitref as well) on this but I still don't really understand. I've built aosp hammerhead from source. For example, I want to add these to my aosp build:
https://github.com/AOKP/frameworks_base/commit/e6613af24e7b5551ee08d69c87177aebd28bf510
https://github.com/AOKP/frameworks_base/commit/5914039a2a9e5d9b3711e132c50816ad0ed82d6a
https://github.com/AOKP/frameworks_base/commit/e4ad05262a3012f55065369418b0abe1e1d89099
https://github.com/AOKP/frameworks_base/commit/32ece6ce7d4ea3adb1155474246579d6d2d38bea
https://github.com/AOKP/frameworks_base/commit/c2e1006adb05b80686be3a9b4f0d90d0072e60c6
So I remote added https://github.com/AOKP/frameworks_base and then tried to cherry pick using the commit numbers. I'm guessing i have to start with part 1/5 and that gives me fatal: bad revision 'e6613a'. :crying:
If anyone can explain this to me really simply that would be great.
EDIT: Okay, I realized what i was doing wrong. I was supposed to use git fetch first in order to cherry-pick from the repository. On the other hand, it is now giving me Conflicts:
core/java/android/provider/Settings.java
packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
I was wondering if I could just delete my files for those and just replace it with aokp's. Would this be fine?
Thanks in advance,
Darth Yoshi

[TOOL] bindump - Dump binder service endpoint holders (owners) and users

Hello all,
(Note to mods: I'm too junior to post in Android Dev fora, so please someone move my post, I believe it's worthwhile as this is really useful)
I've updated my little known but highly useful 'bin dump' tool to work on Android 9 and later. This tool is like "service", able to list services, but not just In the normal namespace - also in the vndbinder (though that requires root).
The primary use of this tool is to list who's actually holding or using the service. There's a full explanation on how I accomplish this at the webpage - newandroidbook.com/tools/bindump.html (mods: please make this a link? I can't). This way you can see who's using "power", for example (i.e. holds wake locks) , or "SurfaceFlinger" (i.e. has activity views) or "activity" (i.e is an activity/service/broadcast receiver).
Unfortunately, the advanced use requires root, due to binder's debugfs entries being chowned and chmodded nowadays.
The tool DOES NOT use libbinder, and I effectively rewrote the whole thing in pure C with the low level ioctl()s. I support Android 9 and onwards (if you need insights to the parcel format, which changed three times in between these versions.. let me know). Should work everywhere - That said, I've seen idiosyncrasies in Samsung devices which I've accounted for. Feedback more than welcome.
I need a 32bit version , is source available?
Tool is not open source (too much secret sauce and re-implementation of libBinder from scratch) but I built a bdsm.armv7 binary and linked it from the download page
(direct: http://NewAndroidBook.com/tools/bdsm.armv7)
Thanks , will try that out

Categories

Resources