Hi again everyone,
So this is kind of a continuation of my earlier thread here: http://forum.xda-developers.com/showthread.php?t=977211
Cmenard and I were talking earlier about adding the individual developers custom kernel "names" into that display string, and thanks to his direction, now we can!
Its kind of "hack-ish" right now, piggybacking on either the version# or the individual build #XX string in order to actually display in Settings.apk, and so it makes the string look nasty and unformatted. Sadly though, even though I've spent 3-4 hours learning rudimentary regex syntax to understand the code used, I don't feel comfortable enough yet to modify it.
(If anyone here is a REGEX master and can tell me how to build the string and insert it into the original AOSP regex string, then I'll update both this thread and my Settings.apk thread accordingly.)
Here's the AOSP regex code for anyone that's a master and wants to help me out, my best guess would be to group the third line (group 1) a second time, and after it finds white space, then add something to look for anything other than a digit (assuming devs always end their name with a numerical version number) maybe something like: ([^\\d]+[\\d]*)\\s+
Code:
"\\w+\\s+" + /* ignore: Linux */
"\\w+\\s+" + /* ignore: version */
"([^\\s]+)\\s+" + /* group 1: 2.6.22-omap1 */
"\\(([^\\[email protected]]+(?:@[^\\s.]+)?)[^)]*\\)\\s+" + /* group 2: ([email protected]) */
"\\((?:[^(]*\\([^)]*\\))?[^)]*\\)\\s+" + /* ignore: (gcc ..) */
"([^\\s]+)\\s+" + /* group 3: #26 */
"(?:PREEMPT\\s+)?" + /* ignore: PREEMPT (optional) */
"(.+)"; /* group 4: date */
Ok, so source for kernel developers:
In the makefile:
First, at the very top, change the name to whatever you want, though if you want it appended to the kernel version (for instance 2.6.32.9-XXXXXkernelXXXXX) then you need to make sure you omit ANY whitespace/
Code:
NAME = Categorically Worthless v4
or
NAME = CategoricallyWorthless4
then in "define filechk_version.h"
Change the line:
Code:
(echo \#define LINUX_VERSION_CODE $(shell \
to the following
Code:
(echo \#define LINUX_CODE_NAME \"$(NAME)\"; \
echo \#define LINUX_VERSION_CODE $(shell \
And second, in /init/version.c we need to display the LINUX_CODE_NAME somewhere, and this depends on your naming convention in the makefile; did you use whitespace or not?
If you DIDN'T use whitespace, the cleanest formatting is to append to the version number string:
in "const char linux_proc_banner[] ="
Change the first line
Code:
"%s version %s"
to the following
Code:
"%s version %s" "-" LINUX_CODE_NAME
If you DID use whitespace in your kernel name, then instead change the last line
Code:
" (" LINUX_COMPILER ") %s\n";
into two lines that read
Code:
" (" LINUX_COMPILER ") "
LINUX_CODE_NAME " %s\n";
If you move the position of the LINUX_CODE_NAME in proc_banner in version.c, anywhere else, or if your kernel name isn't formatted properly (without whitespace for the first version) then it breaks the entire display, and Settings.apk will just display "Unavailable."
And the result (coupled with my settings.apk mod I posted earlier) will display this:
left image is the first method (no white space in kernel "name") right image the second method
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
So there you go, an easy way for users to know what kernel version they have installed.
I hope someone finds this useful, and be sure to also thank cmenard for his help in this.
Cheers everyone, =)
Updated the OP really quick.
I spent some time learning basic regex syntax, and found another hack-ish method, and added it to the op.
Cheers, =)
How much time did you spend on this?
It's marginally cleaner than just using CONFIG_LOCALVERSION="-Honity14-bfs"
morfic said:
How much time did you spend on this?
It's marginally cleaner than just using CONFIG_LOCALVERSION="-Honity14-bfs"
Click to expand...
Click to collapse
Apparently both too much and not enough time since I failed to find the CONFIG_LOCAL_VERSION option you mention.
Oh well, not like I was doing anything productive/useful yesterday anyway.
Cheers, =)
morfic said:
How much time did you spend on this?
It's marginally cleaner than just using CONFIG_LOCALVERSION="-Honity14-bfs"
Click to expand...
Click to collapse
s0niqu3 said:
Apparently both too much and not enough time since I failed to find the CONFIG_LOCAL_VERSION option you mention.
Oh well, not like I was doing anything productive/useful yesterday anyway.
Cheers, =)
Click to expand...
Click to collapse
Indeed, i agree with Morfic, it is cleaner.
Well, regardless if you did or didn't do anything productive, this Jocelyn, is very PRODUCTIVE.
So how did you figure this out? I was looking at the source, is there a way to eliminate the build number, (ex. [email protected] #21) that #21, can we get rid of that?
Why not just change the version.c in the init folder only? using that will show anything you want without the name of the machine its been compiled on. That's typical how I set all my kernels like this http://twitpic.com/46apg2
If my regex and assumptions are correct, the you should be able to drop that number by eliminating the parentheses around the group three regex.
Ie change
([^\\s]+)\\s+
To
[^\\s]+\\s+
That should make it ignore the number. I an making the assumption that stuff not between parentheses gets ignored, and thus resulting in the mess that ignores the (gcc...)
Related
THIS IS STILL EXPERIMENTAL, I AM IN NEED OF SOME TESTERS.
See Post # 2 for Change log and Download links.
What is ROM OTA?
ROM OTA is a framework I am attempting to develop to allow ROM Devs to create a custom environment to download kernels, themes, fixes, updates, etc. to their ROMs.
Customizing ROM OTA
ROM OTA is made of 2 components, the client side application and server side xml. Each of these 2 components need to be configured.
Client Side App
Without any customization, ROM OTA the Main Menu of ROM OTA will contain generic links to various Captivate ROMS, Kernels, Modems, and GPS Fixes.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
With some minor configuration, the Main Menu in ROM OTA can display different icons and links selected by the Dev. To customize the Main Menu in ROM OTA, you need to:
Edit a simple xml file (menu.xml) and place the xml and any custom icons in /sdcard/rom_ota (See ROM_OTA.zip for sample CWM Zip setup). The layout of the default menu.xml looks like:
Code:
<?xml version="1.0" encoding="utf-8"?>
<xmlmenu>
<menu count="4" name="Captivate Downloads" server="http://sgs.wilsongis.com/xml/" >
<field menu_item_name="Captivate ROMS" desc="Latest Captivate ROMs" xml="rom.xml" icon="N" icon_name=""/>
<field menu_item_name="Captivate Kernels" desc="Latest Captivate Kernels" xml="kernel.xml" icon="N" icon_name=""/>
<field menu_item_name="Captivate Modems" desc="Captivate Compatable Modems" xml="modems.xml" icon="N" icon_name=""/>
<field menu_item_name="Captivate GPS Fixes" desc="Captivate GPS Fixes" xml="gps.xml" icon="N" icon_name=""/>
</menu>
</xmlmenu>
The following lines need to be customized (Values to update in CAPS):
<menu count="# OF MENU ITEMS" name="Captivate Downloads" server="WEB URL OF SERVER SIDE XML" >
<field menu_item_name="MENU CAPTION" desc="MENU DESC, USED ON DOWNLOAD SCREEN" xml="SERVER-SIDE XML NAME" icon="USE ICON Y/N" icon_name="LEAVE BLANK FOR DEFAULT OR IMAGENAME.PNG TO USE"/>
Use "<field menu_item_name..." to add as many menu items as you want. Remember to place the edited menu.xml and custom icons (IMAGENAME.PNG, above) in /sdcard/rom_ota folder.
Server-Side XML
The layout for the Server-side xml looks like:
Code:
<?xml version="1.0" encoding="utf-8"?>
<rows>
<row>
<one>Captivate SGS Tools</one>
<two>wilsongis</two>
<three>Captivate_SGS_Tools.zip</three>
<four>http://sgs.wilsongis.com/rom_ota/Captivate_SGS_Tools.zip</four>
<five>http://forum.xda-developers.com/showthread.php?t=936727</five>
<image>http://forum.xda-developers.com/customavatars/avatar3014854_2.gif</image>
</row>
<row>
<one>FF Mods and Fixes</one>
<two>wilsongis</two>
<three>FF_Changer.zip</three>
<four>http://sgs.wilsongis.com/rom_ota/FF_Changer.zip</four>
<five>http://forum.xda-developers.com/showthread.php?t=968136</five>
<image>http://forum.xda-developers.com/customavatars/avatar1525116_4.gif</image>
</row>
</rows>
The following needs to be edited to customize the server-side xml (Values to update in CAPS):
<row>
<one>ITEM 1 TITLE</one>
<two>AUTHOR</two>
<three>ZIP FILE</three>
<four>ZIP URL</four>
<five>Changelog URL</five>
<image>URL TO CUSTOM ICON</image>
</row>
<row>
<one>ITEM 2 TITLE</one>
<two>AUTHOR</two>
<three>ZIP FILE</three>
<four>ZIP URL</four>
<five>Changelog URL</five>
<image>URL TO CUSTOM ICON</image>
</row>
</rows>
The text in CAPS need to be edited by the Dev and placed on a web server. Make note of the web address (See and edit WEB URL OF SERVER SIDE XML above). Basically, each item that you want in the Main Menu of the client side app requires it's own xml file.
I hope these instructions and the purpose of the app make sense. I look forward to your feedback.
Credits:
xtremekilla09
adamholden85
YOU USE THIS SOFTWARE AT YOUR OWN RISK, THE DEVELOPER OF THIS SOFTWARE IS NOT RESPONSIBLE FOR ANY DAMAGES CAUSED BY THIS APP.
Default ROM OTA APK
Sample CWM File Structure
Sample Server-Side XML
Change Log:
v1 - Beta
- Initial Release
This is gonna be huge.
I am just glad to have contributed. (Even if it was just a tiny bit)
Hopefully the devs are gonna use this like I have for FireFly.
Really makes it easier for the end-user
xtremekilla09 said:
This is gonna be huge.
I am just glad to have contributed. (Even if it was just a tiny bit)
Hopefully the devs are gonna use this like I have for FireFly.
Really makes it easier for the end-user
Click to expand...
Click to collapse
Crap I need to add credits. I appreciate all the help you gave me. I am hoping the app will work on any ROM regardless of the type of phone.
wilsongis said:
Crap I need to add credits. I appreciate all the help you gave me. I am hoping the app will work on any ROM regardless of the type of phone.
Click to expand...
Click to collapse
Credits not necessary. You did all the work.
The app should work regardless of phone type.
xtremekilla09 said:
Credits not necessary. You did all the work.
The app should work regardless of phone type.
Click to expand...
Click to collapse
You really did help.
I am hoping my instructions are clear but we will see. I think I am also going to start a separate thread for the Default app. Even without customization it should be totally usable.
Great work guys..
Black?
Anyway we could go to a black background with white text?
Also If we don't specify a icon can it just show text?
Awesome program easy to setup too! Thanks for your work on this!
Edit: I used a work around by making a transparent image.
ChanceM
Let me mess with the icons. I may also make the text and background dynamic.
ChanceM said:
Anyway we could go to a black background with white text?
Also If we don't specify a icon can it just show text?
Awesome program easy to setup too! Thanks for your work on this!
Edit: I used a work around by making a transparent image.
ChanceM
Click to expand...
Click to collapse
Sent from my SGH-I897 using XDA Premium App
Updated the default xml.
Sent from my SAMSUNG-SGH-I897 using XDA Premium App
Hi everyone.
As you all know, Samsung distributes source code as tarballs which isn't the best way to redistribute kernel source code
git is the best modern way to work with Linux Kernel sources, designed by Linus himself in this purpose.
So, i made an organization on github for that.
https://github.com/sgs3
And yea, that means source code has been released, head on to http://opensource.samsung.com/
Kernel Sources :
https://github.com/sgs3/GT-I9300_Kernel
Branches :
master :- branch you should use(for developers), will contain fixes and more in the future (currently identical to stock_update4)
stock :- Kernel sources from GT-I9300_ICS_Opensource.zip, unmodified
stock_update1 :- Kernel sources from GT-I9300_ICS_Opensource_Update1.zip, unmodified
stock_update4 :- Kernel sources from GT-I9300_ICS_Opensource_Update4.zip, unmodified
If anyone wants to commit any fixes / anything else, fork and shoot a pull request
How to Build :
Get teh sauce:
Code:
git clone git://github.com/sgs3/GT-I9300_Kernel.git
cd GT-I9300_Kernel
git checkout master
Tell it to use our config:
Code:
make ARCH=arm CROSS_COMPILE=/path/to/toolchain m0_00_defconfig
Teh real build:
Code:
make CROSS_COMPILE=/path/to/toolchain
or
Code:
make -j `cat /proc/cpuinfo | grep "^processor" | wc -l` CROSS_COMPILE=/path/to/toolchain
The compiled kernel is arch/arm/boot/zImage
Was about to post this
Will start compiling and have a kernel up and running soon I hope. This time in contrast to the S2, it's time for serious developing.
Here's a direct link to the S3 files: http://opensource.samsung.com/reception/receptionSub.do?method=search&searchValue=GT-i9300
This is great news guys,
lets hope that we will also have a proper CWM recovery soon.
stickied
@whomever is building from source, please include the MMC driver patch that enables boot partition visibility. Maybe I'll even do it myself... this'll let TriangleAway work, so we can reset the flash counters
EDIT: this is the patch in question: http://git.kernel.org/?p=linux/kern...it;h=371a689f64b0da140c3bcd3f55305ffa1c3a58ef. Apparently Sammy took this out again in their sources (according to somebody else, I haven't had time to confirm yet, but I can see the boot partitions do *not* appear on my device), they may have bastardized it further ...
Chainfire said:
stickied
@whomever is building from source, please include the MMC driver patch that enables boot partition visibility. Maybe I'll even do it myself... this'll let TriangleAway work, so we can reset the flash counters
Click to expand...
Click to collapse
No CF-Root Kernels for the i9300?
Toss3 said:
No CF-Root Kernels for the i9300?
Click to expand...
Click to collapse
Well it's not needed as much due to the separate recovery, but if there's demand, I'll build CF-Root's... but those are based on Samsung binaries, not source.
Great! I'll go through this when I get the time.
Chainfire said:
Well it's not needed as much due to the separate recovery, but if there's demand, I'll build CF-Root's... but those are based on Samsung binaries, not source.
Click to expand...
Click to collapse
Of course I want a CF kernel
pglmro said:
Of course I want a CF kernel
Click to expand...
Click to collapse
I think everyone of us want a CF-Root-Kernel
Roughnecks said:
I think everyone of us want a CF-Root-Kernel
Click to expand...
Click to collapse
I don't really see the point why we should make that. I have flashed cwm with Odin and then the SuperSu cwm flashable zip available here on xda. Then installed busybox installer from the play store. Much easier to do as letting Cainfire always compile a cf-root kernel for us.
L
great seeing some a class developers here!!
thanks for opening this thread..
and good to know ya'll have a s3 aswell..
grtz!
Great news , hope to see some nice custom kernels soon!
Kernel dev's:
Please share your github if you start then
what?update#1 is already out?
Hope Samsung release a cleaner source this time
sakindia123 said:
what?update#1 is already out?
Hope Samsung release a cleaner source this time
Click to expand...
Click to collapse
Looks like they messed up the first zip, so the quick update
Only change i can see from stock to stock_update1 is the changing of file mode from 0755 to 0644
Samsung releases source code for the Galaxy S III
UPDATE 1 is out.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Chainfire said:
@whomever is building from source, please include the MMC driver patch that enables boot partition visibility. Maybe I'll even do it myself... this'll let TriangleAway work, so we can reset the flash counters
Click to expand...
Click to collapse
They seem to have hacked it out pretty crudely (certainly the korg patch won't apply cleanly). No device here, can't really test this, but the attached patch should properly allocate any mmc boot partitions.
A couple more patches before I rm
No device here and no idea if I'll ever get one, but I thought I would post couple more cosmetic (yet instrumental) patches for your tree so that my last 15 minutes wouldn't be in vain.
#1: m0_00_defconfig: Run through menuconfig;disable GCC strict checking. Otherwise I get a lot of noise with codesourcery toolchains
#2: Add .gitignore files from korg trees.
Take care
Anyone else get compilation error due to SVN_REV variables in these Makefiles:
drivers/media/video/samsung/mali/Makefile
drivers/media/video/samsung/ump/Makefile
I comment out the lines and replaced them with
Code:
SVN_REV=:0000
I used 0000 because of the comment in the Makefile.
Now, it compiles without error (though untested since I don't own S III)
Nope ... didn't get those errors!
This would be my second public-released xposed module...
Original Thread: http://forum.xda-developers.com/showthread.php?t=2400369
I did not expect that my WisdomSky Xploit would be a big hit.
I'm just an Amateur developer who just started delving into android development 3months ago and I didn't expect that much appreciation from my work... XD
But all of these would not be made possible if not because of sir @rovo89 and sir @Tungstwenty and their Xposed Framework, right? That's why I thank them a lot...
REQUIREMENTS
Xposed framework must be pre-installed before installing this.
What does the ResXploit do?
ResXploit has two parts:
the Removable part, terminal
and the main star, engine
The terminal is where you enter the commands(I'll discuss it later). These commands will then be interpreted by the engine and then passed to Xposed framework...
Flow:
TERMINAL >> ENGINE >> XPOSED FRAMEWORK
I have provided a variety of modules:
ResXploit (Terminal + Engine) (RECOMMENDED FOR NEWBIES)
ResXploit Terminal (Terminal Only)
ResXploit Engine (Engine Only)
You might be wondering why I made one which has both terminal and engine... and other two which are separated...
ROM Chefs, Themers and some others would understand directly why...
All the commands are interpreted by the Engine right? so that would mean that once you have entered all the desired commands, the terminal will now end up as useless... so you will just delete so no one can touch the engine...
If you are a ROM Chef or a themer, you can theme all the apps you need to theme using ResXploit and then remove the terminal, so end-user interaction of the engine is prevented after you have released your ROMs to the world.
FOR NEWBIES!
I recommend you to use the ResXploit (Terminal + Engine)...
It is very smart..
I included 99% accurate error-checking system,
line numbering system,
and also Xposed module prioritization(which is first implemented on ResXploit for better module performance).
COMMANDSd
We have five basic commands in the ResXploit, the apk, drawable, string, color, and boolean.
apk - A prerequisite command. This command is very vital whenever you using the ResXploit. This will define the target application by using the package name of the target application. You need to include this before you enter any command or else your command will not know which application is targeted and end up in lost island.
Code:
[B]format[/B]: [I]apk <package name>[/I]
[B]example[/B]: apk com.android.systemui
drawable(also drw) - The most often used command. The command which will change icons/images (png drawables) of an application. You can either overlay the existing image with your favorite color or completely replaced it with a .png image from your sdcard.
Code:
[B]format1[/B]: [I]drawable <target application's drawable name> <image path, no need to include /sdcard> <transparency, 0 to 255>[/I]
[B]example1[/B]: drawable status_background_color my_image/bg.png 255
[B]format2[/B]: [I]drawable <target application's drawable name> <HEX RGB color code> <transparency, 0 to 255>[/I]
[B]example2[/B]: drawable status_background_color #fff00ff 255
string(also str) - This command will change string(text) values of the application. The predefined string values are usually located in res/values/strings.xml of an application, but I guess they are not visible when you view the contents of an application using Archive managers like RootExplorer. But there is a way to identify them. I will include it later.
Code:
[B]format[/B]: [I]string <target application's string value holder name> <replacement string>[/I]
[B]example[/B]: string app_name My App
color(also clr) - This command will change color values of the application. The predefined color values are usually located in res/values/colors.xml of an application, but I guess they are not visible when you view the contents of an application using Archive managers like RootExplorer as well.
Code:
[B]format[/B]: [I]string <target application's color value holder name> <replacement color in HEX RGB Format>[/I]
[B]example[/B]: color holo_background_dark #ffffff
boolean(also bln) - This command will change boolean values of the application. The predefined boolean values are usually located in res/values/bools.xml of an application, but I guess they are not visible when you view the contents of an application using Archive managers like RootExplorer as well.
Code:
[B]format[/B]: [I]string <target application's boolean value holder name> <replacement boolean value, either [B]true[/B] or [B]false[/B] only>[/I]
[B]example[/B]: color allowNumberNotifications true
Some simple examples screenshots:
drawable and string commands in action
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
ResXploit UI screenshots:
If you find my ResXploit module interesting,
Please hit THANKS!!! XD:angel:
Please help me buy a new Android Phone.. Y_Y
Pretty awesome, gonna have to give this a try
Sent from my SPH-L710 using Tapatalk 4
This sounds amazing! are you planning on creating a GUI based frontend?
ReelFiles said:
This sounds amazing! are you planning on creating a GUI based frontend?
Click to expand...
Click to collapse
Maybe not for now.... but if it turns out good in the future, then why not? XD
and also.....
Please refer to the original thread,
this duplicate thread is not updated anymore... XD
the original thread link is mentoned at the very top.....
Interesting, sounds like a concept similar to Ninjamorph.
A couple of quick questions:
Is this able to apply folders or just single png's?
Also do you need extract png's from apks in order to apply or does it extract and apply automatically?
:good:
Edit : just seen the above post referencing other thread, maybe get this removed or locked.
Works perfect on my htc sxl...tnx bro
Any way to replace files in assets directory?
Incredible ... Keep up the good work
Pure AOSP 5.1.1_r24 [LMY48W]. Blobs from [LMY48T].
No code changes or extra features.
Compiled for myself but decided to share it.
The necessary changes
Added xml overlay that enable network locations (Gapps required)
Added xml overlay that enable gesture typing in AOSP keyboard (Gapps required)
Added xml overlay that enable account backup (Gapps required)
Added xml overlay that removes updates check option
AOSP default boot animation replaced by stock.
Code:
package aosp;
import disclaimer;
public class AOSP extends Disclaimer {
/**
* Your warranty is now likely void.
*
* I am not responsible for bricked devices, dead SD cards,
* spontaneous combustion, or any other host of cosmic penalties
* which may befall you, your family, animals or your phone.
*
*/
public AOSPDisclaimer(){
warranty.set(0);
}
}
Download from AndroidFileHost
Previous versions here
woland_ca said:
Pure AOSP 5.1.1_r6 [LMY48G]. No code changes or extra features.
Compiled for myself but decided to share it.
The necessary changes
Added xml overlay that enable network locations (Gapps required)
Added xml overlay that enable gesture typing in AOSP keyboard (Gapps required)
Added xml overlay that enable account backup (Gapps required)
AOSP default boot animation replaced by stock.
Code:
package aosp;
import disclaimer;
public class AOSP extends Disclaimer {
/**
* Your warranty is now likely void.
*
* I am not responsible for bricked devices, dead SD cards,
* spontaneous combustion, or any other host of cosmic penalties
* which may befall you, your family, animals or your phone.
*
*/
public AOSPDisclaimer(){
warranty.set(0);
}
}
Download from AndroidFileHost
Click to expand...
Click to collapse
Will it be pure AOSP? Any plans to add maybe layers?
russells.android said:
Will it be pure AOSP? Any plans to add maybe layers?
Click to expand...
Click to collapse
Sorry, I do not plan to mess with code. Just compiling.
I recommend this ROM + mirage kernel = new nexus 4 ! ?
Sent from my Nexus 4 using XDA Premium 4 mobile app
@woland_ca Hey bro!!!!! THANKS FOR YOUR PROJECT!!!!!!! I was in search of a ROM. It's just what I wanted! AOSP at the latest build, and clean! Work is appreciated. Greetings from Argentina.
NOTE: Now android 5.1.1 r8 is avalible Please update the ROM!
https://android.googlesource.com/platform/build/+/android-5.1.1_r8
Crs- said:
NOTE: Now android 5.1.1 r8 is avalible Please update the ROM!
https://android.googlesource.com/platform/build/+/android-5.1.1_r8
Click to expand...
Click to collapse
Syncing. Will take some time.
Nice to see at least one rom that is pure aosp for our n4. Please don't bother with feature requests and keep it pure :good:
Has anyone tested xposed with this rom? Would be great to update if xposed works
Here it is. ROM. I did not test it yet, lack of time. If someone want to try.
woland_ca said:
Here it is. ROM. I did not test it yet, lack of time. If someone want to try.
Click to expand...
Click to collapse
Testing
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
woland_ca said:
Here it is. ROM. I did not test it yet, lack of time. If someone want to try.
Click to expand...
Click to collapse
What are the changes?
cianz94 said:
What are the changes?
Click to expand...
Click to collapse
No idea what are the changes between r6 and r8. In git them looks like a two different branches (R6 belongs to LMxxxx builds and R8 to LVxxxx builds) most of commits are the same in both of them but not a 100%. If somebody know the difference please explain.
woland_ca said:
No idea what are the changes between r6 and r8. In git them looks like a two different branches (R6 belongs to LMxxxx builds and R8 to LVxxxx builds) most of commits are the same in both of them but not a 100%. If somebody know the difference please explain.
Click to expand...
Click to collapse
Good job. Simple and plain AOSP. Subscribing this thread
Sent from my Nexus 4 using Tapatalk
woland_ca said:
No idea what are the changes between r6 and r8.
Click to expand...
Click to collapse
After digging a little bit I found that R8 is actually a special build with Project Fi api enabled, which is useless for most of us. So it looks like there is no valuable difference between R6 and R8, and probably R6 is even better for N4. (Despite of that the R8 build is running well so far on my N4)
woland_ca said:
Added xml overlay that enable network locations (Gapps required)
Added xml overlay that enable gesture typing in AOSP keyboard (Gapps required)
Added xml overlay that enable account backup (Gapps required)
AOSP default boot animation replaced by stock.
Click to expand...
Click to collapse
When you have time, can you explain these xml changes and how we can apply them to our own AOSP builds shortly. It will be informative.
cewrld said:
When you have time, can you explain these xml changes and how we can apply them to our own AOSP builds shortly. It will be informative.
Click to expand...
Click to collapse
NP.
All files paths are relative to project root.
Xml overlay that enable network locations
By default AOSP uses only device GPS sensor. Network location (Battery saving) and hybrid (High accuracy) modes provided by the Google and in order to activate them you should edit:
device/lge/mako/overlay/frameworks/base/core/res/res/values/config.xml
Add inside <resources> tag:
Code:
<string-array name="config_locationProviderPackageNames" translatable="false">
<item>com.google.android.gms</item>
<item>com.android.location.fused</item>
</string-array>
Xml overlay that enable gesture typing in AOSP keyboard
By default AOSP keyboard has gesture typing disabled and has no decoding library. In order to enable it you should add new overlay file:
device/lge/mako/overlay/packages/inputmethods/LatinIME/java/res/values/gesture-input.xml
With code:
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="config_gesture_input_enabled_by_build_config">true</bool>
</resources>
And your Gapps should install proper libjni_latinime.so library. Not all Gapps have it. This one, for example, has it.
Xml overlay that enable account backup
By default AOSP will backup your account details into private debug cache. To point the backup to your Google account you should edit:
device/lge/mako/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
Add inside <resources> tag:
Code:
<string name="def_backup_transport" translatable="false">com.google.android.gms/.backup.BackupTransportService</string>
Xml overlay that removes system update option
Copy the file packages/apps/Settings/res/xml/device_info_settings.xml to device/lge/mako/overlay/packages/apps/Settings/res/xml/device_info_settings.xml, then edit copied file and comment first section that deals with update check:
Code:
<!--
<PreferenceScreen android:key="system_update_settings"
android:title="@string/system_update_settings_list_item_title"
android:summary="@string/system_update_settings_list_item_summary">
<intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" />
</PreferenceScreen>
-->
Replace default boot animation
Put the stock (or any other) boot animation file here:
vendor/lge/mako/prebuild/bootanimation.zip
Edit the file:
device/lge/mako/full_mako.mk
add right after:
PRODUCT_COPY_FILES := device/lge/mako/apns-full-conf.xml:system/etc/apns-conf.xml
the line:
PRODUCT_COPY_FILES += vendor/lge/mako/prebuild/bootanimation.zip:system/media/bootanimation.zip:lge
You can also fix Model number string to proper one:
PRODUCT_MODEL := AOSP on MAKO
to:
PRODUCT_MODEL := Nexus 4
Enjoy!
@woland_ca can you please update dialer and other icons to material design and release a build. They dont look good as i use the default launcher.
Thanks for your answer. Me and most users planning to learn how to compile will benefit from this.
What is different between pure aosp and Google stock rom?
Hello all!
Magisk script already exists that does this but I don't wanna use magisk due to performance overhead xd
I am building rom image with all thermal modifications applied to it already , including various other mods that one would use magisk for...
Basically this is what I need help with:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This would need to be converted into a post fs service :
-place a script inside /system/bin
-create init.rc file that starts a new service which would then call and execute the script
As far as init.rc goes that looks very simple :
Code:
on property:sys.boot_completed=1 <<This needs to be replaced with post fs
start NewService
service NewService /system/bin/script.sh
user root
group root
oneshot
This looks simple enough but then how it is written above won't work due to SELinux permissions...
init warning: Service myservice needs a SELinux domain defined. Please fix.
type=1400 ... avc:denied ... scontext ... tcontext ... #some annoying warning messages like this
Another user chimed in and shared this snippet :
Code:
The issue what that I needed to add the line seclabel u:r:init:s0 to my init service.
The complete service now looks like this:
Code:
on property:sys.boot_completed=1 <<This needs to be replaced with post fs
start NewService
service NewService /system/bin/script.sh
seclabel u:r:init:s0 <<<<<
user root
group root
oneshot
Issue here is : Also note that SElinux must be set to permissive to allow this service to run or alternatively a policy must be set to allow the service to run.
Which I can't do ... leave SELinux permissive is a huge issue
Now , I found this which builds on how the selinux must be setup to a user that has access to files that the script is wanting to modify... who that user may be in my case scenario idk xd https://stackoverflow.com/a/55901362
Code:
Run into a very similar problem myself, and here's what I've found:
When you run ls -Z /system/bin/myservice and get this:
u:object_r:system_file:s0
it means that your file is in the system_file domain. Now that's not good, as system files are not supposed to be executed, or at last not during init (you may still be able to execute it later from terminal the usual way).
In my case I was lucky, 'cause I was replacing an existing system service with a customised one that I've compiled from source. This means I was able to check the security context of the original file I was replacing and that was from ls -Z /system/bin/myservice.bak :
u:object_r:myservice_exec:s0
So I updated my new file to the same using chcon u:object_r:myservice_exec:s0 /system/bin/myservice
After that it was working fine.
If you want to create a brand new service you may need to use a domain that exists in your sepolicies already, as simply setting it to myservice_exec, won't help, as that would be a non-existing domain in your case. If I were in your shoes and wanted to avoid defining custom policy I might try to find a service with similar security, check the domain on that and try to set the same to my service. init_exec may be a good candidate, but your mileage may vary...
What idk is how to check the selinux policy for all existing users and what access they might have... back to searching I guess unless u have some ideas?
I would like to do this without modifying kernel/system to make it permissive...
I was building ROMs a few years back, and a common mod I was doing was enabling/fixing SELinux denials. So to assit in that end, I created a script that would translate SELinux denials from a logcat, into the SELinux allows required to be included in the ROM source. I have migrated that script into the GUI of an app I distribute here, with the script source available.
[APP][TOOL] TeMeFI comprehensive system Administration
TeMeFI This app provides/returns a bucket load of information regarding your device and the currently running ROM, and much, much more. And hence the name "TeMeFI"; as its Too Much F????? Information. The F stands for whatever your comfortable...
forum.xda-developers.com
You can find the feature within the menu, under Logcat>Logcats>Generate SELinux Allows It is also pretty trivial to convert these to Magisk compatible allow statements.
DiamondJohn said:
I was building ROMs a few years back, and a common mod I was doing was enabling/fixing SELinux denials. So to assit in that end, I created a script that would translate SELinux denials from a logcat, into the SELinux allows required to be included in the ROM source. I have migrated that script into the GUI of an app I distribute here, with the script source available.
[APP][TOOL] TeMeFI comprehensive system Administration
TeMeFI This app provides/returns a bucket load of information regarding your device and the currently running ROM, and much, much more. And hence the name "TeMeFI"; as its Too Much F????? Information. The F stands for whatever your comfortable...
forum.xda-developers.com
You can find the feature within the menu, under Logcat>Logcats>Generate SELinux Allows It is also pretty trivial to convert these to Magisk compatible allow statements.
Click to expand...
Click to collapse
Thank you!
Will definitely take a look at this some time later... I was searching whole day yest that I feel burned out rn to continue zzz