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

Search This thread

widi aprianto

Senior Member
Feb 14, 2016
53
47
25
Banjarnegara
yes stick in all in yore device repo and always try to keep the board repo as generic as possible avoide other problem when adding other devices that use the same board as your device but do have the same Display, Camera,Sencore, or a Torch Hope this fixes your problem.
Sidenote the overlay xml can also be used to remove unused quick setting toggle there for simplfing the ui and giving you a more oem type look.

Device/board not exist
 
  • Like
Reactions: AlaskaLinuxUser

DJABHipHop

Senior Member
Dec 7, 2017
835
636
pressthemes.freesite.host
Device/board not exist
Sorry but I meant to say device or board repo, But the overlay goes on your device folder with the exact folder structure I posted earlier and torch goes in device folder board make or your devices board folder board make but that all depending on how your device tree is setup.

also have a look in /frameworks/base/packages/SystemUI/res/values/config.xml in your LineageOS folder or whatever folder you rom & device source are stored as you may want to see all the available quick setting toggle, you may also want edit my config.xml as my it will work on your device but may not have the all quick setting toggle in the order you want or necessary quick setting toggle visible for your device specification as my config.xml is setup of a device without no torch, nfc and some other thing. Hope this helps you out.
 
Last edited:
  • Like
Reactions: AlaskaLinuxUser

kush57

Senior Member
Sep 6, 2017
123
237
There's a kernel for oreo rom for onyx i want to use it for building pie rom. What specific kernel source changes do we need to make it compatible for pie rom
Thanks for the help in advance :)
 
  • Like
Reactions: AlaskaLinuxUser

lukaspieper

Senior Member
Nov 26, 2018
145
234
Lenovo Thinkpad Tablet
Google Pixel 3
Well done. A good step getting to the boot animation. :highfive:
Now you need logcat or tombstones to see the next problem. If you get into adb shell, while booting you can run this from your computer:

$ adb shell mount |tee mymounts.text

Which will make a text file on your computer that should have a list of mounted partitions. Is every important thing there?



Pstore is "persistent storage" a defined kernel option to save small amounts of data with the kernel.

Also I fully recommend that no developer flash gapps until they are done fixing everything they want to fix in a ROM. Once you flash gapps, SuperSU, magisk, closed, or anything to the ROM, you change the parameters and the environment. So you should always troubleshoot before flashing anything else. :good:

I'm glad you corrected me on pstore.

I managed to get a logcat (tombstones are not available). I searched for the keywords error, failed, failure. Exception is also a very good search term. Probably the most noticeable error can be found under "BOOT FAILURE" (android.security.IKeystoreService). According to my research it has something to do with Android's credential storage. Somewhere it was recommended to remove the keystore.msm8953.so, that didn't bring me any success.

The other matches about exceptions also seem important to me (otherwise there are some errors about camera and very often avc: denied occurs).

Here is the whole log, some things are repeated frequently, I have no knowledge how to get good logcats. :)

https://paste.ubuntu.com/p/VFFCCW96hx/

Thanks already.
 
  • Like
Reactions: AlaskaLinuxUser

DJABHipHop

Senior Member
Dec 7, 2017
835
636
pressthemes.freesite.host
I'm glad you corrected me on pstore.

I managed to get a logcat (tombstones are not available). I searched for the keywords error, failed, failure. Exception is also a very good search term. Probably the most noticeable error can be found under "BOOT FAILURE" (android.security.IKeystoreService). According to my research it has something to do with Android's credential storage. Somewhere it was recommended to remove the keystore.msm8953.so, that didn't bring me any success.

The other matches about exceptions also seem important to me (otherwise there are some errors about camera and very often avc: denied occurs).

Here is the whole log, some things are repeated frequently, I have no knowledge how to get good logcats. :)

https://paste.ubuntu.com/p/VFFCCW96hx/

Thanks already.
Try this for clean logcats.
Code:
All =  adb logcat >> Locat.txt
Debug =  adb logcat *:D >> Debug\ Logcat.txt
Info =  adb logcat *:I >> Info\ Logcat.txt
Warning =  adb logcat *:W  >>Warning\ Logcat.txt
Error =  adb logcat *:E  >> Error\ Logcat.txt
Fatal =  adb logcat *:F  >> Fatal\ Logcat.txt
Use everything after the equal sign.
Hope this helps you out.
 
Last edited:

Techguy777

Senior Member
May 24, 2018
1,515
427
Samsung Galaxy S10 Lite
Xiaomi Poco F3
That is why I made these videos and this thread. About 4 years ago I rated this journey and received very little help, until I meet bubor and steadfasterx. Even then it was an uphill battle.

So, I put this together to answer all of those questions.

So, have you watched this playlist:
https://www.youtube.com/playlist?list=PLRJ9-cX1yE1l6eu-vkgsj61U-Zv3fjzwZ&app=desktop

It is not HD video. And people complain and complain about the low quality, but it is very informative and answers all of your questions if you watch it in order from start to finish.

And a bonus for you: I use the shamu as my example for the entire lollipop portion. You could literally build alongside me in the video series. :laugh:

I'm starting to watch the series right now. I've downloaded the vendor file off the Muppets for cm14.1 branch because I'm trying to build twrp Omni 7.1 if I get that built Ill try 8 or 9. I really guess I need to learn how to use the Google binaries and vendor files I downloaded 7.1.1 files look inside it's a extract moto shamu.sh. How do I use that? Also the final piece of the puzzle is kernel source I've read you need it and you don't any input? I'm going to continue to watch the rest of your videos and search Google. The Muppets vendor file I changed the name and put them in my twrp folder.

Edit I figured out how to extract the Google package with vendor files. You open terminal and and type a command and run the shell. I also found yes you do need a kernel because the recovery and rom both have kernel that way the recovery can boot if you screw up your system. Now then the question is what kernel do you use? Do I use stock 7.1 cause I can't find source for that or do I use Franco or ElementalX or something for nougat?
 
Last edited:
  • Like
Reactions: AlaskaLinuxUser

mafianet

New member
Jan 7, 2010
3
3
SD Card Booting

@AlaskaLinuxUser

Thanks for your time.

Just to be sure, "Busybox" will mount all necessary partition on sdcard, change that I need to make on the "ramdisk" scripts after extracted the boot.img from my build.

3 questions if I may;

1. Isn't there a way to make those change before building my AOSP code, considering I will anyways build the code?
2. Correct me if I am wrong, but I will still need the boot.img on my physical HDD in the phone, to mount all partition on sdcard. Isn't there a way to boot directly from other drive than the one on the phone?
2.5 So, if I can't change the heart of phone booting sequence, do you think I can remove all other partition from (except from boot.img and recovery.img) then keep booting on the sdcard?
3. Or, is there a way to make a "if.... else" statement in the init script to check "IF there is a sdcard... mount the sdcard... ELSE mount the HDD normally"

Thanks again for your time, I appreciate.
 
  • Like
Reactions: AlaskaLinuxUser

widi aprianto

Senior Member
Feb 14, 2016
53
47
25
Banjarnegara
Sorry but I meant to say device or board repo, But the overlay goes on your device folder with the exact folder structure I posted earlier and torch goes in device folder board make or your devices board folder board make but that all depending on how your device tree is setup.

also have a look in /frameworks/base/packages/SystemUI/res/values/config.xml in your LineageOS folder or whatever folder you rom & device source are stored as you may want to see all the available quick setting toggle, you may also want edit my config.xml as my it will work on your device but may not have the all quick setting toggle in the order you want or necessary quick setting toggle visible for your device specification as my config.xml is setup of a device without no torch, nfc and some other thing. Hope this helps you out.

ok. now how to generate kernel config/defconfig?
 
  • Like
Reactions: AlaskaLinuxUser

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
Awesome that's going to be watched tomorrow if you used Shamu. No I haven't watched all the videos yet. It kills me cause I know that it's really like 5 minutes to compile a twrp but you have to Know every little thing to setup and get it running but once you do it's like man this is easy. Well I'm not there with building but I remember when I first started rooting I had a Dell venue tablet and they put fastboot flash unlock bin and I'm not kidding I rooted thing not knowing that the unlock bin was for my bootloader and I could have flashed the custom recovery and rooted no problem.

Thanks I'll check it out tomorrow are all the videos on YouTube or do you have more on your website or GitHub?

There are more videos on gitlab than on YouTube. All the gitlab ones end up on YouTube. Often they are a work in progress, but you can certainly check them out. :good:

Is there any guide on selinux denials and fixes..? I have compiled the ROM (lineage 15.1) on enforcing mode by default . My proximity sensor and button backlight works only when selinux is permissive. How to overcome this issue and make that two things to work on enforcing mode.
Any suggestions:)

I'll have to keep that on the back burners. Good suggestion. :cowboy:

I am succes built los 15 but doesnt have flash light toogle on notif panel, any solution?

Does the camera flash work? :fingers-crossed:
 
  • Like
Reactions: rajesh@xda

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
I am not sure I understand what you are suggesting.

The problem with building using the Omni 7.1 branch is that phones that were encrypted by an Android 8.0 installation or higher cannot be decrypted by TWRP. To work around this, I want to build TWRP using an 8.1 device tree. I am not sure that building with 8.1 would be of any value.

Perhaps you should consider the alternate recoveries, such as Redd wolf or orange fox. I have videos for that. They are based on 8.1. :good:

There's a kernel for oreo rom for onyx i want to use it for building pie rom. What specific kernel source changes do we need to make it compatible for pie rom
Thanks for the help in advance :)

When you find out, you let is know. :cool:

What I mean is, there isn't such a list. If there was, this would be much easier. Your best bet is to compare the kernel of a similar device that went from Oreo to pie, and see what they had to change.

Since every device has a different kernel version or patch level, and every device has different drivers, it is very difficult to know what pieces may need added or changed between android versions. All you can do is compare similar device to see what you need, or compile as is and see what crops up. :good:
 
  • Like
Reactions: kush57

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
I'm glad you corrected me on pstore.

I managed to get a logcat (tombstones are not available). I searched for the keywords error, failed, failure. Exception is also a very good search term. Probably the most noticeable error can be found under "BOOT FAILURE" (android.security.IKeystoreService). According to my research it has something to do with Android's credential storage. Somewhere it was recommended to remove the keystore.msm8953.so, that didn't bring me any success.

The other matches about exceptions also seem important to me (otherwise there are some errors about camera and very often avc: denied occurs).

Here is the whole log, some things are repeated frequently, I have no knowledge how to get good logcats. :)

https://paste.ubuntu.com/p/VFFCCW96hx/

Thanks already.

When I load the link to your paste bin, it is blank. Perhaps you could upload it again. ( see pic). :confused:


I'm starting to watch the series right now. I've downloaded the vendor file off the Muppets for cm14.1 branch because I'm trying to build twrp Omni 7.1 if I get that built Ill try 8 or 9. I really guess I need to learn how to use the Google binaries and vendor files I downloaded 7.1.1 files look inside it's a extract moto shamu.sh. How do I use that? Also the final piece of the puzzle is kernel source I've read you need it and you don't any input? I'm going to continue to watch the rest of your videos and search Google. The Muppets vendor file I changed the name and put them in my twrp folder.

Edit I figured out how to extract the Google package with vendor files. You open terminal and and type a command and run the shell. I also found yes you do need a kernel because the recovery and rom both have kernel that way the recovery can boot if you screw up your system. Now then the question is what kernel do you use? Do I use stock 7.1 cause I can't find source for that or do I use Franco or ElementalX or something for nougat?

If you want to build Oreo, you need to find a repo with an Oreo kernel, or you will need to upgrade the nougat one. If this is your first build, I recommend you build nougat first to get the hang of things. :good:

@AlaskaLinuxUser

Thanks for your time.

Just to be sure, "Busybox" will mount all necessary partition on sdcard, change that I need to make on the "ramdisk" scripts after extracted the boot.img from my build.

3 questions if I may;

1. Isn't there a way to make those change before building my AOSP code, considering I will anyways build the code?
2. Correct me if I am wrong, but I will still need the boot.img on my physical HDD in the phone, to mount all partition on sdcard. Isn't there a way to boot directly from other drive than the one on the phone?
2.5 So, if I can't change the heart of phone booting sequence, do you think I can remove all other partition from (except from boot.img and recovery.img) then keep booting on the sdcard?
3. Or, is there a way to make a "if.... else" statement in the init script to check "IF there is a sdcard... mount the sdcard... ELSE mount the HDD normally"

Thanks again for your time, I appreciate.


You can do anything you want to your phone. That's the beauty of android development. However it may not work anymore when it is done.....

Correct me if I am wrong, but I will still need the boot.img on my physical HDD in the phone, to mount all partition on sdcard. Isn't there a way to boot directly from other drive than the one on the phone?
2.5 So, if I can't change the heart of phone booting sequence, do you think I can remove all other partition from (except from boot.img and recovery.img) then keep booting on the sdcard?

The chip in the phone, the SoC, comes programmed from the board manufacturer to load about, then boot partitions. You can't change this. Well, you can, but if you knew how, you would not be asking for my help, you'd be teaching the class!

So you will always need the about and boot partitions. As for the others, well, that depends on how good you are and how brave you are. :laugh:
 
  • Like
Reactions: lukaspieper

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
Here is what I get when I try to load the log cat link.
 

Attachments

  • Screenshot_Chrome_20190107-200806.png
    Screenshot_Chrome_20190107-200806.png
    214.4 KB · Views: 78
  • Like
Reactions: lukaspieper

DJABHipHop

Senior Member
Dec 7, 2017
835
636
pressthemes.freesite.host
Quick question how would I add a folder that a user to add custom Ringtones without having to use twrp or root to flash new ringtones or does that function already exists in LineageOS. either way can that be moved over to the external sd card along with photo,movie,music,document,downloads & application data like setting, to save space to older or low storage capacity devices 16GB & under in the LineageOS Source or for that matter any Android base rom Nougat or newer.
I know there thing like expandable storage & probably some root method or exposed tweak for that but i'd rather not deal with that at all if possible and use the full capacity of the external sd card.
 
Last edited:
  • Like
Reactions: AlaskaLinuxUser

widi aprianto

Senior Member
Feb 14, 2016
53
47
25
Banjarnegara
There are more videos on gitlab than on YouTube. All the gitlab ones end up on YouTube. Often they are a work in progress, but you can certainly check them out. :good:



I'll have to keep that on the back burners. Good suggestion. :cowboy:



Does the camera flash work? :fingers-crossed:

Back camera work with flash, but when switched to camera with flash is error, cannot take picture
 
  • Like
Reactions: AlaskaLinuxUser

AlaskaLinuxUser

Senior Member
Oct 23, 2015
2,005
4,145
Fairbanks
alaskalinuxuser3.ddns.net
The Ubuntu page is very slow, have you tried leaving it open for a minute vor two?

Else I will upload a cleaner version when I am back at home. Thanks.

Got it. Well, it never loaded, but there is the "download as text" button, so I used that and got it that way.

So, here is your problem:

Code:
01-02 07:10:24.257  1175  1175 E TelephonyProvider: dbh.selectConflictingRow: Expected 1 but found 0 matching rows found for cv password=EUSKALTEL mnc=08 sub_id=-1 bearer_bitmask=0 mmsc= proxy= numeric=21408 name=Euskaltel Internet port= mcc=214 apn=internet.euskaltel.mobi type=default,supl user=CLIENTE
--------- beginning of crash
01-02 07:10:24.257   790   790 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main
01-02 07:10:24.257   790   790 E AndroidRuntime: java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.USER_STARTED flg=0x50000010 (has extras) } in com.android.server.ConnectivityService$3@f57d12c
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1132)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:751)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:95)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:154)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.server.SystemServer.run(SystemServer.java:383)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.server.SystemServer.main(SystemServer.java:237)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
01-02 07:10:24.257   790   790 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int android.security.IKeystoreService.exist(java.lang.String, int)' on a null object reference
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at android.security.KeyStore.contains(KeyStore.java:200)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at android.security.KeyStore.contains(KeyStore.java:208)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.server.net.LockdownVpnTracker.isEnabled(LockdownVpnTracker.java:90)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.server.ConnectivityService.onUserStart(ConnectivityService.java:4006)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.server.ConnectivityService.-wrap28(ConnectivityService.java)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at com.android.server.ConnectivityService$3.onReceive(ConnectivityService.java:4060)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1122)
01-02 07:10:24.257   790   790 E AndroidRuntime: 	... 8 more
01-02 07:10:24.259  1175  1175 E TelephonyProvider: dbh.selectConflictingRow: Expected 1 but found 0 matching rows found for cv password=EUSKALTEL sub_id=-1 bearer_bitmask=0 numeric=21408 mmsc=http://mms.euskaltel.mobi user=MMS mnc=08 mmsport=8080 proxy= mmsproxy=172.16.18.74 name=Euskaltel MMS port= mcc=214 apn=euskaltelmms.euskaltel.mobi type=mms

Notice the phrase: "beginning of crash".
Keep in mind that whatever went bad is right before it. So notice all of these errors:

Code:
01-02 07:10:24.259  1175  1175 E TelephonyProvider: dbh.selectConflictingRow: Expected 1 but found 0 matching rows found for cv password=EUSKALTEL sub_id=-1 bearer_bitmask=0 numeric=21408 mmsc=http://mms.euskaltel.mobi user=MMS mnc=08 mmsport=8080 proxy= mmsproxy=172.16.18.74 name=Euskaltel MMS port= mcc=214 apn=euskaltelmms.euskaltel.mobi type=mms

I've seen this before. These errors come from an inability for the telephony package to read the pre set APN settings. In every phone, they ship it with lots of pre set APN settings so the phone can guess your APN settings based on what cell tower it hooks up to and what sim card you have. So either your telephony package is messed up and can't read it properly, or the apn settings are somehow malformed. A typo in the APN settings files can cause this, although that's not always the problem. You can check the APN files by opening the lineageOS source folder you build from, and search for "apn". You should see several XML files pop up. You can then remove the offenders (the ones listed in your errors), by searching in those files for the ones listed in your log. Keep in mind they may be in multiple files. :good:

Quick question how would I add a folder that a user to add custom Ringtones without having to use twrp or root to flash new ringtones or does that function already exists in LineageOS. either way can that be moved over to the external sd card along with photo,movie,music,document,downloads & application data like setting, to save space to older or low storage capacity devices 16GB & under in the LineageOS Source or for that matter any Android base rom Nougat or newer.
I know there thing like expandable storage & probably some root method or exposed tweak for that but i'd rather not deal with that at all if possible and use the full capacity of the external sd card.

With some tinkering, anything is possible, but I don't know the answer for you off of the top of my head. I would suggest that you look in the "settings" app, and find out when it loads the list of ringtones, if you can specify it check multiple places. If so, then add your sdcard, etc... to that list. :good:

Back camera work with flash, but when switched to camera with flash is error, cannot take picture

And what do the logs say if you pull a logcat while doing these things? and dmesg? :good:


For the group:

I'm almost out of internet at present, so I'm using my phone a lot to answer questions. Please forgive the typos, and if I suddenly drop off, I'll be back when the internet get's renewed. :laugh:

Remember to check out my GitLab, there are lots of videos there that are works in progress, about 30+ videos ahead of Youtube. And remember to check the YouTube regularly, new videos are edited and uploaded and will come out pretty much daily during the week.

Logs. Logs. Logs...... It's not voodoo magic, it's a science. The answers are usually right there in the logs. :good:
 

lucki1000

Senior Member
Hello,
shortly before finish by building LineageOS16 for cedric(moto g5), I have a mistake:
Code:
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:43: error: package lineageos.platform does not exist
import lineageos.platform.R;
                         ^
lineage-sdk/sdk/src/java/lineageos/preference/RemotePreferenceManager.java:36: error: package lineageos.platform does not exist
import lineageos.platform.Manifest;
                         ^
lineage-sdk/sdk/src/java/lineageos/preference/RemotePreferenceUpdater.java:28: error: package lineageos.platform does not exist
import lineageos.platform.Manifest;
                         ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:77: error: package R does not exist
                R.styleable.lineage_SelfRemovingPreference);
                 ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:78: error: package R does not exist
        mSummaryMinLines = a.getInteger(R.styleable.lineage_SelfRemovingPreference_minSummaryLines, -1);
                                         ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:79: error: package R does not exist
        mReplacesKey = a.getString(R.styleable.lineage_SelfRemovingPreference_replacesKey);
                                    ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:138: error: package R does not exist
                R.styleable.lineage_SelfRemovingPreference);
                 ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:143: error: package R does not exist
            boolean rOwner = a.getBoolean(R.styleable.lineage_SelfRemovingPreference_requiresOwner, false);
                                           ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:149: error: package R does not exist
            String rPackage = a.getString(R.styleable.lineage_SelfRemovingPreference_requiresPackage);
                                           ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:162: error: package R does not exist
            String rAction = a.getString(R.styleable.lineage_SelfRemovingPreference_requiresAction);
                                          ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:175: error: package R does not exist
            String rFeature = a.getString(R.styleable.lineage_SelfRemovingPreference_requiresFeature);
                                           ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:191: error: package R does not exist
            String rProperty = a.getString(R.styleable.lineage_SelfRemovingPreference_requiresProperty);
                                            ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:211: error: package R does not exist
            TypedValue tv = a.peekValue(R.styleable.lineage_SelfRemovingPreference_requiresConfig);
                                         ^
lineage-sdk/sdk/src/java/lineageos/preference/ConstraintsHelper.java:220: error: package R does not exist
                            R.styleable.lineage_SelfRemovingPreference_requiresConfigMask, -1);
                             ^
lineage-sdk/sdk/src/java/lineageos/preference/RemotePreferenceManager.java:104: error: package Manifest does not exist
                                Manifest.permission.MANAGE_REMOTE_PREFERENCES, mHandler);
                                        ^
lineage-sdk/sdk/src/java/lineageos/preference/RemotePreferenceManager.java:135: error: package Manifest does not exist
                    Manifest.permission.MANAGE_REMOTE_PREFERENCES,
                            ^
lineage-sdk/sdk/src/java/lineageos/preference/RemotePreferenceUpdater.java:127: error: package Manifest does not exist
                UserHandle.CURRENT, Manifest.permission.MANAGE_REMOTE_PREFERENCES);
                                            ^
17 errors
[ 22% 297/1317] Building Kernel
 
  • Like
Reactions: AlaskaLinuxUser

widi aprianto

Senior Member
Feb 14, 2016
53
47
25
Banjarnegara
ask

Code:
build/make/core/base_rules.mk:412: warning: ignoring old commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/camera.device@1.0-impl.so'
build/make/core/Makefile:28: warning: overriding commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/camera.device@3.2-impl.so'
build/make/core/base_rules.mk:412: warning: ignoring old commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/camera.device@3.2-impl.so'
build/make/core/Makefile:28: warning: overriding commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/camera.device@3.3-impl.so'
build/make/core/base_rules.mk:412: warning: ignoring old commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/camera.device@3.3-impl.so'
build/make/core/Makefile:28: warning: overriding commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/hw/android.hardware.camera.provider@2.4-impl.so'
build/make/core/base_rules.mk:412: warning: ignoring old commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/hw/android.hardware.camera.provider@2.4-impl.so'
build/make/core/Makefile:28: warning: overriding commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/hw/consumerir.default.so'
build/make/core/base_rules.mk:412: warning: ignoring old commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/hw/consumerir.default.so'
build/make/core/Makefile:28: warning: overriding commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/hw/fingerprint.default.so'
build/make/core/base_rules.mk:412: warning: ignoring old commands for target `/home/wufix/android/system/out/target/product/vince/vendor/lib64/hw/fingerprint.default.so'
ninja: error: '/home/wufix/android/system/out/target/common/obj/JAVA_LIBRARIES/WfdCommon_intermediates/javalib.jar', needed by '/home/wufix/android/system/out/target/product/vince/dex_bootjars/system/framework/boot.prof', missing and no known rule to make it
09:06:17 ninja failed with: exit status 1

#### failed to build some targets (01:33 (mm:ss)) ####

get error like this when build lineage os 16, whats wrong?
 
  • 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.