Related
hy all
this is an project starter for android 3.4 kernel development for all msm7x30 mogami devices
sources are hosted on
https://github.com/freexperia/android_kernel_semc_msm7x30
br
J
Project Status
- we got initial branch after diffing lost of branches
M7630AABBQMLZA203029A
https://www.codeaurora.org/gitweb/q...it;h=4b2b84c6a0b6d29864e982a7aecc223acfd2eaa1
forked to our git and with mogami patches aplied
https://github.com/freexperia/android_kernel_semc_msm7x30/tree/M7630AABBQMLZA203029A
latest CAF tag for 7630 not usefull for now
https://www.codeaurora.org/xwiki/bin/QAEP/release
"November 16, 2012 M7630AABBQMLZA40701070 - msm7630 - M7630AABBQMLZA40701070.xml - 04.01.02" android 4.1
ETA
depending on problems and developers that will join
from 6 months to NEVER
This is a bold task. Perhaps you could look at the developments of irii-soft (and some others), they have replaced some crap Sony-specific code with generic wrappers. Main obstacle if I remember is memory maps now, there was an issue with partition maps but ATAG can be easily over-ridden via kernel command-line.
Getting it to boot should be trivial, sound and video will be difficult, and RIL may be never working due to lack of sources. Regardless, all the best. When I have more time I plan to help irii with his work on a "generic" 2.x kernel newer than what we have (because 3.x seems outrageous at this point).
Is there a wiki, a forum or something like that lists all the non-standard things that have already been found ? (some base of work to do)
Boudin said:
Is there a wiki, a forum or something like that lists all the non-standard things that have already been found ? (some base of work to do)
Click to expand...
Click to collapse
Easy to do yourself - download official SEMC kernel source and diff it with the same version of the linux baseline kernel. So to port to newer kernel you can isolate or "extract" the specific code that has been added and changed, and merge or "inject" that into a newer kernel. Easier said than done though, there are massive changes even in linux kernel revisions (0.0.x.0) - let alone alone new majors and minors (x.x.0.0).
There wouldn't be a wiki or anything of this research, because documenting it all would take an unrealistic amount of labor. Considering there are only a small handful of developers capable of it, there's no point. Besides, that's what GitHub and commit logs are for.
To FXP team,
I don't know if you know or not or even got this far in the development stage but I just wanted to point out a couple of things which may or may not help you...
So with the 3.4 kernel brings newer WiFi drivers which will give a better connection signal on wpa2 security but you might find that devices won't be able to connect to open security networks and WiFi hotspot will probably be broken. I'm posting this as on my gnex using custom kernel (FrancoFransico) he incorporated the 3.4 WiFi drivers a few times and broken hotspot and not being able to use open security WiFi networks were repeatedly reported problems.
I think it may be something hardware specific which allows these features to work on the 3.4 WiFi drivers specific to the nexus 4? You may have more luck trying the 3.0.xx WiFi drivers and getting those to work fully.
Best of luck to you guys!
Sent from my Galaxy Nexus
I'm pretty sure wifi is way down on the priority list, not to be rude but really - who cares about that now. Priority list would be like this:
(1) Get it to boot
(2) Fix primary/critical hardware-specific code for msm7k and qcom platform (display, audio)
(3) Fix RIL
(4) Fix secondary hardware (sensors, bluetooth, wifi)
One step at a time. Getting wifi will probably be trivial because bcm sources are part of the mainline kernel.
With that said, I'm unsubscribing from this thread now. There is massive work to be done and I can see this thread is just going to be filled with posts that have nothing to do with actual development.
All non-dev related posts, and especially "Thank You" posts, will be deleted without further notice. If I have to delete 5 pages of useless posts again, this thread will be locked.
Thank you!
We have tried for a long time already (as you may already know).
https://github.com/adridu59/semc-msm-3.4/commits/master
https://github.com/adridu59/semc-msm-2.6.35
https://github.com/adridu59/android-msm-2.6.35
https://github.com/ExPeacer/CAF_android-msm-3.0/commits/master
https://github.com/ExPeacer/CAF_android-msm-2.6.32
Have fun with it anyways.
adridu59 said:
We have tried for a long time already (as you may already know).
https://github.com/adridu59/semc-msm-3.4/commits/master
https://github.com/adridu59/semc-msm-2.6.35
https://github.com/adridu59/android-msm-2.6.35
https://github.com/ExPeacer/CAF_android-msm-3.0/commits/master
https://github.com/ExPeacer/CAF_android-msm-2.6.32
Have fun with it anyways.
Click to expand...
Click to collapse
Whats the progress so far on this? Bootable already?
CosmicDan said:
Easy to do yourself - download official SEMC kernel source and diff it with the same version of the linux baseline kernel. So to port to newer kernel you can isolate or "extract" the specific code that has been added and changed, and merge or "inject" that into a newer kernel. Easier said than done though, there are massive changes even in linux kernel revisions (0.0.x.0) - let alone alone new majors and minors (x.x.0.0).
There wouldn't be a wiki or anything of this research, because documenting it all would take an unrealistic amount of labor. Considering there are only a small handful of developers capable of it, there's no point. Besides, that's what GitHub and commit logs are for.
Click to expand...
Click to collapse
I was asked by some user of this forum to give some kernel porting guidelines in this thread, so let me introduce myself first. I'm the developer of 3.0.x kernel for Samsung Galaxy Spica (also several other projects for Spica and Galaxy Apollo/Galaxy 3) and currently also Linux kernel developer at Samsung Poland R&D Center. Porting the kernel for Spica was a difficult task, because of poor quality of original kernel code, which required rewriting from scratch most of it, but it was very educational.
It's not easy to give advice, but I'd say that taking all the differences from clean kernel and applying all of that on top of newer version is what should be avoided. Of course those differences should be collected to see what was changed by the manufacturer, but this should be only used for further analysis, not as a ready code.
Another thing, rather than using the mainline Linux kernel to compare your phone sources with, it should be better to use Android kernel from Google's kernel/common tree (see https://www.codeaurora.org/gitweb/quic/la/?p=kernel/common.git;a=summary for older version archive) bumped to the same minor version using minor patches (found on kernel.org) or, possibly even better way, by pulling appropriate version tag from kernel.org git on top of proper branch of Android kernel tree. This will elminate Google's changes (that would be already available in your new base - android-3.4 branch of kernel/common) from the diff.
For getting the diff, I would personally also use Git. If you create a branch in your working tree which contains Android kernel in the version corresponding to your device kernel (using the way I described in previous paragraph), then copying your device kernel sources onto your working tree (remember to make distclean both trees to remove any compiled/generated files) will allow you to see the differences using git status and git diff. (See http://gitimmersion.com/ if you want to learn more about Git.)
Now it's important to split the changes into logically separate parts, for example core changes in arch/arm/mach-whatever_suitable_for_your_device, adding of particular drivers in drivers/, sound/ and include/, modifications to core kernel code in any other directories. It's essential to check whether all the changes are really required or not and why, because minimalizing the set of changes required to be replayed on top of your new base kernel sources will simplify your work.
After collecting all the changes, it's the time to apply them on top of your new kernel sources. All the changes should be applied one by one, checking how much the component that is being touched has changed since your old kernel and adjusting the changes properly. After applying each change, it should be verified that the kernel at least compiles, although it would be even better if you could get the kernel without any (or almost any) modification to boot to some state, e.g. showing something on the console (any chance to get access to serial console on your device?), and then check if it still boots after applying each next change.
Some links that might be useful:
- Linux cross reference, for comfortable reading of kernel code - http://lxr.linux.no/+trees
- Linux Device Drivers, a book about kernel programming - http://lwn.net/Kernel/LDD3/
- Git Immersion, a great Git tutorial - http://gitimmersion.com/
- Android kernel/common repository with full archive - https://www.codeaurora.org/gitweb/quic/la/?p=kernel/common.git;a=summary
- Linux stable repository, with all version tags - http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
Hopefully what I wrote will be helpful in your project. Good luck and best regards.
Hey tom3q,
thanks a lot for leaving some useful statements here!
tom3q said:
Another thing, rather than using the mainline Linux kernel to compare your phone sources with, it should be better to use Android kernel from Google's kernel/common tree (see https://www.codeaurora.org/gitweb/quic/la/?p=kernel/common.git;a=summary for older version archive) bumped to the same minor version using minor patches (found on kernel.org) or, possibly even better way, by pulling appropriate version tag from kernel.org git on top of proper branch of Android kernel tree.
Click to expand...
Click to collapse
I digged for some base kernel for a while.
Found a chromium msm kernel 2.6.32.9 at codeaurora (i know this is not Android).
Anyway, the diff against stock was ~30MB... quite too much.
Like i assumed many basic things are missing as well, so too much to start from.
I guess, i'll step through the other projects... might try 2.6.32-rc8 from the msm tree... just for fun of course :angel:
tom3q said:
After applying each change, it should be verified that the kernel at least compiles, although it would be even better if you could get the kernel without any (or almost any) modification to boot to some state, e.g. showing something on the console (any chance to get access to serial console on your device?), and then check if it still boots after applying each next change.
Click to expand...
Click to collapse
Nice point... i like these hardware hacks and asked about testpoints for UART3 on the Pro mainboard a few days ago.
It's mentioned and so far i got it, initialized in stock kernel as well. Unfortunately no-one seems to know anything about these testpoints.
Anyway i don't want to spam this thread, so thanks for your attention
Regards,
scholbert
hy
scuse my ignorance
but
HOW do you compile an kernel ?
and maybe someone can explain what is the difference between bring-up and port
scholbert said:
Hey tom3q,
thanks a lot for leaving some useful statements here!
I digged for some base kernel for a while.
Found a chromium msm kernel 2.6.32.9 at codeaurora (i know this is not Android).
Anyway, the diff against stock was ~30MB... quite too much.
Like i assumed many basic things are missing as well, so too much to start from.
I guess, i'll step through the other projects... might try 2.6.32-rc8 from the msm tree... just for fun of course :angel:
Nice point... i like these hardware hacks and asked about testpoints for UART3 on the Pro mainboard a few days ago.
It's mentioned and so far i got it, initialized in stock kernel as well. Unfortunately no-one seems to know anything about these testpoints.
Anyway i don't want to spam this thread, so thanks for your attention
Regards,
scholbert
Click to expand...
Click to collapse
FXP said:
hy
scuse my ignorance
but
HOW do you compile an kernel ?
and maybe someone can explain what is the difference between bring-up and port
Click to expand...
Click to collapse
I would say that porting is moving and correcting sources from 2.6.32 kernel in our case into 3.x. And bring up is writing particular drivers from scratch?
Sent from my Nexus 7
voyteckst said:
I would say that porting is moving and correcting sources from 2.6.32 kernel in our case into 3.x. And bring up is writing particular drivers from scratch?
Sent from my Nexus 7
Click to expand...
Click to collapse
ok
nice explanation
look on first page
diff is 5mb on proper tag
pushed on github
nice to see so many developers trying to help
FXP said:
diff is 5mb on proper tag
pushed on github
Click to expand...
Click to collapse
Sorry to throw my 3 cents again, but seeing the repository on github, I'd recommend you to use some time to go through Git Immersion. Even if it takes some time, it will simplify your further work, as Git used properly can really make many things easier.
Otherwise, the diff itself looks mostly fine as a starting point, although some of the differences can be probably eliminated.
tom3q said:
Sorry to throw my 3 cents again, but seeing the repository on github, I'd recommend you to use some time to go through Git Immersion. Even if it takes some time, it will simplify your further work, as Git used properly can really make many things easier.
Otherwise, the diff itself looks mostly fine as a starting point, although some of the differences can be probably eliminated.
Click to expand...
Click to collapse
sony added too many changes to be usefull
since there are several api changes on 32->3.x diff is no good
we have to start from clean board-7x30 and populate devices porting drivers 1 by 1
we have to try an device bringup based on sony changes
** This guide is depreciated, there is a new updated guide here**
If you are planning on using LineageOS 14 for this guide, you can bypass all of this except configuring location backends and battery optimization by heading to https://lineage.microg.org and downloading their ROM.
All download links as well as a link to a list of Open-Source applications to replace commonly used Play Store apps are in the third post.
*This will NOT work with MIUI Global, as the Play Store is already included in the ROM by default.*
I will be continuously updating this guide for everyone as I stumble upon more supported ROMs, more MicroG flashable zips, and other misc. edits. This is made with Android Marshmallow and Nougat in mind as it is all I have tested on, however this may work on older releases of Android with Xposed support or ROMs with Signature Spoofing. This has also only been personally tested on the XT1607 variant.
In order to sync calendars and contacts from your Google account, you must flash the Google Sync Addon by ale5000. If you want swipe gesture typing on the AOSP keyboard, you must flash Shadow53's swipelib.zip. Shadow53 also has a No-Gapps zip package that includes F-Droid, Firefox, and several other apps.
One final thing: This is not for everyone. There was a point in time I didn’t ever think I could go without the Play Store, but ever since I have I don't want to go back. There are numerous pros to switching to a Google-free android setup such as much better battery life, more privacy on your device, a world of open-source alternatives to popular applications, and more. If you have any questions, or if any of this seems daunting if you are newer to things of this nature, please do not hesitate to ask for help. I will try the best I can in my free time to help. Thank you for taking the time to read this, let’s go ahead and start.
*Disclaimer* Your warranty is now void if you modify your phone. I'm not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed.
Click to expand...
Click to collapse
*This first post is for ROMs without native Signature Spoofing support. A list of those with native spoofing can be found in the second post as well as the guide for ROMs that include native signature spoofing.*
What You'll Need:
1. Your Phone with at least 80% battery, preferably 100%.
2. A computer to transfer files to phone
3. You must have Root Access. This can be native root or Magisk root.
4. Your ROM of choice
5. Download the correct Xposed SDK and Xposed APK for your version of Android. The Xposed SDK version may differ for your device.
6. MicroG Unofficial Installer ZIP and Google Sync Addon (optional) by ale5000 or any of Shadow53's MicroG flashable files (download links in third post)
7. Your favorite backup method if you wish to back up such as Titanium Backup, MyBackup Root/Pro, etc.
8. Third Party App Store/APK downloader such as Yalp Store if not wishing to use all open source apps
9. A working Google account
Click to expand...
Click to collapse
Alrighty, let’s finally get into the steps.
1. Make sure you have downloaded the requirements.
2. If you wish, backup the data you want. This should not erase any files stored on an SD card, but I cannot guarantee.
3. Boot into a custom recovery, I am using TWRP
4. Use the standard wipe data options
5. Flash the files in the following order:
Your ROM of choice
MicroG Unofficial installer
Xposed SDK
Custom kernel if using one
6. Just to be safe and to avoid any potential complications, now reboot the device and set up the basics. Afterwards, boot back into recovery.
7. In recovery, wipe Dalvik/ART cache only (Not really required, I always recommend it though just to be safe)
8. Go into Settings —> Security —> Turn Unknown Sources on to allow for APK installs.
9. Install the Xposed Installer APK
10. Open Xposed, grant any permissions/root permissions if it asks for any. Go to download, and search for FakeGApps. Download and install. Next go into the Modules tab of Xposed, and check the box next to the module. Reboot to activate (A soft reboot may work, but I recommend a full reboot.) Installing this allows MicroG to bind to the system and spoof the required signatures.
11. Open MicroG in the app drawer, and allow all permissions it asks for. While in here, turn on Google Device Registration
12. After allowing all permissions, go into Settings. Go to Accounts —> Add Account —> Google Account. Sign into your Google Account. This is necessary to allow certain applications that require Google Play Services to work properly.
13. After signing in, head back into MicroG, go under Google Cloud Messaging and enable.
14. In MicroG settings, head to the UnifiedNLP settings. Under the Configure location backends section, open WiFi Location Service and select Mozilla Location Service and grant any permissions asked. Under Configure address lookup backends, select Nominatim.
15. Finally, in Settings, go to Location and change the mode to High accuracy.
16. Check MicroG's Self-Check to see if everything has been set up properly, and if so, you are good to go!
Click to expand...
Click to collapse
*This post is the steps for ROMs that natively support Signature Spoofing. There is a list at the bottom of this post of those that currently support it
What you will need:
Your Phone
The ROM that supports Signature Spoofing and the kernel of your choice
MicroG unofficial installer and (optional) Google Sync Addon by ale5000 or one of Shadow53's MicroG installers
Magisk Root Manager (Optional)
About 20-30 minutes of your time
Click to expand...
Click to collapse
Steps:
1. Backup anything you want to have backed up. I recommend backup up your Contacts and Calendar events if you have those synced to Google
2. Boot into Recovery on your phone
3. Perform a standard wipe in TWRP
4. Flash the ROM
5. Flash the chosen microG zip file(s)
6. (Optional) Flash Magisk and your favorite kernel
7. (For crDroid Only)If you are flashing crDroid, you need to head over to Settings --> Miscellaneous and turn on the Signature Spoofing toggle
8. Go into Self-Check in microG, and tap the text that says "System grants signature spoofing permission", and allow microG that permission.
9. Still in MicroG, head back to the main part of the app. Open UnifiedNLP.
10. Select the pre-installed location backends.
11. Sign in to your Google account if you wish
12. You're done!
Click to expand...
Click to collapse
Moto G4 Play ROMs with Native Signature Spoofing
crDroid v3.8.1 - Android 7.1.2
ViperOS Coral - Android 7.1.2
TipsyOS - Android 7.1.2
AEX - Android 7.1.2
AICP (@ki's build) - Android 7.1.2
Glassrom Official - Android 7.1.2
MicroG Project has released an unofficial fork of LineageOS 14 that now includes signature spoofing and MicroG components. You will not need to follow anything in this guide except configuring location backends if you download their LineageOS build. There is no Play Store functionality added, although F-Droid (an open source app store) is included by default. You can add the Play Store with a zip that Shadow53 provided on their website (link in post below) More info can be found on their website
Flashable Packages and App Replacements
There are several different MicroG flashable zip files to choose from. ale5000 has one that includes MicroG, several location backends, and the Play Store. Shadow53 has MicroG and several other zip files such as an F-Droid package, the Swipe Libs for gesture typing on the AOSP keyboard, and several more.
Downloads:
MicroG Unofficial Installer - ale5000
Shadow53's Downloads for MicroG, F-Droid, and more
Now alternatives to apps you might commonly use such as Twitter, Facebook, Gmail, etc. can be a bit difficult to find at first. I stumbled upon a list that a user by the name of Datenschutz has compiled on GitHub that has a good collection of alternative open-source applications. Also, you can alternatively download APK files of certain apps such as Netflix, Messenger Lite, etc. if you don't find a suitable replacement.
Some open-source apps that are found on F-Droid I use daily are:
Flym - RSS Reader
QK SMS - SMS App
Twidere - Twitter Client
Toffeed - Facebook web-client
Newpipe - YouTube player
K9 Material - Mail app
ApkTrack - Checks for updates on APKs installed
Hi,
a Google account isn't required for Google Cloud Messaging (but it is required for many other things).
Also the official Play Store and contact / calendar sync apk work with microG (if needed).
I have created some tools to help setup microG (they are in my signature).
ale5000 said:
Hi,
a Google account isn't required for Google Cloud Messaging (but it is required for many other things).
Also the official Play Store and contact / calendar sync apk work with microG (if needed).
I have created some tools to help setup microG (they are in my signature).
Click to expand...
Click to collapse
I will definitely take a look into this, thank you! Any success on Nougat at all?
fireball0093 said:
I will definitely take a look into this, thank you! Any success on Nougat at all?
Click to expand...
Click to collapse
I'm using microG on Nougat and KitKat, and I can say that it works perfectly (but I patch the framework for signature spoofing instead of using Xposed).
Moto G4 Play (Harpia XT1607) specific so I guess I am not too far off topic: Is there a Nougat ROM available that has signature spoofing built it?
Given my bad experience with Xposed on my old Galaxy Nexus, I really only want to use a ROM with signature spoofing built it. If I have to compile it myself that would be okay but it would be nicer to have a ROM with built-in support. And since I don't think Xposed runs on Nougat yet, that is not an option anyway.
For my old Galaxy Nexus I've been using the Unlegacy project, compiling my own ROM with the signature patches built it. But although I've see "official" Nougat ROMs announced for the G4 Play (LineageOS, AOKP, AOSxP, etc.) either I can't find a link to the correct source code/manifest files or, as in the case of LineageOS I can't get it to compile (complains of missing component(s) even though I've used the provided scripts to pull what should be all the needed items from my phone).
I really want to get back to the non-Google experience I have on my Galaxy Nexus using microG. Thanks for any help!
n76 said:
Moto G4 Play (Harpia XT1607) specific so I guess I am not too far off topic: Is there a Nougat ROM available that has signature spoofing built it?
Given my bad experience with Xposed on my old Galaxy Nexus, I really only want to use a ROM with signature spoofing built it. If I have to compile it myself that would be okay but it would be nicer to have a ROM with built-in support. And since I don't think Xposed runs on Nougat yet, that is not an option anyway.
For my old Galaxy Nexus I've been using the Unlegacy project, compiling my own ROM with the signature patches built it. But although I've see "official" Nougat ROMs announced for the G4 Play (LineageOS, AOKP, AOSxP, etc.) either I can't find a link to the correct source code/manifest files or, as in the case of LineageOS I can't get it to compile (complains of missing component(s) even though I've used the provided scripts to pull what should be all the needed items from my phone).
I really want to get back to the non-Google experience I have on my Galaxy Nexus using microG. Thanks for any help!
Click to expand...
Click to collapse
I am currently looking into hopefully a method for Nougat, give me about a day to see if it works for me.
@fireball0093: If you compile from sources there the patches here instead to patch the compiled code there are the tools linked here.
ale5000 said:
@fireball0093: If you compile from sources there the patches here instead to patch the compiled code there are the tools linked here.
Click to expand...
Click to collapse
@ale5000: What ROM are you compiling from source for a Harpia (I hope that will work on a xt1607 flavor)? Got a URI I can use for repo init?
Thanks!
@n76: I just given the link of the generic signature spoofing patch that should theoretically work on all ROMs, I haven't compiled any ROM.
ale5000 said:
@n76: I just given the link of the generic signature spoofing patch that should theoretically work on all ROMs, I haven't compiled any ROM.
Click to expand...
Click to collapse
Thanks, I have been able to successfully use that patch on my personal builds of the Unlegacy ROM (Marshmallow and Nougat) for my Galaxy Nexus.
I just haven't been able to successfully build a ROM, even without the patch, for my Moto G4 Play.
n76 said:
I just haven't been able to successfully build a ROM, even without the patch, for my Moto G4 Play.
Click to expand...
Click to collapse
Sorry, I can't help with this.
Hallo,
i found a list of Roms supporting signature spoofing in the MicroG Threat. CRdroid is availible for Harpia and it is listen in the ROMS-List. Have anybody testet crDroid 2.1 for Harpia with MircoG?
Links:
https://forum.xda-developers.com/android/general/index-list-custom-roms-offering-t3557047
https://forum.xda-developers.com/g4-play/development/rom-crdroid-v1-6-t3525141
gueschmid said:
Hallo,
i found a list of Roms supporting signature spoofing in the MicroG Threat. CRdroid is availible for Harpia and it is listen in the ROMS-List. Have anybody testet crDroid 2.1 for Harpia with MircoG?
Links:
https://forum.xda-developers.com/android/general/index-list-custom-roms-offering-t3557047
https://forum.xda-developers.com/g4-play/development/rom-crdroid-v1-6-t3525141
Click to expand...
Click to collapse
Nice find, thank you!
Looking at the crDroid source code repository at https://github.com/crdroidandroid it does look like the patch for signature faking is in there. (We should probably have the page at https://github.com/microg/android_packages_apps_GmsCore/wiki/Signature-Spoofing updated to include crDroid).
But I am a bit leary about trying the ROM linked to at https://forum.xda-developers.com/g4-play/development/rom-crdroid-v1-6-t3525141 as, despite the title of the XDA thread, it does not seem to be an official build. It looks like the official builds for the project are at https://androidfilehost.com/?w=devices&uid=23991606952610065 and are all built by "crdroidandroid" and there is no Moto G4 Play build there. The "[ROM][OFFICIAL][7.1.1] crDroid v2.1" links to a ROM built by SubhrajyotiSen on a different page so I am a bit hesitant to install it.
But this is interesting enough that I will try to build the ROM myself using the official sources from the crDroid project and see what happens.
it may be an inofficial Build, but it is mentioned on the G+ - Page of crDroid!
https://plus.google.com/communities...6/stream/d3e3f57f-b974-41f2-8740-97dbdd38056c
I went and installed crDroid here on the forums and also flashed the MicroG installer after flashing crDroid. I can confirm that signature spoofing is available and works. Under Settings, you just have to go to crDroid Settings, scroll down to Miscellaneous, and toggle Allow signature spoofing. Then go into the Self Check section in MicroG and tap "System grants signature spoofing permission" and allow MicroG to have that permission, and then the only thing you have to do to is configure the pre-installed location backends and you're good to go. I'll edit the second post and this thread to include this find, thank you @gueschmid
*Edit*
Actually, would people prefer me to edit this guide and leave it up as a Marshmallow-only guide and then create a second one for Nougat with our device? Just to keep it a bit clean
fireball0093 said:
I went and installed crDroid here on the forums and also flashed the MicroG installer after flashing crDroid. I can confirm that signature spoofing is available and works. Under Settings, you just have to go to crDroid Settings, scroll down to Miscellaneous, and toggle Allow signature spoofing. Then go into the Self Check section in MicroG and tap "System grants signature spoofing permission" and allow MicroG to have that permission, and then the only thing you have to do to is configure the pre-installed location backends and you're good to go. I'll edit the second post and this thread to include this find, thank you @gueschmid
*Edit*
Actually, would people prefer me to edit this guide and leave it up as a Marshmallow-only guide and then create a second one for Nougat with our device? Just to keep it a bit clean
Click to expand...
Click to collapse
Thanks for trying this out. I think I will have the time to follow your lead next week. It will be good to excise GApps from this phone.
VoLTE is important for me, is it working on this crDroid build?
n76 said:
Thanks for trying this out. I think I will have the time to follow your lead next week. It will be good to excise GApps from this phone.
VoLTE is important for me, is it working on this crDroid build?
Click to expand...
Click to collapse
I don't have a carrier that uses VoLTE, but I took a look in the Changelog on some posts and it seems to have support for it on crDroid
Updated the guide to include crDroid in the second post. I have been messing around with Tingle in my spare time but I cannot fully grasp the concept as I don't have much experience using tools like that. If I do succeed in the future, I'll edit that in as well.
Hi
I hope it's ok to ask this question since almost all xposed modules are open sourced and free, not paid. I am not talking here about the paid ones or donate versions.
There are few very good guides available to make xposed modules if someone has some moderate coding skills but not for the reverse.
Since there is no xposed available for Nougat even though the dev is doing his best, I want to port some features directly injected into the source code.
I want to know if it's a possibility to do that or are these modifications can only be done at run time with a modified framework like xposed?
Of course it'll all happen if the dev of that xposed module allows that, but I want to know the possibility of it.
Is there such guide available or any suggestions?
Searching didn't provide any results as they are all abt making them, not reverting them into such code that can be used in a rom.
One example of such modules is "disabling headset loud volume notification".
Sent from my "1+2" powered by Official RR 7.x.x
Compiled by myself
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.
Just downloaded the latest version as needed to update my license key also, but the new key I just generated is not working in the new version, it is asking for a ELM key, I have a KLM like I've always used, which isn't working, adhell gives error 201 when I try to use it. Anyone know what's going on? Do I need a new type of key? I see no options on SEAP to make anything other than the key I have..
See for link to edu key
https://gitlab.com/fusionjack/adhell3/blob/master/README.md
And more info, last two pages
https://forum.xda-developers.com/galaxy-note-9/help/adhell-3-1-assistance-t3873831/page23
Thanks I figured it out already, never got notification of your reply which would have been helpful haha. But I'm sorted now anyway. Thanks again though ?
Please keep in mind that AdHell3 is NOT supported on XDA. For official and up-to-date information about the AdHell3 project, please visit:
Main repo: https://gitlab.com/fusionjack/adhell3
Scripts for compiling: https://gitlab.com/fusionjack/adhell3-scripts
Get your EDU ELM key from: https://seap.samsung.com/license-keys/generate/edu
Official Support Discord Channel: https://discord.gg/hfreZum
Dependable(?) precompiled APKs: https://www.mediafire.com/folder/sb37c6gmhqgbn
Mike B. said:
Please keep in mind that AdHell3 is NOT supported on XDA. For official and up-to-date information about the AdHell3 project, please visit:
Main repo: https://gitlab.com/fusionjack/adhell3
Scripts for compiling: https://gitlab.com/fusionjack/adhell3-scripts
Get your EDU ELM key from: https://seap.samsung.com/license-keys/generate/edu
Official Support Discord Channel: https://discord.gg/hfreZum
Dependable(?) precompiled APKs: https://www.mediafire.com/folder/sb37c6gmhqgbn
Click to expand...
Click to collapse
Why is it not supported?
Not supported as in official and up-to-date information about the AdHell3 project is on the links listed
Snowby123 said:
Why is it not supported?
Click to expand...
Click to collapse
Because XDA doesn't provide a convenient way to host and support ongoing source code projects, and there are only 3 of us and only 24 hours per day!
Various XDA threads erroneously deal with AdHell3 as if it were a simple "download and install" app when it's actually a GitLab project which must be compiled by a Samsung Developer. It is not (and cannot legally) be distributed as a precompiled APK, and any such APK that you may find is the sole responsibility of its uploader (and hosting site), in violation of Samsung's policies. Improper distribution of earlier AdHell, AdHell2, and SABS led to those apps getting discontinued at Samsung's request. Furthermore, those APKs must be "patched" to be usable, possibly in violation of XDA's policies.
The AdHell3 project is alive and well, and fully supported in the venues mentioned in my previous post, including READMEs, FAQ, etc. See you there...
UPDATE:
Samsung is not currently issuing any keys suitable for use with AdHell3. Please see our official support areas or at least check out THIS post