[Guide][Video Tutorial] How to build Custom ROMs and Kernels![10,P,O,N,M,L]

Search This thread

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
It would be great if you added a guide for replacing the prebuilt Linux toolchain in lineage based roms with another one such as Linaro

Great question! Have you watched the "toolchains" video under section 1.4 Information? I'm using SlimRoms in that video, but it will be located in the same place on CM/LineageOS/etc. The big key is editing your buildConfig.mk/buildCommonConfig.mk file to point to the new cross compiler, which is the toolchain. Here is the example code from the file I used in the toolchain video:

Code:
# Kernel
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom user_debug=31 zcache msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=msm_sdcc.1
BOARD_KERNEL_BASE := 0x80200000
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x02000000
BOARD_KERNEL_PAGESIZE := 2048
TARGET_KERNEL_CONFIG := cyanogen_jf_defconfig
TARGET_KERNEL_SOURCE := kernel/samsung/jf
# TARGET_KERNEL_CONFIG := aklu_jf_defconfig
# TARGET_KERNEL_SOURCE := kernel/samsung/jf-aklu


# Use Linaro toolchain instead # TARGET_KERNEL_CROSS_COMPILE_PREFIX := arm-linux-androideabi-
# linaro 
TARGET_KERNEL_CUSTOM_TOOLCHAIN := linaro-4.7-12.10/bin/arm-linux-gnueabihf-

Notice that the # pound sign is used to comment out the old line, and then the TARGET_KERNEL_CUSTOM_TOOLCHAIN := linaro-4.7-12.10/bin/arm-linux-gnueabihf- points the compiler to the new toolchain that I downloaded and put in the folder.

Hope that helps!
 

taife32

Member
May 20, 2018
32
7
I've just seen this now on XDA Labs, so haven't had time to check out the videos, but WOW, ?. What you have done is really appreciated buy those of us who will be using your material to learn to enjoy our devices more.

You are empowering us, thank you very much.
 

zelendel

Senior Member
Aug 11, 2008
23,360
20,607
OnePlus 6T
OnePlus 9
I've just seen this now on XDA Labs, so haven't had time to check out the videos, but WOW, ?. What you have done is really appreciated buy those of us who will be using your material to learn to enjoy our devices more.

You are empowering us, thank you very much.
Praise it after you use it. Doing it before is just brown nosing and pointless.
 
  • Like
Reactions: AlaskaLinuxUser
Sep 13, 2010
19
11
Great question! Have you watched the "toolchains" video under section 1.4 Information? I'm using SlimRoms in that video, but it will be located in the same place on CM/LineageOS/etc. The big key is editing your buildConfig.mk/buildCommonConfig.mk file to point to the new cross compiler, which is the toolchain. Here is the example code from the file I used in the toolchain video:

Code:
# Kernel
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom user_debug=31 zcache msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=msm_sdcc.1
BOARD_KERNEL_BASE := 0x80200000
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x02000000
BOARD_KERNEL_PAGESIZE := 2048
TARGET_KERNEL_CONFIG := cyanogen_jf_defconfig
TARGET_KERNEL_SOURCE := kernel/samsung/jf
# TARGET_KERNEL_CONFIG := aklu_jf_defconfig
# TARGET_KERNEL_SOURCE := kernel/samsung/jf-aklu


# Use Linaro toolchain instead # TARGET_KERNEL_CROSS_COMPILE_PREFIX := arm-linux-androideabi-
# linaro 
TARGET_KERNEL_CUSTOM_TOOLCHAIN := linaro-4.7-12.10/bin/arm-linux-gnueabihf-

Notice that the # pound sign is used to comment out the old line, and then the TARGET_KERNEL_CUSTOM_TOOLCHAIN := linaro-4.7-12.10/bin/arm-linux-gnueabihf- points the compiler to the new toolchain that I downloaded and put in the folder.

Hope that helps!
Thanks! I'll check it out ?
 
  • Like
Reactions: AlaskaLinuxUser

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
Hey everybody!

Thanks for the positive feedback, I didn't know if anyone would find this useful. I do hope that these videos will help you get started with compiling your own custom roms!
Just an FYI - I have started uploading the videos to Youtube as well. I personally recommend you download them from GitLab, as you will not have to contend with advertisements, etc., but if Youtube is your preferred method, they will all be uploaded over the next couple of days. You can check the OP (post #1) for the link!
 
D

Deleted member 7671171

Guest
Hi, great that your doing this to help people including myself out!

Have you recorded these already, or are you still going? Because the 480p resolution makes it really hard to see what's going on in the video, not to mind the fact that it's letterboxed on all 4 sides so it doesn't even fill the whole screen.

It's pretty unpleasant to watch in this state, but I understand you obviously can't change it now without rerecording if you've already done the whole series. Just would be something to keep in mind for any future videos you might make for this series. (If you are going to)

But overall I really like the content. A video suggestion wouldbe could you focus on adding Android source folders to github (like for example packages/apps/Settings ) and creating a repo manifest so someone could use this to make their own ROM, and then allow others to build it like LineageOS has? And maybe how to merge in security patches and even new versions of Android, but that might be too extensive of a topic.

Thanks, Nate :)
 
  • Like
Reactions: AlaskaLinuxUser

hiimpig1

Senior Member
Oct 13, 2015
585
295
Hanoi
Hi, thank you for creating a very detail guide like this.
I was able to build LineageOS Nougat ROM based on another device tree with the same SoC when I try to boot after installing ROM it keeps rebooting without entering to Android boot progress. Can you help me?
 
  • Like
Reactions: AlaskaLinuxUser

#Henkate

Senior Member
Feb 1, 2012
3,484
3,124
28
フェアリーテイル
@AlaskaLinuxUser: It's really nice to see that you're sharing your knowledge with others here too. Thank you for that! I'm sure that a lot of people will benefit from your tutorials. I've rated the thread 5 stars and subscribed to it. Probably I'll add it to my signature too if I'm not at that text limit. By the way, hopefully you haven't forgotten me xD. Well, I assume you didn't since you've mentioned the J5 at your bio hehe. You've been so nice and helpful to me back then!

Some advanced tutorials could be about enforcing selinux, finding the kernel CAF tag which is closest to stock one, merging the stock kernel source into the CAF one and so on. I've done those before and that's why I've mentioned them. It's something which everyone will have to do or at least should do it. While for enforcing selinux there's some documentation here and there, there's no documentation about how to find the closest kernel CAF tag to stock or how to merge the stock one into the CAF one. Someone please correct me if I'm wrong.

There's much more "advanced stuff" to talk about, stuff about which I lack knowledge. For example, now I need to figure out which is the closest CAF tag for camera HAL, so I can test it on LOS 14 and once it would be working, I can test it on LOS 15 (where I'm stuck with the stock camera error(s) ). Again, there's no documentation about how to find the closest CAF tag for camera HAL, but I've got the answer on reddit (/r/LineageOS) and further tips / help on Lineage's Slack.

I remember this thread where everyone contributed and shared their knowledge. Would be really nice if this thread will turn like that too, where everyone share their knowledge. Unfortunately, I can't record videos because I have a slow PC and my English sux when I'm speaking. I'd rather contribute by writing. Perhaps you could make videos if someone contributes with a written tutorial?

As a side note, I think I could say that Android ROM development means to do a lot of research on your own to find how to do something or how to fix something. Understanding how things works in Android and kernel is another thing which should be learnt / known (which I lack myself as of now) and knowing C/C++ is a big advantage (I lack it too) so you can understand what the code does. Sometimes it can get really frustrating, but if you stick to it and don't give up, you'll eventually fix the bug you're working on or figure out what you've needed to. When that moment happens, you'll feel great. Obviously, i've experienced both feelings before, like everyone else.


And maybe how to merge in security patches.

Check this post on @AlaskaLinuxUser's blog: How to manually update your custom rom source code with security updates. Probably he'll make a video about it too.
 
Last edited:

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
Hi, great that your doing this to help people including myself out!

Have you recorded these already, or are you still going? Because the 480p resolution makes it really hard to see what's going on in the video, not to mind the fact that it's letterboxed on all 4 sides so it doesn't even fill the whole screen.

It's pretty unpleasant to watch in this state, but I understand you obviously can't change it now without rerecording if you've already done the whole series. Just would be something to keep in mind for any future videos you might make for this series. (If you are going to)

But overall I really like the content. A video suggestion wouldbe could you focus on adding Android source folders to github (like for example packages/apps/Settings ) and creating a repo manifest so someone could use this to make their own ROM, and then allow others to build it like LineageOS has? And maybe how to merge in security patches and even new versions of Android, but that might be too extensive of a topic.

Thanks, Nate :)

Nate,
Thanks for the feedback. I have updated post #3 (Notes) with a note about the video quality being a bit poor. I apologize that it isn't a little better, but with my slow internet, keeping the video quality down did help me a lot. Also, several of the recordings were done over Xvnc, which causes the lag and general poorer quality. I actually recorded these videos 5-8 months ago. I then shelved the project, and recently decided to go ahead and post it anyways.

There is lots of room for more videos, but I'm not sure how many I will make. For every 30 minutes of video, there is about 2+ hours of prep and work that goes into them, probably because of my poor video skill level. :D There are actually a few more videos that I didn't upload to the series, for one reason or another. Hopefully what is available is able to meet the need of teaching new developers how to get started.

If possible make a tutorial on building TWRP for devices.
Thank you.

That was one thing I did hope to add to the video series, was building TWRP or other custom recoveries. No promises, but I am still looking at doing a video or two on that.

@AlaskaLinuxUser: ...By the way, hopefully you haven't forgotten me xD....

Can't forget! Working with you was great! And thanks for pointing a few things out. I'm not sure, that might entail a more advanced video series, maybe a collaborative effort. My CAF skills are a bit weak. :silly:



Anyone is welcome to make some more videos, though! And I'll look into some of these really good suggestions! Thanks everyone for the great feedback!
 

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
Hey everyone,

Just wanted to let you know that all 8 hours of the video series are up on the Youtube playlist (link in OP). Please keep in mind that the Youtube is lower quality than the videos in the download links in the OP. I just viewed several of the videos, and it is much harder to read what I am typing in the Youtube video, whereas, while the quality is a bit poor, I can easily read my typing in the videos that you can download.

Thanks for all the great feedback!
 

SoapDev2018

Member
Apr 13, 2018
6
3
Kolkata
@AlaskaLinuxUser Excellent videos and collection! If I can cook ROMs someday, all credits shall go to you and your hard work which you shared with us in form of videos. I know you work on free time. Still could I ask some video tutorial rather from your side about building TWRP recovery? That would be a lot more help. Greets and kudos!! :) :)
 
  • Like
Reactions: AlaskaLinuxUser

Top Liked Posts

  • There are no posts matching your filters.
  • 323
    Hey everyone! There is also a telegram channel where you can drop in for some help: https://t.me/joinchat/HR_8JgyDBdw_DvmndPl0kg

    I really hope that you have enjoyed the series, and that it was helpful to you in your Android career!



    13d59eb89fec8697fd05796bb36a6d39

    Praise God! Finally a video tutorial of how to build Android and modify kernels!​
    I have created a video tutorial and guide for how to compile Android, TWRP, alternative recoveries, and MORE! From Lollipop through Marshmallow, Nougat, Oreo, and now Pie! The video series covers several different phones, from Motorola's to LG's, the emulator, kernel and rom editing, app source code editing, smartwatches and much more! Not only do we cover how to compile from source code, you get to see it in action, as well as learning how to upgrade a device from one version to another, building device trees from scratch, and using GitHub and GitLab!

    Who is this video series for?
    Well, this video tutorial is a step by step guide built primarily for the beginner to intermediate builder. This is written for those who already know how to flash TWRP, CWM, or the like, and who have installed a custom rom before. This is designed to help those who are ready to move up from flashing and installing other peoples custom roms to actually start making their own custom roms. I recommend that a beginner watch the entire playlists in order (the videos are marked).

    That said, I believe that an intermediate developer may find a useful trick here and there, and they should just skip ahead to videos of interest. Perhaps kernel development, or something along those lines.

    An advanced rom or kernel developer will probably far exceed my feeble abilities, and will not likely find much useful information here. Perhaps if you are an advanced developer, you would consider continuing the tutorial or making an advanced video series! (See further posts for recommendations on contributing videos.)

    Why did you put this together?
    Well, after building roms for several different devices, I started receiving requests from users who wanted to start building their own roms, but didn't know where to start. I didn't have enough time to answer everyone's questions, so I wrote a few guides and pointed others to guides that were already available, but there are some things that you just need to see to understand. Hence, the video tutorial. I just hope that someone finds it useful.

    This course was written in order! While Lollipop and Marshmallow are old by todays standards, there is still good learning value in building them, and there are topics covered there that really make them worth watching.

    What's in the videos?
    During the series, we will be building for the emulator, as well as over 5 different phones of various brands, and over 5 different roms. I hope that this will give the viewer a good idea of how to build for your own specific phone as you see the differences and similarities across the phones and custom roms.
    Code:
    + Ubuntu installation
    + Java installations
    + Using Git, GitHub, GitKraken, and the command line
    + Fastboot and ADB
    + Heimdall/Odin
    + QFIL, QPST, SALT, and other tools
    + AOSP, OmniRom, LineageOS, SlimRoms, PACrom, AOKP, AOSCP
    + Lollipop, Marshmallow, Nougat, Oreo, Pie
    + TWRP with OMNI or LineageOS
    + TWRP alternatives like Orange Fox and Red Wolf
    + Errors
    + Overclocking CPU/GPU
    + Adding Governors and I/O Schedulers
    + Sound modifications
    + Changing app colors, text, and icons
    + Adding prebuilt apps
    + Adding source code
    + Converting device from one rom to another
    + Upgrading from one version to another
    + Building device trees from scratch
    + Smart watches
    + Making apps
    + AND MORE!

    **** This is an UNOFFICIAL TUTORIAL. Use at your own risk! ****
    Now including more than 37 total hours in over 290 videos!

    New HD videos are coming out just about every week day on YouTube, and posted to my GitLab as well! There are playlists for everything, so be sure to check them out!

    Downloads!
    My GitLab: https://gitlab.com/alaskalinuxuser

    Youtube links:
    My YouTube Channel: http://www.youtube.com/c/AlaskaLinuxUserAKLU

    About the author:

    I'm not a professional Android builder, nor am I considered an expert. However, I have built a lot of custom roms over the years for various Android phones. I'm really just a simple guy whose hobbies include the Bible, cell phones, Android, Linux, and electronics.
    Below are a few of my previous and current Android projects.
    Code:
    Samsung Galaxy S4:
     -AOKP 7.1.2
     -SlimRoms 7.1.1
     -Resurection Remix 7.1
     -AOKP 6.0.1
     -PacRom 6.0.1
     -Resurection Remix 6.0.1
     -SlimRoms 5.1.1
     -AKLU kernels 
      for Lollipop, Marshmallow, and Nougat
    
    Samsung Galaxy S5:
     -AOKP 7.1.2
     -AKLU kernel for Nougat
    
    Samsung Galaxy Note Edge:
     -AOKP 7.1.2
     -SlimRoms 7.1.1
     -AOKP 6.0.1
     -PacRom 6.0.1
     -SlimRoms 6.0.1
     -DataZip for 6.0.1 bootloaders
     -AKLU kernel 
      for Marshmallow and Nougat
    
    LG G4:
     -AOKP 7.1.2
     -SlimRoms 7.1.1
     -AKLU kernel for Nougat
     -Assisted Suicide Squirrels with the AOSCP Oreo bringup
    
    Open Source Apps: (All listed below are under the Apache 2.0 license)
     -Critical Velocity - A side scrolling flappy bird space game.
     -Kppd Control - An app to control the kppd daemon and kernels that enable it.
     -S4 GPU Voltage Control - An app to adjust the voltage of the S4 GPU on the fly.
     -Hourglass - A simple timer application.
     -Just Notes - A simple note taking app.
     -Just Craigslist - A simple Craigslist app.
     -Ship Captain and Crew - A dice game.
    I have also assisted with open source projects by submitting code to SatStat, Easer, SlimRoms 6.0.1 for the Samsung Galaxy J5, and others. I once even turned a Samsung Captivate Glide into a Debian Computer, as well as making numerous how-to guides for compiling ROMs and app creation on both XDA and my website.
    Some of my non-Android projects include building a Bluetooth Autostart, creating several small C++ games with SFML, and working with Linux.


    My Wordpress: https://thealaskalinuxuser.wordpress.com
    My Website: https://thealaskalinuxuser.com
    My device and kernel trees (older - GitHub) : https://github.com/alaskalinuxuser/
    My device and kernel trees (newer - GitLab) : https://gitlab.com/alaskalinuxuser/

    Created 2018-07-09
    Last Updated 2019-03-18
    64
    Open Source License

    Hey everyone, well, the video says it best, so here it is:
    https://www.youtube.com/watch?v=fKSiVL7nIqM

    Essentially, due to changes in my schedule and work, I'll be hanging up the gloves on the video tutorial series.

    Feel free to watch through any of these videos though, as there is still a lot of material. This thread will also stay open for people to ask questions and discuss the videos, however, my involvement in answering those questions is going to come to an end.

    I really hope that you have enjoyed the series, and that it was helpful to you in your Android career!

    cc_icon_black_x2.png
    attribution_icon_black_x2.png

    This project is licensed under the Creative Commons Attribution 4.0.
    https://creativecommons.org/licenses/by/4.0/

    I'm big into sharing! That means that this video tutorial is open source! Here's the official license if you need it:

    Code:
    Attribution 4.0 International
    
    =======================================================================
    
    Creative Commons Corporation ("Creative Commons") is not a law firm and
    does not provide legal services or legal advice. Distribution of
    Creative Commons public licenses does not create a lawyer-client or
    other relationship. Creative Commons makes its licenses and related
    information available on an "as-is" basis. Creative Commons gives no
    warranties regarding its licenses, any material licensed under their
    terms and conditions, or any related information. Creative Commons
    disclaims all liability for damages resulting from their use to the
    fullest extent possible.
    
    Using Creative Commons Public Licenses
    
    Creative Commons public licenses provide a standard set of terms and
    conditions that creators and other rights holders may use to share
    original works of authorship and other material subject to copyright
    and certain other rights specified in the public license below. The
    following considerations are for informational purposes only, are not
    exhaustive, and do not form part of our licenses.
    
         Considerations for licensors: Our public licenses are
         intended for use by those authorized to give the public
         permission to use material in ways otherwise restricted by
         copyright and certain other rights. Our licenses are
         irrevocable. Licensors should read and understand the terms
         and conditions of the license they choose before applying it.
         Licensors should also secure all rights necessary before
         applying our licenses so that the public can reuse the
         material as expected. Licensors should clearly mark any
         material not subject to the license. This includes other CC-
         licensed material, or material used under an exception or
         limitation to copyright. More considerations for licensors:
    	wiki.creativecommons.org/Considerations_for_licensors
    
         Considerations for the public: By using one of our public
         licenses, a licensor grants the public permission to use the
         licensed material under specified terms and conditions. If
         the licensor's permission is not necessary for any reason--for
         example, because of any applicable exception or limitation to
         copyright--then that use is not regulated by the license. Our
         licenses grant only permissions under copyright and certain
         other rights that a licensor has authority to grant. Use of
         the licensed material may still be restricted for other
         reasons, including because others have copyright or other
         rights in the material. A licensor may make special requests,
         such as asking that all changes be marked or described.
         Although not required by our licenses, you are encouraged to
         respect those requests where reasonable. More_considerations
         for the public:
    	wiki.creativecommons.org/Considerations_for_licensees
    
    =======================================================================
    
    Creative Commons Attribution 4.0 International Public License
    
    By exercising the Licensed Rights (defined below), You accept and agree
    to be bound by the terms and conditions of this Creative Commons
    Attribution 4.0 International Public License ("Public License"). To the
    extent this Public License may be interpreted as a contract, You are
    granted the Licensed Rights in consideration of Your acceptance of
    these terms and conditions, and the Licensor grants You such rights in
    consideration of benefits the Licensor receives from making the
    Licensed Material available under these terms and conditions.
    
    
    Section 1 -- Definitions.
    
      a. Adapted Material means material subject to Copyright and Similar
         Rights that is derived from or based upon the Licensed Material
         and in which the Licensed Material is translated, altered,
         arranged, transformed, or otherwise modified in a manner requiring
         permission under the Copyright and Similar Rights held by the
         Licensor. For purposes of this Public License, where the Licensed
         Material is a musical work, performance, or sound recording,
         Adapted Material is always produced where the Licensed Material is
         synched in timed relation with a moving image.
    
      b. Adapter's License means the license You apply to Your Copyright
         and Similar Rights in Your contributions to Adapted Material in
         accordance with the terms and conditions of this Public License.
    
      c. Copyright and Similar Rights means copyright and/or similar rights
         closely related to copyright including, without limitation,
         performance, broadcast, sound recording, and Sui Generis Database
         Rights, without regard to how the rights are labeled or
         categorized. For purposes of this Public License, the rights
         specified in Section 2(b)(1)-(2) are not Copyright and Similar
         Rights.
    
      d. Effective Technological Measures means those measures that, in the
         absence of proper authority, may not be circumvented under laws
         fulfilling obligations under Article 11 of the WIPO Copyright
         Treaty adopted on December 20, 1996, and/or similar international
         agreements.
    
      e. Exceptions and Limitations means fair use, fair dealing, and/or
         any other exception or limitation to Copyright and Similar Rights
         that applies to Your use of the Licensed Material.
    
      f. Licensed Material means the artistic or literary work, database,
         or other material to which the Licensor applied this Public
         License.
    
      g. Licensed Rights means the rights granted to You subject to the
         terms and conditions of this Public License, which are limited to
         all Copyright and Similar Rights that apply to Your use of the
         Licensed Material and that the Licensor has authority to license.
    
      h. Licensor means the individual(s) or entity(ies) granting rights
         under this Public License.
    
      i. Share means to provide material to the public by any means or
         process that requires permission under the Licensed Rights, such
         as reproduction, public display, public performance, distribution,
         dissemination, communication, or importation, and to make material
         available to the public including in ways that members of the
         public may access the material from a place and at a time
         individually chosen by them.
    
      j. Sui Generis Database Rights means rights other than copyright
         resulting from Directive 96/9/EC of the European Parliament and of
         the Council of 11 March 1996 on the legal protection of databases,
         as amended and/or succeeded, as well as other essentially
         equivalent rights anywhere in the world.
    
      k. You means the individual or entity exercising the Licensed Rights
         under this Public License. Your has a corresponding meaning.
    
    
    Section 2 -- Scope.
    
      a. License grant.
    
           1. Subject to the terms and conditions of this Public License,
              the Licensor hereby grants You a worldwide, royalty-free,
              non-sublicensable, non-exclusive, irrevocable license to
              exercise the Licensed Rights in the Licensed Material to:
    
                a. reproduce and Share the Licensed Material, in whole or
                   in part; and
    
                b. produce, reproduce, and Share Adapted Material.
    
           2. Exceptions and Limitations. For the avoidance of doubt, where
              Exceptions and Limitations apply to Your use, this Public
              License does not apply, and You do not need to comply with
              its terms and conditions.
    
           3. Term. The term of this Public License is specified in Section
              6(a).
    
           4. Media and formats; technical modifications allowed. The
              Licensor authorizes You to exercise the Licensed Rights in
              all media and formats whether now known or hereafter created,
              and to make technical modifications necessary to do so. The
              Licensor waives and/or agrees not to assert any right or
              authority to forbid You from making technical modifications
              necessary to exercise the Licensed Rights, including
              technical modifications necessary to circumvent Effective
              Technological Measures. For purposes of this Public License,
              simply making modifications authorized by this Section 2(a)
              (4) never produces Adapted Material.
    
           5. Downstream recipients.
    
                a. Offer from the Licensor -- Licensed Material. Every
                   recipient of the Licensed Material automatically
                   receives an offer from the Licensor to exercise the
                   Licensed Rights under the terms and conditions of this
                   Public License.
    
                b. No downstream restrictions. You may not offer or impose
                   any additional or different terms or conditions on, or
                   apply any Effective Technological Measures to, the
                   Licensed Material if doing so restricts exercise of the
                   Licensed Rights by any recipient of the Licensed
                   Material.
    
           6. No endorsement. Nothing in this Public License constitutes or
              may be construed as permission to assert or imply that You
              are, or that Your use of the Licensed Material is, connected
              with, or sponsored, endorsed, or granted official status by,
              the Licensor or others designated to receive attribution as
              provided in Section 3(a)(1)(A)(i).
    
      b. Other rights.
    
           1. Moral rights, such as the right of integrity, are not
              licensed under this Public License, nor are publicity,
              privacy, and/or other similar personality rights; however, to
              the extent possible, the Licensor waives and/or agrees not to
              assert any such rights held by the Licensor to the limited
              extent necessary to allow You to exercise the Licensed
              Rights, but not otherwise.
    
           2. Patent and trademark rights are not licensed under this
              Public License.
    
           3. To the extent possible, the Licensor waives any right to
              collect royalties from You for the exercise of the Licensed
              Rights, whether directly or through a collecting society
              under any voluntary or waivable statutory or compulsory
              licensing scheme. In all other cases the Licensor expressly
              reserves any right to collect such royalties.
    
    
    Section 3 -- License Conditions.
    
    Your exercise of the Licensed Rights is expressly made subject to the
    following conditions.
    
      a. Attribution.
    
           1. If You Share the Licensed Material (including in modified
              form), You must:
    
                a. retain the following if it is supplied by the Licensor
                   with the Licensed Material:
    
                     i. identification of the creator(s) of the Licensed
                        Material and any others designated to receive
                        attribution, in any reasonable manner requested by
                        the Licensor (including by pseudonym if
                        designated);
    
                    ii. a copyright notice;
    
                   iii. a notice that refers to this Public License;
    
                    iv. a notice that refers to the disclaimer of
                        warranties;
    
                     v. a URI or hyperlink to the Licensed Material to the
                        extent reasonably practicable;
    
                b. indicate if You modified the Licensed Material and
                   retain an indication of any previous modifications; and
    
                c. indicate the Licensed Material is licensed under this
                   Public License, and include the text of, or the URI or
                   hyperlink to, this Public License.
    
           2. You may satisfy the conditions in Section 3(a)(1) in any
              reasonable manner based on the medium, means, and context in
              which You Share the Licensed Material. For example, it may be
              reasonable to satisfy the conditions by providing a URI or
              hyperlink to a resource that includes the required
              information.
    
           3. If requested by the Licensor, You must remove any of the
              information required by Section 3(a)(1)(A) to the extent
              reasonably practicable.
    
           4. If You Share Adapted Material You produce, the Adapter's
              License You apply must not prevent recipients of the Adapted
              Material from complying with this Public License.
    
    
    Section 4 -- Sui Generis Database Rights.
    
    Where the Licensed Rights include Sui Generis Database Rights that
    apply to Your use of the Licensed Material:
    
      a. for the avoidance of doubt, Section 2(a)(1) grants You the right
         to extract, reuse, reproduce, and Share all or a substantial
         portion of the contents of the database;
    
      b. if You include all or a substantial portion of the database
         contents in a database in which You have Sui Generis Database
         Rights, then the database in which You have Sui Generis Database
         Rights (but not its individual contents) is Adapted Material; and
    
      c. You must comply with the conditions in Section 3(a) if You Share
         all or a substantial portion of the contents of the database.
    
    For the avoidance of doubt, this Section 4 supplements and does not
    replace Your obligations under this Public License where the Licensed
    Rights include other Copyright and Similar Rights.
    
    
    Section 5 -- Disclaimer of Warranties and Limitation of Liability.
    
      a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
         EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
         AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
         ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
         IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
         WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
         PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
         ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
         KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
         ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
    
      b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
         TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
         NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
         INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
         COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
         USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
         ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
         DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
         IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
    
      c. The disclaimer of warranties and limitation of liability provided
         above shall be interpreted in a manner that, to the extent
         possible, most closely approximates an absolute disclaimer and
         waiver of all liability.
    
    
    Section 6 -- Term and Termination.
    
      a. This Public License applies for the term of the Copyright and
         Similar Rights licensed here. However, if You fail to comply with
         this Public License, then Your rights under this Public License
         terminate automatically.
    
      b. Where Your right to use the Licensed Material has terminated under
         Section 6(a), it reinstates:
    
           1. automatically as of the date the violation is cured, provided
              it is cured within 30 days of Your discovery of the
              violation; or
    
           2. upon express reinstatement by the Licensor.
    
         For the avoidance of doubt, this Section 6(b) does not affect any
         right the Licensor may have to seek remedies for Your violations
         of this Public License.
    
      c. For the avoidance of doubt, the Licensor may also offer the
         Licensed Material under separate terms or conditions or stop
         distributing the Licensed Material at any time; however, doing so
         will not terminate this Public License.
    
      d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
         License.
    
    
    Section 7 -- Other Terms and Conditions.
    
      a. The Licensor shall not be bound by any additional or different
         terms or conditions communicated by You unless expressly agreed.
    
      b. Any arrangements, understandings, or agreements regarding the
         Licensed Material not stated herein are separate from and
         independent of the terms and conditions of this Public License.
    
    
    Section 8 -- Interpretation.
    
      a. For the avoidance of doubt, this Public License does not, and
         shall not be interpreted to, reduce, limit, restrict, or impose
         conditions on any use of the Licensed Material that could lawfully
         be made without permission under this Public License.
    
      b. To the extent possible, if any provision of this Public License is
         deemed unenforceable, it shall be automatically reformed to the
         minimum extent necessary to make it enforceable. If the provision
         cannot be reformed, it shall be severed from this Public License
         without affecting the enforceability of the remaining terms and
         conditions.
    
      c. No term or condition of this Public License will be waived and no
         failure to comply consented to unless expressly agreed to by the
         Licensor.
    
      d. Nothing in this Public License constitutes or may be interpreted
         as a limitation upon, or waiver of, any privileges and immunities
         that apply to the Licensor or You, including from the legal
         processes of any jurisdiction or authority.
    
    
    =======================================================================
    
    Creative Commons is not a party to its public
    licenses. Notwithstanding, Creative Commons may elect to apply one of
    its public licenses to material it publishes and in those instances
    will be considered the “Licensor.” The text of the Creative Commons
    public licenses is dedicated to the public domain under the CC0 Public
    Domain Dedication. Except for the limited purpose of indicating that
    material is shared under a Creative Commons public license or as
    otherwise permitted by the Creative Commons policies published at
    creativecommons.org/policies, Creative Commons does not authorize the
    use of the trademark "Creative Commons" or any other trademark or logo
    of Creative Commons without its prior written consent including,
    without limitation, in connection with any unauthorized modifications
    to any of its public licenses or any other arrangements,
    understandings, or agreements concerning use of licensed material. For
    the avoidance of doubt, this paragraph does not form part of the
    public licenses.
    
    Creative Commons may be contacted at creativecommons.org.
    58
    Hey everyone, well, the video says it best, so here it is:
    https://www.youtube.com/watch?v=fKSiVL7nIqM

    Essentially, due to changes in my schedule and work, I'll be hanging up the gloves on the video tutorial series.

    Feel free to watch through any of these videos though, as there is still a lot of material. This thread will also stay open for people to ask questions and discuss the videos, however, my involvement in answering those questions is going to come to an end.

    I really hope that you have enjoyed the series, and that it was helpful to you in your Android career!
    Notes:

    Recording Quality

    Just a quick note about the recording quality. There are two main video threads, the HD videos, and the non-HD videos.

    For the HD videos:
    New videos out in HD! I'm working on ways to improve the audio/video quality, but these videos are now released in 720p or 1080p quality depending which computer I use at the time. Be sure to check out these higher quality videos, and I am slowly remaking the older non-HD videos in HD as well (time and resources permitting).

    For the non-HD videos:
    I apologize that it is rather low. Several of the recordings were done over Xvnc, so there is sometimes lag in the video. Also, I have really slow speed and limited data internet (internet is expensive here), so I turned down the recording quality a bit so I could record the several hours of video. That said, the original recordings were done in ogg vorbis, then converted to mp4, and those were uploaded to Youtube. So there is a little bit of loss along the way, but even the ogg vobis recordings were not the highest quality. Do keep in mind that the Youtube quality is lower than the downloaded quality.

    Have suggestions or video tutorial requests?

    I can't promise that I will be able to add those videos (for instance, I don't own every phone on the planet, so I can't do a video for "how to build for xx phone", but if you have a generic suggestion that would benefit everyone, please post a comment, or consider uploading a tutorial video yourself.

    Considering contributing to the video series?

    The GitLab links are available, and the project is licensed under Creative Commons Attribution 4.0, so you are welcome to fork the repository and add more videos, as well as use pull requests! Be sure in your video to add your name (real or xda) so I can give you credit, and others know that you created the video (it will show on GitLab as well). I do ask that you restrain any use of profanity, as that will help create a more professional video that will not be offensive to listeners.

    Also, if you would like to make a translation, that would be great! Perhaps we could create another branch for each translation, or another repository or folder to hold them.

    If you have more questions about contributing videos, please send me a PM on XDA, or contact me through my website or on GitLab. Thanks!

    Have questions about building roms or kernels?

    While I would absolutely love to help everybody, I have 3 kids under 5 years old, a job, and all of those time taking life events that come with a family and work. You are welcome to post questions here, but I can't promise that I'll have time or be able to answer all of them, But I'll do my best. Perhaps other users will be able to assist you as well. If you have a specific question, and don't hear back from me, you may want to start a thread in the Q&A section of the forums. Remember to be as detailed as possible, and include logs! :D

    I really want to help you get started building. That said, I am not able to answer every question that possibly exists. I just am not that smart. :D
    However, this is a great place to ask questions! Another great place to ask questions is in the Q&A section for your device, if it is device specific.

    But I do have one request: Please don't PM me your questions. Please post your questions here instead, so I can answer one question for the group, rather than one on one questions. I want to help, but I don't have time to answer the volume of questions I am getting in my PM box. Please post you questions here in the thread. :D
    21
    Just a quick update: I'm working on some HD videos for Android Pie! Stay tuned!
    20
    Hey everyone!

    Just wanted to let you know that I was able to finish and upload another hour worth of videos! That's right, currently there is more than 9 hours of video tutorial available. As promised, this was added to the series:

    * Installing/using VirtualBox
    * Fixing a VB Ubuntu problem with screen resolution
    * Syncing minimal LineageOS or Omni for building TWRP
    * Converting an Omni TWRP device to LineageOS/CM and building it.
    * Custom TWRP mods with fonts/icons/splash screens/etc....

    Hope that you are enjoying the series, but mostly, I hope that it is informative and gets you building!
    I did try to up the video quality, but I had to tone it back down a bit, as the files became a bit large for uploading and handling. The quality is a little better than the first videos, but not exactly 1080p! :p

    Thanks again for all of the thanks button slaps and YouTube subscriptions. That lets me know that you guys really appreciate the videos.