Related
I'd like to start learning how to create .zip CWM compatible files so I can start creating some scripts I'd like to test out. Are there any resources on how to do this from scratch, I don't want to use a tool that does most of the work for you, as I wont learn anything about the workings of CWM. I have unzipped a couple of the zip files I have, and I get the relationship between the manifest and update scripts, however I'm unsure on the update binary script, and the signatures for the files in the manifest file. Is there a tool that generates the update binary and these hash codes( if they are hash codes ) in the manifest?
EDIT: Would also like to know where I can find a list of 'acceptable' commands that can be run from an update script in the zip, or are these just any exec bin in your android path?
I'm wrapping up my latest nightly build, but no mater what I do, my custom compiled boot.img files are either breaking other features, stalling, etc.. I really don't have the time to debug this particular issue at the moment, as I'm loaded up with the work that pays the bills at the moment too. If your able to decompile the current nightly, add a file, and successfully recompile the boot.img without error, get at me...
Reference: HOWTO: Unpack, Edit, and Re-Pack Boot Ima
MS_Guru said:
I'm wrapping up my latest nightly build, but no mater what I do, my custom compiled boot.img files are either breaking other features, stalling, etc.. I really don't have the time to debug this particular issue at the moment, as I'm loaded up with the work that pays the bills at the moment too. If your able to decompile the current nightly, add a file, and successfully recompile the boot.img without error, get at me...
Reference: HOWTO: Unpack, Edit, and Re-Pack Boot Ima
Click to expand...
Click to collapse
I am not so sure what it is your trying to accomplish. I just tok the liberty to download your latest rom and decompile your boot.img, add a file, and build it back, all with out an error. So what is it exactly youre trying to accomplish here?
Not sure if its that my environments are for the most part x64, or what. And frankly, just to busy to screw with it at the moment. But if I'm not mistaken, the only thing missing from the nightly kernel is the graphic "initlogo.rle" located in the ramdisk. Or in the case of our nightly, not located there. I've attached the graphic, in a Tar archive.
Hello, I am trying to build an AOSP 6.0 ROM. I downloaded the source, built the image, flashed, with corresponding vendor image (MMB29P) and it boots. However, the BT doesn't work at all. Is there something I'm missing, I've tried different orders of flashing, different vendor images, etc. I thought the vendor image was supposed to reduce complexity, but I'm sort of stuck. Do I need to somehow "extract" the files from the vendor image and add them to the build structure, or something else? I appeal to the makers of many ROMs!
I have exact same problem. I have tried building AOSP MMB29V and MTC19T and tried booting with vendor images from corresponding factory binaries. Bluetooth just doesn't turn on if I use system.img built from AOSP. It works fine with system.img from factory binaries. This is with Nexus 5X.
If anyone has a solution or a suggestion, please reply...
_gps_ said:
I have exact same problem. I have tried building AOSP MMB29V and MTC19T and tried booting with vendor images from corresponding factory binaries. Bluetooth just doesn't turn on if I use system.img built from AOSP. It works fine with system.img from factory binaries. This is with Nexus 5X.
If anyone has a solution or a suggestion, please reply...
Click to expand...
Click to collapse
You need to add the proprietary vendor files to /system as well, just like on older Nexuses. I know Google claimed all non-free files are in /vendor, but that is actually not true at all.
jisoo said:
You need to add the proprietary vendor files to /system as well, just like on older Nexuses. I know Google claimed all non-free files are in /vendor, but that is actually not true at all.
Click to expand...
Click to collapse
Thanks for reply Jisoo
Can you please guide me which files to copy to AOSP build tree? Did you mean I need to copy files to /vendor during build, or to /system?
If you meant /vendor, till Lollipop, vendor images *nexus binaries* were copied to <aosp-root>/vendor. But there are no nexus binaries for Nexus 5X, that could be copied to /vendor (at least not on https://developers.google.com/android/nexus/drivers). Should I extract from vendor.img?
Or if you meant /system, please guide which files. any pointers would be helpful. I dont think this is mentioned on any aosp official sites.
_gps_ said:
Thanks for reply Jisoo
Can you please guide me which files to copy to AOSP build tree? Did you mean I need to copy files to /vendor during build, or to /system?
If you meant /vendor, till Lollipop, vendor images *nexus binaries* were copied to <aosp-root>/vendor. But there are no nexus binaries for Nexus 5X, that could be copied to /vendor (at least not on https://developers.google.com/android/nexus/drivers). Should I extract from vendor.img?
Or if you meant /system, please guide which files. any pointers would be helpful. I dont think this is mentioned on any aosp official sites.
Click to expand...
Click to collapse
So there's 2 locations for non-free files in the new Nexus devices.
1. /vendor partition, which you would typically update with the vendor.img images direct from Google
2. non-free files in the /system partition, very similar to what you had in the older Nexus devices (and what are used in all non-Nexus CM-devices, for instance)
You can get these files from a few repos on github, like TheMuppets or PureNexus. If you prefer to extract the files themselves from a factory image, it's still useful to check what should be included by looking at the makefiles in these repos.
You'll also need to add the non-free files to your device tree somehow. The easy way (by pulling the whole non-free repo and including the makefiles from there) would mean including the following line in your device tree makefile (using bullhead as an example):
Code:
+$(call inherit-product-if-exists, vendor/lge/bullhead/device-vendor.mk)
Hello,
Does anyonw understand how we should extract the driver files from this link:
https://developers.google.com/android/nexus/drivers
I see 2 links for each devices:
1. "google's vendor"
2. list of devices (camera, gps...)
Do we need to run the *.sh file for both ? Does the *.sh file will download all the required driver files ?
What are actually these driver files ? Is it the HAL .so files ?
Thank you,
Ranchu
Hello everyone. I have a problem.
I'm building AOSP 8.0.0_r11 for Pixel XL and when I flash the result zip I'm getting a bootloop.
How am I building?
1) Select java 1.8
2) cd AOSP_8.0
3) source build/ensetup.sh
4) lunch aosp_marlin-userdebug
5) make -j9 updatepackage
6) wait a couple of hours
7) PROFIT
I know the ROM needs vendor blobs, I have them downloaded, extracted and extracted from .sh files.
How does the bootloop look?
Power On->Message about unlocked bootloader->0.5 second of white screen with Android on it-> reboot->repeat.
How do I flash the ROM?
I tried:
1) fastboot update -w aosp_marlin-img-eng.user.zip
and
2) extracted everything from zip and fastboot flash --slot _a PARTITION IMG_FILE
What am I doing wrong? Did anyone have success in building AOSP for this phone?
Did you "make clobber" after installing the drivers? If not, run it then try your make command again.
Alternatively, try "make otapackage" instead of "updatepackage" and then flash it in fastboot.
Also, why are you using the -j9 parameter?
noidea24 said:
Did you "make clobber" after installing the drivers? If not, run it then try your make command again.
Alternatively, try "make otapackage" instead of "updatepackage" and then flash it in fastboot.
Also, why are you using the -j9 parameter?
Click to expand...
Click to collapse
I did "make clobber". It just removes the build directory like "make clean". And this step is redundant if you never built the system before (with or without binaries).
Why make -j9? Because it shows better performance than just make. I know the build system should get the cores number and set the number of build threads, but for some reasons it doesn't do it very well.
P.S. I tried to "make" without -j9 and it is MUCH slower than with -j9.
Are you using the most updated fastboot and adb and sure your computer's variables aren't using an older one also? That was my issue when flashing Oreo.
buru898 said:
Are you using the most updated fastboot and adb and sure your computer's variables aren't using an older one also? That was my issue when flashing Oreo.
Click to expand...
Click to collapse
I'm using those that come with Android Studio 2.3.3 updated to latest versions of all components. That's not the problem with slots support - everything flashes without errors.
Slavon-93 said:
Hello everyone. I have a problem.
I'm building AOSP 8.0.0_r11 for Pixel XL and when I flash the result zip I'm getting a bootloop.
How am I building?
1) Select java 1.8
2) cd AOSP_8.0
3) source build/ensetup.sh
4) lunch aosp_marlin-userdebug
5) make -j9 updatepackage
6) wait a couple of hours
7) PROFIT
I know the ROM needs vendor blobs, I have them downloaded, extracted and extracted from .sh files.
How does the bootloop look?
Power On->Message about unlocked bootloader->0.5 second of white screen with Android on it-> reboot->repeat.
How do I flash the ROM?
I tried:
1) fastboot update -w aosp_marlin-img-eng.user.zip
and
2) extracted everything from zip and fastboot flash --slot _a PARTITION IMG_FILE
What am I doing wrong? Did anyone have success in building AOSP for this phone?
Click to expand...
Click to collapse
More than those blobs are necessary. Look at a invisibleks marlin lineageos device tree to get an idea of what files need to extracted and put in vendor.
Make clobber also cleans out configuration files, in case some of them had been created before the drivers/binaries have been extracted. Speaking of binaries again, did you install the Qualcomm ones?
My build environment is a i7 3770, with 8gb ram, and two blues in raid 0. To get my build compiled correctly, I had to disable ninja and I used -j8.
******
Tomorrow, I'll run a update and build Oreo on my machine from a clean directory and I'll get back with times before end after ccache is filled.
npjohnson said:
More than those blobs are necessary. Look at a invisibleks marlin lineageos device tree to get an idea of what files need to extracted and put in vendor.
Click to expand...
Click to collapse
Well, I don't know about Pixel, but when I had some experience in building AOSP for Nexus 5, Nexus 6, Nexus 9, binaries from Google and Qualcomm were a required minimum to get system booted. And if I wanted to get rid of some errors in logcat, I had to add some additional libraries, but the system booted and worked.
noidea24 said:
Speaking of binaries again, did you install the Qualcomm ones?
Click to expand...
Click to collapse
Yes, of course. I went to google binaries section, selected marlin 8.0.0 and downloaded two .sh files - one from Google, and the other from Qualcomm. Then I extracted them and got a vendor forder which has google_devices/marlin and qcom/marlin folders inside.
I'm curious to know how your process to flash the rom zip works? I've been sitting on a rom build for days because I can't get Twrp to work properly. Also, if your worried about your blobs/vendors the repos are starting to show up on GitHub.
cjkacz said:
I'm curious to know how your process to flash the rom zip works? I've been sitting on a rom build for days because I can't get Twrp to work properly. Also, if your worried about your blobs/vendors the repos are starting to show up on GitHub.
Click to expand...
Click to collapse
I'm sorry if I misundestood the question. I don't undestand why you should need TWRP because you just get the sources, get the blobs, compile them and get a zip file which can be flashed with fastboot command. So, no TWRP in this process is needed. I still don't know how all these ROM creators make zips for flashing with TWRP...
So I was able to get AOSP booting using the basic steps and blobs provided from the script. Even was able to activate the always on display
Zavon said:
So I was able to get AOSP booting using the basic steps and blobs provided from the script. Even was able to activate the always on display
Click to expand...
Click to collapse
Can you, please, describe in details these things:
1) What Linux did you use for building?
2) What revision of AOSP 8.0.0 did you download?
3) What version of blobs did you use?
4) Did you just download the 2 blobs .sh files to the root of the sources and execute them?
5) What AOSP configuration did you choose for building? (I mean aosp_marlin-userdebug or aosp_marlin_svelte-userdebug or aosp-sailfish-userdebug)
6) What command did you use for building?
7) Did you use ccache?
8) Did you flash Google Factory image of Oreo before flashing AOSP?
9) What command did you use to flash?
Slavon-93 said:
Can you, please, describe in details these things:
1) What Linux did you use for building?
2) What revision of AOSP 8.0.0 did you download?
3) What version of blobs did you use?
4) Did you just download the 2 blobs .sh files to the root of the sources and execute them?
5) What AOSP configuration did you choose for building? (I mean aosp_marlin-userdebug or aosp_marlin_svelte-userdebug or aosp-sailfish-userdebug)
6) What command did you use for building?
7) Did you use ccache?
8) Did you flash Google Factory image of Oreo before flashing AOSP?
9) What command did you use to flash?
Click to expand...
Click to collapse
I'm using a base ubuntu vm I built with 2 cores and 8gb ram. I used r11 if memory serves correct. I used the scripts from google and extracted from the factory image. The configuration I used is 21 (marlin-userdebug). I just used make -j8. Could careless about an update zip. And the factory image was on before I flashed using fastboot.
Side note, I also have ElementalX and SuperSU installed. suhide was giving me issues and I just have to figure out the Gapps (I'm a cop so time is hard to come by). I also enabled always on display but just remembered to enable the burnin protection
hi, i followed this guide
https://forum.xda-developers.com/showthread.php?t=1863547
Is that guide still working ?
followed step by step but the kernel and the device/lge dont get automatically downloaded when i repo sync. Only vendor.
Also when i do breakfast it doesn't work , breakfast still see the path of my other repo and asks to find the device in a file not included in that guide.
Lastly of course brunch won't work without those files.....
The device i try build for is h815.
Thank you in advanced.
EDIT:
Could also copy paste the whole thing from the other repo i have here and only use the paranoid packages. That way i will still build paranoid , but ofc thats not the way i want to do it.
kessaras said:
hi, i followed this guide
https://forum.xda-developers.com/showthread.php?t=1863547
Is that guide still working ?
followed step by step but the kernel and the device/lge dont get automatically downloaded when i repo sync. Only vendor.
Also when i do breakfast it doesn't work , breakfast still see the path of my other repo and asks to find the device in a file not included in that guide.
Lastly of course brunch won't work without those files.....
The device i try build for is h815.
Thank you in advanced.
EDIT:
Could also copy paste the whole thing from the other repo i have here and only use the paranoid packages. That way i will still build paranoid , but ofc thats not the way i want to do it.
Click to expand...
Click to collapse
One way around this problem is to have your device tree on github and add it to the dependencies file either in the device repo, or add a (device_code_name).mk file to the vendor/pa/products/. Look at an existing device folder there for an example.