As featured on the XDA portal Here
Note: I understand that the source is for 2.3.4 right now, but svyat is currently working on an ICS version. Hopefully a talented Dev can figure this first. If not, I will post svyat's ICS source patches when he makes them available.
This thread is really a request/research & development topic. I take absolutely no credit for any of the work done by svyat or any potential/willing ROM dev or chef.
The purpose is to bring to attention a new app created by svyat by the name of PDroid. You can find that thread Here.
PDroid is an app with a capability a lot of you are probably already familiar with; permission control. Permission control is the ability to block which permissions apps have access to on your device. PDroid takes this a step further by allowing you to block or change the information that a requesting app receives.
For example: many of you may be aware of LBE security app or permission control in Cyanogen. A lot of times when you block permissions to an app it will cause the app to break (force close) which requires you to change back your settings allowing the app access to information you would rather deny. What is the purpose of blocking data if it just breaks an app? Well that's why svyat has written Pdroid.
PDroid allows you to block permissions AND if that breaks the app, instead you may provide the app with false information. For example: When an app requests your location, you can have PDroid provide a false location. Or when an app requests your IMEI, you can have PDroid provide a false IMEI that you made up. You are able to do this will many of the permissions.
What I am requesting from a ROM dev or chef:
I am not experienced with programming at all so I will do my best to describe what I understand.
PDroid requires that Roms be patched so that the app can work. Currently svyat is doing the patches at a request basis. This is a slow process (he has many people requesting and is working alone). So I am hoping we can get a willing chef to patch one of his ROMs with this.
You can find the patch source Here
Instructions for patching:
Download: PDroid 2.3.4 source (v1.22) (yes it is based on 2.3.4 but also works with 2.3.3 and 2.3.5 flawlessly)
Get the 2.3.4 source from AOSP (branch: android-2.3.4_r1)
Extract the patches from the above archive to the 2.3.4 tree root
Run:
Code:
patch -p1 -i build.patch
patch -p1 -i frameworks.patch
patch -p1 -i libcore.patch
Building from source:
Make a clean build
Apply the patches (see above)
Run:
Code:
source build/envsetup.sh
make update-api
mmm frameworks/base
mmm frameworks/base/services/java
mmm libcore
make snod
However, for experienced developers the following basic steps for creating a PDroid patch should be enough to get you started:
Make a clean AOSP build (2.3.4, assuming that your ROM is based on 2.3.x)
Make another build with PDroid sources added
Decompile the framework.jar, services.jar and core.jar files inside the system/framework directory (of both above builds) using apktool
Diff the output so that you know, which parts were changed by PDroid
Decompile the above three files from your ROM, you want to patch
Add the missing code to your ROM files based on the above diff
Recompile your patched ROM files using apktool
I really seeing this type of control being the new standard for custom ROMs. To me, this is another BIG reason to be rooted!
disregard 10chars
disregard 10chars
Sent from my Nexus S using xda premium
disregard 10chars.
Sent from my Nexus S using xda premium
Related
Im just curious. How does one go about creating their own working custom rom? I feel like it would take forever to get everything in precise working condition and have it available for the community.
Sent from my DROID3 using XDA App
What do u mean? There are already roms out such as Steel Droid and DarkDroid. I guess I am confused to this post.
Sent from my DROID3 using XDA App
It depends on who/how it's created.
A lot just take the stock ROM, delete some apps, make graphical changes to the framework and edit the build.prop file. They may add an app or two (free app) that they feel enhance the phone.
Others pull the source code from Google/Android down to a Linux based workstation and make edits to the source code. Adding their own source and what not to it, replacing images (icons) and some even add new features or functions not available by modding a stock ROM (pulling in their own libraries into the stock source build).
Currently there are ZERO "source" built ROMs for the Droid 3. All are working from the stock ROM and re-theme'ing it.
Hashcode though, is working on getting the CyanogenMod source tree to compile for the Droid 3 though this takes a lot of work trying to figure out what needs to be changed to make it compile and function on the Droid 3's hardware.
tcrews said:
It depends on who/how it's created.
A lot just take the stock ROM, delete some apps, make graphical changes to the framework and edit the build.prop file. They may add an app or two (free app) that they feel enhance the phone.
Others pull the source code from Google/Android down to a Linux based workstation and make edits to the source code. Adding their own source and what not to it, replacing images (icons) and some even add new features or functions not available by modding a stock ROM (pulling in their own libraries into the stock source build).
Currently there are ZERO "source" built ROMs for the Droid 3. All are working from the stock ROM and re-theme'ing it.
Hashcode though, is working on getting the CyanogenMod source tree to compile for the Droid 3 though this takes a lot of work trying to figure out what needs to be changed to make it compile and function on the Droid 3's hardware.
Click to expand...
Click to collapse
Thats interesting. Thats the kind of answer i was looking for. I was just curious. Thank you.
Sent from my DROID3 using XDA App
tcrews said:
It depends on who/how it's created.
A lot just take the stock ROM, delete some apps, make graphical changes to the framework and edit the build.prop file. They may add an app or two (free app) that they feel enhance the phone.
Others pull the source code from Google/Android down to a Linux based workstation and make edits to the source code. Adding their own source and what not to it, replacing images (icons) and some even add new features or functions not available by modding a stock ROM (pulling in their own libraries into the stock source build).
Currently there are ZERO "source" built ROMs for the Droid 3. All are working from the stock ROM and re-theme'ing it.
Hashcode though, is working on getting the CyanogenMod source tree to compile for the Droid 3 though this takes a lot of work trying to figure out what needs to be changed to make it compile and function on the Droid 3's hardware.
Click to expand...
Click to collapse
Speaking of CM74D3, I believe the last update was everything is working except GPS and Radio.
...those are two quite important things, lol.
@tcrews:
I have my laptop almost set up to pull the source code from Google and use that. However long it will take me to make something, however, remains to be seen.
Sent from my DROID3 using XDA App
Obviously, I am going to be cleaning up some bugs with the CM7 build...
But, for those of you who might be inclined to develop a CM-based AOSP ROM, feel free to check out my github source to see what's involved:
https://github.com/Hashcode
Or you can:
repo init -u https://[email protected]/Hashcode/cm4D3.git
repo sync
To pull the entire set of android files that I use for compiling the current build.
Please note that the Board Config is currently setup to generate Safestrap .zip files.
Great job
Thank you for everything you have done for the droid 3!
Is there a kitchen for DROID 3 roms. Running windows 7
Sent from my DROID3 using xda premium
You need to be running Linux to do this hardcore kind of stuff.
Like Ubuntu I had it set up in VB and detain. Was just wondering if there was some thing for Motorola roms out there. I have had HTC phones this my first moto with android on it.
Sent from my DROID3 using xda premium
I'm starting to tinker with building (learning, actually) ROMs. I'm running Linux Mint Debian - has there been a kitchen built for D3?
Hashcode said:
repo init https://[email protected]/Hashcode/cm4D3.git
Click to expand...
Click to collapse
That should be
Code:
repo init -u git://github.com/Hashcode/cm4D3.git -b gingerbread
or whatever URL you want to use from the access URL box at https://github.com/Hashcode/cm4D3.
And of course "gingerbread" could be "ics" if your excitement about being on the bleeding edge overrides what should be a fairly sensible fear reaction to the term "bleeding edge".
@Hashcode: You don't use your own ALSA repos? (Comparing with my own generated manifest for your project...)
Also, are you planning on pulling newer Gingerbread manifest changes into your tree? I noticed CyanogenMod have gained a u8150 device tree, and I happen to have one of those, but your manifest doesn't list it...
Ooops. I have a u8510. >_< But the question stands...
TBBle said:
That should be
Code:
repo init -u git://github.com/Hashcode/cm4D3.git -b gingerbread
or whatever URL you want to use from the access URL box at https://github.com/Hashcode/cm4D3.
And of course "gingerbread" could be "ics" if your excitement about being on the bleeding edge overrides what should be a fairly sensible fear reaction to the term "bleeding edge".
@Hashcode: You don't use your own ALSA repos? (Comparing with my own generated manifest for your project...)
Also, are you planning on pulling newer Gingerbread manifest changes into your tree? I noticed CyanogenMod have gained a u8150 device tree, and I happen to have one of those, but your manifest doesn't list it...
Ooops. I have a u8510. >_< But the question stands...
Click to expand...
Click to collapse
Thank you for pointing out that my repo init line was wrong. I fixed it for those that were having issues.
Also, for those watching my manifest for ICS, I'm getting an error when syncing:
error: revision refs/heads/master in manifests not found
I'm trying to fix that. Correction: Fixed it and double-checked with a repo sync.
Some quick answers:
- I tried to customize the alsa source to fix some of the audio issues. But it ended up being a bit more complex than just changing ALSA. Motorola added a layer into the audio system for handling HDMI audio and in call audio volume.
When you build stock AOSP Gingerbread using the alsa drivers, the libaudio.so file ends up being all of the ALSA calls. If you examine the libaudio from the D3, you'll see that it is nothing of the sort. It's the customized mixer lib for RDS voice and HDMI audio. There's another lib from the phone: libaudio_ext.so which ends up being the alsa calls.
All of which made customizing just the alsa code risky at best as the further away from the version of alsa that was used on the phone, the less likely that the custom libaudio would work.
I probably still have the unfinished hardware_alsa git out on github, but it's not active in the current build.
- I can occasionally check for updates to the CM7 manifest and add them, or if you fork the manifest and add it in there that works as well.
Side Note: I may need to pick your brain on an EGL 0x0500 erorr I'm getting in the ICS code. I'm fairly certain it's an enum value that our version of the PowerVR drivers aren't set to handle, but I'd like to confirm that for my troubleshooting. And it seems that you might have some knowledge in that area
Where/how does someone begin working on building a ROM once they've downloaded these files? I'd rather dive into code and learn Android rather than using a menu driven wizard. Is there a tutorial somewhere? What tools are needed?
Sent from my DROID3 using XDA App
Phibernaut said:
Where/how does someone begin working on building a ROM once they've downloaded these files? I'd rather dive into code and learn Android rather than using a menu driven wizard. Is there a tutorial somewhere? What tools are needed?
Sent from my DROID3 using XDA App
Click to expand...
Click to collapse
This would be the starting point that you're looking for:
http://source.android.com/
Hashcode said:
Side Note: I may need to pick your brain on an EGL 0x0500 erorr I'm getting in the ICS code. I'm fairly certain it's an enum value that our version of the PowerVR drivers aren't set to handle, but I'd like to confirm that for my troubleshooting. And it seems that you might have some knowledge in that area
Click to expand...
Click to collapse
Some, but probably not enough. I'm happy to look, but I'm actually moving internationally tomorrow so I may not have 'net access for a week or so. >_< (That's why I've been trying so hard to get backup working. ^_^)
Once I'm settled in I will probably use fdisk to repartition my device or have a poke at hacking sd-ext support into safestrap, so I can start playing with custom ROMs.
Did you see my safestrap-ME863 nandroid patch in the Safestrap thread, BTW? It's got a couple of TODOs, but seems safe and roughly correct to me. http://forum.xda-developers.com/showpost.php?p=19683372&postcount=249
It could also form the basis for detecting when /preinstall can't be used as safe-system although I didn't look to see if there's already code to do that.
Does anyone know of a site where I can peek at reference code for random things (Apps, Kernal etc.)? It'll make it easier to understand how the code works. I haven't look at any code yet so I don't even know what language apps and the os are programmed in. (Java, C, C++, Ruby)
Sent from my D3-CM7-SS using xda premium
tenchi19134 said:
Does anyone know of a site where I can peek at reference code for random things (Apps, Kernal etc.)? It'll make it easier to understand how the code works. I haven't look at any code yet so I don't even know what language apps and the os are programmed in. (Java, C, C++, Ruby)
Click to expand...
Click to collapse
Just pull down the repo as Hashcode describes in this thread - you'll have all of the Android source. To the best of my knowledge, it comprises of mostly C, C++, and Java, but there is probably a smathering of some other things like ASM, perl, BASH, etc.
And to those who are asking if there is a kitchen, there is, it's called make
My Question to the Dev's is is there a Guide on How to Build Single APP Packages eg Calculator from Source Without building the entire android from Source is possible to build eg libjpeg from source as a single module.
i have tried the mmm command all it did was spit out errors you fix one get ten more and so on
I also tried using NDK by inserting the open source libs into a jni folder and modifying Android.mk to look similar to the sample jni resulted in errors this is the only Guide i can't find as there many on building entire android but sometime one only needs specific modules and not entire build.
If above not possible is there a bare minimum version where it only builds android core frameworks and like one lib /app ?
i did not try this .
u can download the package like if u want trebucket launcher then download full android_packages_apps_trebuckhet.
recompile it to get the trebucket apk
once againg i did not try this out
defcomg said:
My Question to the Dev's is is there a Guide on How to Build Single APP Packages eg Calculator from Source Without building the entire android from Source is possible to build eg libjpeg from source as a single module.
i have tried the mmm command all it did was spit out errors you fix one get ten more and so on
I also tried using NDK by inserting the open source libs into a jni folder and modifying Android.mk to look similar to the sample jni resulted in errors this is the only Guide i can't find as there many on building entire android but sometime one only needs specific modules and not entire build.
If above not possible is there a bare minimum version where it only builds android core frameworks and like one lib /app ?
Click to expand...
Click to collapse
Mmm won't help as it needs to link against other parts of the system. That's why you need to do a full build before you can mmm
In theory you can take the app and try to import it into eclipse, and regard it just as an app project.
ok, i'm trying to port and boot the AOSP source from google for 4.1.2 JB x86, first of all, i follow the next guide to build my own compiling machine http://forum.xda-developers.com/showthread.php?t=2762390 but i download in the step 12 the repo of google AOSP (repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r2.1 & repo sync)
Start the enviroment with: . build/envsetup.sh
and download download the source from motorola to get some propertary files http://sourceforge.net/projects/razr-i.motorola/files/LATAM/9.8.2I-50_SML-29/
now, the git have some instructions like you see in the README file inside the source, this say:
1. Create a workspace containing "vanilla" JB release from Google.
Done
Click to expand...
Click to collapse
ou may need to apply the following change in build repo to prevent the build from aborting when unexpected user tag is found on some modules:
[SOURCE] diff --git a/core/base_rules.mk b/core/base_rules.mk
index 3c11673..ecf611d 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -99,7 +99,7 @@ ifneq ($(filter $(LOCAL_MODULE_TAGS),user),)
$(warning * PRODUCT_PACKAGES section of)
$(warning * build/target/product/core.mk)
$(warning * )
- $(error user tag detected on new module - user tags are only supported on legacy modules)
+ $(warning user tag detected on new module - user tags are only supported on legacy modules)
endif
endif [/SOURCE]
i'm trying to do this step, but nothings seems happen...
The second step says that all we need is overlaying the Motorola repos on top of the AOSP repos, but in the Terminal i don't know some commands ('cause always i work on Windows ).
i need just a little help in here, i'm tryin to compare both sources, but in windows i've a tool called WINMERGE, in linux i don't know if we have something like that. I don't wanna overlay the repos, i want to compare the files and re-write the AOSP source with some parts of the motosource and get AOSP software with motorola hardware working.
thks to all, sorry for my bad english, i don't use translator
I always used meld. Meld is an 2to3 way comparing tool, that compares folders (date), files (versions) and text. It is almost like winmerge, just a little bit different. U can look it up in the app store of whatever ubuntu/linux version you have.
As for the defferences between aosp and moto. There are a number of differences. The most can be located in the system/core where moto has changed the behavior of how init works and some x86 implementations (especially pixelflinger). The next BIG thing is the bionic (libc). It has many x86 implementations and i am not sure if u can overlay them without trouble into aosp source.
Good luck!
Hazou said:
I always used meld. Meld is an 2to3 way comparing tool, that compares folders (date), files (versions) and text. It is almost like winmerge, just a little bit different. U can look it up in the app store of whatever ubuntu/linux version you have.
Click to expand...
Click to collapse
yeah, i'm using meld, it's amazig 'cause i can copy the files from one to another place, by the way, i'm using Ubuntu 14.04, with JVM 1.70 but 've some errors in the moment to build ...
As for the defferences between aosp and moto. There are a number of differences. The most can be located in the system/core where moto has changed the behavior of how init works and some x86 implementations (especially pixelflinger). The next BIG thing is the bionic (libc). It has many x86 implementations and i am not sure if u can overlay them without trouble into aosp source.
Good luck!
Click to expand...
Click to collapse
yeah, i see the both codes and check the changes, in some lines the works of moto it's amazing, but whe need more dev's to check all the changes to implement for porting ROMS
Lenovo has recently provided a software update which upgrades Android to version 4.3 for the k900, so i'm going to download the repo AOSP from google and later try to port 4.3
CottonmouthOS
A security and privacy focused mobile operating system based on CopperheadOS that is MicroG friendly.
Code:
DISCLAIMER: NOT RESPONSIBLE FOR BROKEN PHONES OR LIVES
This ROM is based on the great CopperheadOS ROM with signature spoofing enabled to allow MicroG framework. There will be changes to make the signature spoofing spoof ONLY the Google service signatures and ONLY usable/allowable by MicroG services ONLY. The new name CottonmouthOS is a way to distinguish from CopperheadOS builds, because of the signature spoofing patches.
Prerequisites coming from other ROMs :-
Have latest March factory image installed.
Instructions :-
Download the CottonmouthOS ROM
Follow the install guide
Have a more private and secure phone
Features :-
Features of CopperheadOS ROM
Note :-
CottonmouthOS is meant to be used with the bootloader locked with NO custom recovery installed and no GAPPS.
Credits :-
CopperheadOS team
Mar-V-in for MicroG
razorloves for inspiration
References :-
Copperhead homepage
Documentation
Instructions used to build
Sources
MicroG patch
If anyone wants to reupload to a better file hosting site please do.
OLD OP
CopperheadOS
A security and privacy focused mobile operating system compatible with Android apps
Code:
DISCLAIMER: NOT RESPONSIBLE FOR BROKEN PHONES OR LIVES
CopperheadOS - a hardened FOSS operating system based on the Android mobile platform. Its based on Android Open Source Project with added privacy and security features.
Prerequisites :-
Have latest factory image installed
Instructions :-
Download the UNOFFICIAL CopperheadOS ROM
- Mirror 1
- Mirror 2
- Mirror 3
Follow the install guide
Have a more private and secure phone
Features :-
Protection from zero-days
Prevents many vulnerabilities and makes exploits harder
Hardened C standard library and compiler toolchain
Catches memory corruption and integer overflows
Hardened kernel
Kernel self-protection and high quality ASLR
Stronger sandboxing and isolation for apps & services
Stricter SELinux policies, seccomp-bpf and more
Backported security features and quicker patching
Benefiting from upstream changes long before stock
Firewall & network hardening
Along with improvements like MAC randomization
Open-source and free of proprietary services
Uses alternatives to Google apps/services like F-Droid
Security-centric user experience changes
Better defaults, finer-grained permission control
Note :-
Copperhead is meant to be used with the bootloader locked with NO custom recovery installed and no GAPPS.
Credits :-
CopperheadOS team and razorloves for inspiration.
References :-
Copperhead homepage
Documentation
Instructions used to build
Last Updated 2018-02-28
Does copperhead have the pixel navbar animation?
File not yet uploaded
ChongoDroid said:
File not yet uploaded
Click to expand...
Click to collapse
+1
ChongoDroid said:
File not yet uploaded
Click to expand...
Click to collapse
That is strange. Will reupload.
EDIT: Done see OP
I've always wondered something, since COS charges money for phone flashing and the only way to get it yourself is to compile it yourself and flash. Once you flash your self compiled build, do you have to build the updates or does the built in updater work?
ChongoDroid said:
I've always wondered something, since COS charges money for phone flashing and the only way to get it yourself is to compile it yourself and flash. Once you flash your self compiled build, do you have to build the updates or does the built in updater work?
Click to expand...
Click to collapse
I didn't see the updater, and even if it was there the keys would not match so you would not be able to update.
Ideally, we would put this on a build server and release the full install and OTA every time there was an update so we would get the updates within a few hours of official. A few changes could be made to either change the updater (if it is there, which I did not see it) or use lineageOS one and modify it to point to the release server.
jahrule said:
I didn't see the updater, and even if it was there the keys would not match so you would not be able to update.
Ideally, we would put this on a build server and release the full install and OTA every time there was an update so we would get the updates within a few hours of official. A few changes could be made to either change the updater (if it is there, which I did not see it) or use lineageOS one and modify it to point to the release server.
Click to expand...
Click to collapse
Yeah CopperheadOS uses the stock recovery iirc. They do it like this to use verified boot iirc. I personally loved COS on my Nexus 5 and missed it on my pixel.
how likely are weekly builds for this rom? also did you find a workaround for the F-Droid extension? I tried manually removing it and disabling it via twrp, but it seems to restore itself or simply refuse to delete, showing as deleted from within twrp
Thank you for building this, I tried and failed miserably. Will flash it today :good:
Fdroid Keys and BuildSystem
Thanks for building.
Please add your keys to the fdroid whitelist.
Could you write/post about your build system?(Like a Howto)?
KShion619 said:
how likely are weekly builds for this rom? also did you find a workaround for the F-Droid extension? I tried manually removing it and disabling it via twrp, but it seems to restore itself or simply refuse to delete, showing as deleted from within twrp
Click to expand...
Click to collapse
The fdroid extension needs the keys as I pointed out in the 2nd or 3rd post notes. Regular builds would require a build server but a build server costs money. So, will try to update when I can.
smilingtux said:
Thanks for building.
Please add your keys to the fdroid whitelist.
Could you write/post about your build system?(Like a Howto)?
Click to expand...
Click to collapse
Please see the build instructions in the op that I posted.
Ideally, I would like to make another rom that has the restricted sigspoof added so we could have an option for microg
jahrule said:
The fdroid extension needs the keys as I pointed out in the 2nd or 3rd post notes. Regular builds would require a build server but a build server costs money. So, will try to update when I can.
Click to expand...
Click to collapse
Meant like a user-doable way until the keys updated, I'm fine with the full screen dialog for now
KShion619 said:
Meant like a user-doable way until the keys updated, I'm fine with the full screen dialog for now
Click to expand...
Click to collapse
The keys are compiled in so, no.
jahrule said:
Please see the build instructions in the op that I posted.
Click to expand...
Click to collapse
I have seen and read it before
I setup an build host based on copperheads documentation, I read about the java whitelisting of my keys for fdroid, but the build process itself fails from time to time.
So my question was more about, how did you manage to setup a reliable environment for building. What OS did you use, installed dependencies etc.
smilingtux said:
I have seen and read it before
I setup an build host based on copperheads documentation, I read about the java whitelisting of my keys for fdroid, but the build process itself fails from time to time.
So my question was more about, how did you manage to setup a reliable environment for building. What OS did you use, installed dependencies etc.
Click to expand...
Click to collapse
You seem to ask for a docker.