[LineageOS 16.0][devs] Custom build FDE encryption help? - Moto X4 Questions & Answers

This is a question for those on the edge of ROM development (hoping to get in contact with sevenrock if they are still around there).
I have been trying for a while to work out a way to run LineageOS 16.0 with full disk encryption and adoptable storage rather than the funky FBE that this device ships with. I found this post by sevenrock with the patches to supposedly make that happen and compiled from scratch. I even build a rom using all of sevenrock's sources, since they appear to be more up to date. The build went fine and flashed it successfully, resized the filesystem as noted, but encryption fails. I set a PIN, tell it to encrypt, but the encryption screen never appears and the device reboots pretty quickly and then gets stuck in bootloop.
Oddly, I've found that if I encrypt with no PIN set, it will still boot, the device will say encrypted, and TWRP seems to indicate that it is actually encrypted somehow. But that's not very useful for me.
I've tried flashing different firmware, even tried going back to an old Pixel Experience rom with FDE enabled and it also failed to encrypt, but with some other errors. I tried manual vdc cryptfs enablecrypto and same results.
I'm not really sure what else to try. It seems like something must be setup up improperly somewhere but not sure where to look. I may try building 17.1 next, but I hear some reports of hardware problems and I don't want to give up LineageOS su. It seems like most people have moved on to it though.
sevenrock, if you are still around here, have you had success encrypting FDE with your sources lately?
Logcat items that may be relevant from the encryption attempt:
Code:
09-26 08:41:42.601 658 1867 D vold : fdeEnable(3, *, 0)
09-26 08:41:42.602 658 1867 D vold : !e4crypt_is_native, spawning fdeEnableInternal
09-26 08:41:42.608 658 4064 E Cryptfs : Bad magic for real block device /dev/block/bootdevice/by-name/userdata
09-26 08:41:42.614 658 4064 D Cryptfs : Just asked init to shut down class main
09-26 08:41:43.493 658 4064 I vold : List of Keymaster HALs found:
09-26 08:41:43.493 658 4064 I vold : Keymaster HAL #1: SoftwareWrappedKeymaster1Device from Google SecurityLevel: TRUSTED_ENVIRONMENT HAL: [email protected]::IKeymasterDevice/default
09-26 08:41:43.493 658 4064 I vold : Using SoftwareWrappedKeymaster1Device from Google for encryption. Security level: TRUSTED_ENVIRONMENT, HAL: [email protected]::IKeymasterDevice/default
09-26 08:41:43.500 658 4064 I vold : List of Keymaster HALs found:
09-26 08:41:43.500 658 4064 I vold : Keymaster HAL #1: SoftwareWrappedKeymaster1Device from Google SecurityLevel: TRUSTED_ENVIRONMENT HAL: [email protected]::IKeymasterDevice/default
09-26 08:41:43.500 658 4064 I vold : Using SoftwareWrappedKeymaster1Device from Google for encryption. Security level: TRUSTED_ENVIRONMENT, HAL: [email protected]::IKeymasterDevice/default
09-26 08:41:47.434 658 4064 I Cryptfs : Using scrypt with keymaster for cryptfs KDF
09-26 08:41:47.813 658 4064 I Cryptfs : Signing safely-padded object
09-26 08:41:47.817 658 4064 I vold : List of Keymaster HALs found:
09-26 08:41:47.817 658 4064 I vold : Keymaster HAL #1: SoftwareWrappedKeymaster1Device from Google SecurityLevel: TRUSTED_ENVIRONMENT HAL: [email protected]::IKeymasterDevice/default
09-26 08:41:47.818 658 4064 I vold : Using SoftwareWrappedKeymaster1Device from Google for encryption. Security level: TRUSTED_ENVIRONMENT, HAL: [email protected]::IKeymasterDevice/default
09-26 08:41:48.798 658 4064 I Cryptfs : Already have key
09-26 08:41:48.798 658 4064 I Cryptfs : Using scrypt with keymaster for cryptfs KDF
09-26 08:41:49.178 658 4064 I Cryptfs : Signing safely-padded object
09-26 08:41:49.181 658 4064 I vold : List of Keymaster HALs found:
09-26 08:41:49.182 658 4064 I vold : Keymaster HAL #1: SoftwareWrappedKeymaster1Device from Google SecurityLevel: TRUSTED_ENVIRONMENT HAL: [email protected]::IKeymasterDevice/default
09-26 08:41:49.182 658 4064 I vold : Using SoftwareWrappedKeymaster1Device from Google for encryption. Security level: TRUSTED_ENVIRONMENT, HAL: [email protected]::IKeymasterDevice/default
Full log attached.

Hi,
please post your local_manifest.xml.
Did you use any patches beyond the official sources and my repos?

sevenrock said:
please post your local_manifest.xml.
Did you use any patches beyond the official sources and my repos?
Click to expand...
Click to collapse
For 16.0:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="LineageOS/android_system_qcom" path="system/qcom" remote="github" revision="lineage-16.0" />
<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" revision="lineage-16.0" />
<project name="LineageOS/android_external_bson" path="external/bson" remote="github" revision="lineage-16.0" />
<project name="sevenrock/android_device_motorola_payton" path="device/motorola/payton" remote="github" revision="lineage-16.0" />
<project name="sevenrock/android_device_motorola_sdm660-common" path="device/motorola/sdm660-common" remote="github" revision="lineage-16.0" />
<project name="sevenrock/proprietary_vendor_motorola" path="vendor/motorola" remote="github" revision="lineage-16.0" />
<project name="sevenrock/android_kernel_motorola_msm8998" path="kernel/motorola/msm8998" remote="github" revision="lineage-16.0" />
</manifest>
For 17.1:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="sevenrock/android_device_motorola_payton" path="device/motorola/payton" remote="github" revision="lineage-17.1" />
<project name="sevenrock/android_device_motorola_sdm660-common" path="device/motorola/sdm660-common" remote="github" revision="lineage-17.1" />
<project name="sevenrock/proprietary_vendor_motorola" path="vendor/motorola" remote="github" revision="lineage-17.1" />
<project name="sevenrock/android_kernel_motorola_msm8998" path="kernel/motorola/msm8998" remote="github" revision="lineage-17.1" />
<project name="LineageOS/android_external_bson" path="external/bson" remote="github" revision="lineage-17.1" />
<project name="LineageOS/android_system_qcom" path="system/qcom" remote="github" revision="lineage-17.1" />
</manifest>
So far I only finished building 16.0. I built it using this docker image that patches it for microG. I don't think that would touch anything in this area, but I will build it (16.0) the standard way with no additions to see if that works.
Also, do you have a specific firmware version that you know works well? My phone came already upgraded past PPWS29.69-26-6 and unfortunately when I try to downgrade to versions lower than PPWS29.69-39-2-1 I lose modem and wifi function. Seems to have to do with persist but I don't really know why.
Thanks for your help!

htsmi said:
sevenrock, if you are still around here, have you had success encrypting FDE with your sources lately?
Click to expand...
Click to collapse
Hi,
yes, but with los-17.1. Your manifests look ok.
Maybe you need to manually resize your /data partition, for details see:
https://gitlab.com/LineageOS/issues/android/-/issues/1027
My personal twrp build has fixes for the partition size, maybe
that is the reason why encryption works for me out-of-the-box:
https://github.com/sevenrock/android_device_motorola_payton-twrp/commits/android-8.1

sevenrock said:
yes, but with los-17.1. Your manifests look ok.
Maybe you need to manually resize your /data partition, for details see:
https://gitlab.com/LineageOS/issues/android/-/issues/1027
My personal twrp build has fixes for the partition size, maybe
that is the reason why encryption works for me out-of-the-box:
https://github.com/sevenrock/android_device_motorola_payton-twrp/commits/android-8.1
Click to expand...
Click to collapse
I finished a build for 17.1 with microG patches today and unfortunately it had the same issue. Currently building one without microG. The phone seems to crash immediately after the funny robot screen shows up. Unfortunately logs don't really say anything useful. That 'bad magic' message seems to show up in people's successful logs as well.
I have resized (and formatted) the filesystem before the first boot using
Code:
mke2fs -t ext4 -b 4096 /dev/block/mmcblk0p67 5065715
or 5065719. If I forget this and leave the filesystem at full partition size, it fails cleanly and goes back to lock screen, but if the partition has space for the crypto footer, I think it gets a few steps further and that's where it crashes. Because it wrecks the filesystem, I can't recover any logs.
I read someone describing a similar issue on a different device (can't find the post now) where they said they solved it by flashing a different 'tz' image. I don't want to start blindly flashing stuff though.
I'm trying to build your version of TWRP currently so I'll try that next, I hope it works. If not, I think it may be related to persistent data on some other partition since it fails on every ROM. I don't even know where to start troubleshooting something like that.

Ok, I give up, how do I build TWRP? I tried minimal-manifest with the following roomservice.xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="sevenrock/android_device_motorola_payton-twrp" path="device/motorola/payton" remote="github" revision="android-9.0" />
<project name="sevenrock/platform_device_qcom_common-twrp" path="device/qcom/common" remote="github" revision="master" />
<project name="sevenrock/proprietary_vendor_motorola" path="vendor/motorola" remote="github" revision="lineage-16.0" />
</manifest>
then lunch omni_payton-eng and mka bootimage but I'll admit I was just guessing on the manifest. It builds without error but ends up missing pretty much all files in /sbin and /vendor/lib64.

Well I've gotten a little further -- I made an eng build of 17.1 so I could debug the boot process. It seems like it does actually encrypt properly, but the system fails to boot afterwards. The curious thing is everything works fine if I encrypt without a PIN/passcode set. The system boots and automatically decrypts using the trustzone.
After that, I can set a PIN and it gives me the option of using "secure boot". If I say no, it continues to be encrypted with just the trustzone-based key and boots properly, but is not really secure. If I say yes, it changes the key without error, but fails to boot next time. It shows the Lineage boot animation but adb never starts, so I can't really debug at that point.
So I may just go with the PIN-less encryption, but it would be nice to get this working fully and more securely. The next thing I would like to try is decrypting in TWRP, but that requires the custom FDE build and I still can't figure out what I'm missing there -- help please if you're still willing @sevenrock !

Update if anyone is concerned.
I finally built TWRP with sevenrock's patches. Was having issues due to some dumb mistakes but it's pretty straightforward just following minimal-manifest-twrp instructions.
I can say that my lineage-17.1 build based on sevenrock's repositories works properly until I try to boot with an encryption PIN set up. Just as I described it last time, except I now confirm that there is nothing wrong with the encrypted partition because it works in TWRP.
So the animation just spins forever, no logs because adb never starts... seems like I've tried all I can short of soldering to a serial interface.

I don't think I can change the title, but this is becoming more of a journal than support request. So feel free to read or ignore
I'll keep updating with my progress on this. If I find a solution I will share it as I can't be the only one frustrated by the lack of adoptable storage on this device.
It looks like the issue I am facing may be related to this bug which seems to affect a number of devices. It's the exact same outcome I am experiencing, though not caused by the same steps. But everything that I have read indicates that changing encryption type should be a simple switch, and the ability to decrypt FDE should be included in every build, so it seems like there is a bug somewhere.
If anyone out there wants to try the same thing, apply the following patch between `lunch` and `mka bacon` and let me know how it works out.

Hi,
please try this:
the 5 top-most commits should enable hw-based fde:
Commits · sevenrock/android_device_motorola_sdm660-common
Contribute to sevenrock/android_device_motorola_sdm660-common development by creating an account on GitHub.
github.com
together with
payton: Set BOARD_USERDATAIMAGE_PARTITION_SIZE to allow FDE encryption · sevenrock/[email protected]
Fixes E Cryptfs : Bad magic for real block device /dev/block/bootdevice/by-name/userdata E Cryptfs : Orig filesystem overlaps crypto footer region. Cannot encrypt in place. by freeing up 32K fo...
github.com
The 2 top-most commits in sdm660-common are new as of today thanks to support from Erfan.
Maybe the first boot after enabling encryption gets stuck on the bootlogo, but the next boot works for me.

Thanks, @sevenrock, I did build it and try it, and at least for me it still fails in the same way. I tried changing to secure startup with my existing userdata and also starting fresh, encrypting, and then enabling secure startup. It's the same as before, encryption works but it won't boot with secure startup enabled.
I have an eng build running right now so I'll see in a bit if I can get any sort of log over adb.
No need to sweat it too much just for my sake. I've kind of given up on being able to secure this phone the way I would like to.

Just received another hint for a fix:
Telegram
t.me
Please change vendor/motorola/payton/proprietary/vendor/etc/init/[email protected]
proprietary_vendor_motorola/[email protected] at lineage-17.1 · TheMuppets/proprietary_vendor_motorola
Contribute to TheMuppets/proprietary_vendor_motorola development by creating an account on GitHub.
github.com
according to
montana: Move fingerprint HAL to class hal · LineageOS/[email protected]
Signed-off-by: Jarl-Penguin <[email protected]> Change-Id: Ia259ec93a9e12b84e2f14ceb30157c5a3531d237
github.com
which means replace "late_start" with "hal"
HTH

Related

[HOWTO] Build CM10.1 for N7000, Nexus 4 and 7, Note II and Note II LTE

First of all, why would you want to do it when there are Nightlies to be dowloaded and flashed?
Let me quote Rec Dev fattire here:
fattire said:
Off the top of my head...
You never, ever have to wait for a nightly
You can add or remove as-yet uncommitted features with ease.
You learn how Android works under the hood
You learn how to use Linux
You'll learn how to use git
You may, even accidentally, pick up a little C, Java, C++, and learn about the build system.
You can personalize Android-- make your own tweaks, modules, graphics, add or remove projects etc. In other words, you have control over every aspect of your device's functionality. Your build is custom to you.
You can audit the code for potential security issues such as back doors or trojans (as opposed to just trusting a random person who posts a build). Since CM10 source is open, you can examine every commit, and there are many eyes looking at the code. (does not apply to proprietary blobs, but these are pulled from your device, so you have and are using them already)
You can contribute features/fixes back upstream
You can start ports to other as-yet-unsupported devices (start by copying folders from similar devices to devices/manufacturer/model)
You come to really understand that Android phones and tablets are full-fledged general-purpose computers just like laptops and desktops.
AAAAND....you get huge bragging rights
The extent to which you delve into the above is entirely up to you. The walkthrough is just an introduction to that world. Some people will build once and never do it again... but others will start to tinker and make changes to their own build and want to share them with others, and soon some will start making contributions back to official CM10 upstream... or port to new devices... and by fixing bugs and all this... everyone benefits.
Plus...
It's fun.
Click to expand...
Click to collapse
Hardware Requirements
You'll need a computer configuration that is not too shabby to pull this off; also you'll need a decent Interweb connection to download all that is needed.
Here are some hardware examples:
Utacka
Ahalford
Anti
Me
In other words, you need to have a box capable of doing some crunching. The better the PC, the faster the compile and vice-versa.
As for the Internet connection, you have to pull about 13 Gb of tiny files in the first CM10.1 sync, and additional 2-3 Gbs in your second sync.
Trying to do it on a 512Kb/s connection is an exercise in futility.
Setting up the Build Environment
First things first: you need to download and install 64-bit version of Ubuntu 12.04. A 32-bit one won't cut it.
Installed it? Good, let's move on.
Now do a system update; click that little switch icon in the top right hand corner and you'll get a menu. Launch Update Manager and install everything it finds.
Now that your Ubuntu is up to speed you need to download and install some more stuff. Launch the terminal (Ctrl + Alt + T).
Copy the below code and paste it (right-click and paste or Shift + Insert, Ctrl + V doesn't work) in the terminal, hit enter.
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev libxml2-utils
If 'lib32ncurses5-dev' fails, delete it from the list, install everything else.
Now you need to add the following repos, again copy/paste each line into the terminal, hit enter. Repeat for each line of the code below.
Code:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
Code:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
Code:
sudo apt-get update
Now you are going to install Synaptic.
Code:
sudo apt-get install synaptic
Done? Good.
Click the 'Dash Home' button (top left hand corner of your desktop), find and launch Synaptic Package Manager. Search for 'Sun Java6 JDK' and install it will all the dependencies except sun-java6-demo and sun-java6-doc.
Now go to http://developer.android.com/sdk/index.html and download the linux version of the Android SDK. It provides the API libraries and developer tools necessary to build. When your download is done, open it with Archive Manager, extract it somewhere, and move the extracted folder to your Home folder. Rename it to 'SDK' for simplicity.
Now you need to download and install Android SDK Platform Tools. Use file manager to navigate to your SDK sub-folder Tools. Find 'android' and double-click to run it. You'll be asked what you want to download. Choose the 'Platform Tools' and the Android 4.1.2 SDK Level 16 and the Android 4.2 SDK level 17 Dev tools and hit install. Let it download; it might take some time, depending on your download speed.
Now the time is ripe for you to setup your Android repos. Copy/paste the following commands into the terminal, hit enter after each one.
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/cm10.1
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
export PATH=~/bin:$PATH
You have to reboot after this for changes to take effect.
Initial Repo, local_manifest
Once reboobed, open the terminal once again and do this:
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
Your initial sync will take some time. After it is is done, go to your cm10.1/.repo folder (/.repo is hidden, so press Ctrl + H in your file manager for it to show up). Create a
subfolder called local_manifests in /.repo. Then create a blank document called roomservice.xml in /.repo/local_manifests. Copypasta™ the below code into roomservice.xml,
save it, close the document.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_n7000" path="device/samsung/n7000" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-10.1" />
</manifest>
Click to expand...
Click to collapse
NOTE: All in the above posts needs to be done only once, prior to compiling your first build.
For all your subsequent builds you'll have to do just the steps listed in the next posts.
Start the Build
It's time for you to do another repo sync to pull Samsung device-specific stuff.
Code:
repo sync
This sync is going to be considerably shorter than the first one. After it is done, it's time for you to start the build.
Code:
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
export USE_CCACHE=1
prebuilts/misc/linux-x86/ccache/ccache -M 50G
brunch n7000
If everything goes right, you should see this at the end of the compile:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Your cm10.1 rom zip will be in cm10.1/out/target/product/n7000 folder.
This is how it looks when the build gets going:
Subsequent Builds
You'll want to do another build tomorrow once your first one has gone through fine.
There are two ways you can go about it.
#1: do a
Code:
cd cm10.1
repo sync
export USE_CCACHE=1
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
brunch n7000
The build system should notice which source files have changed and need rebuilding, and should only build the new stuff. This is what you might want to do when there were no major changes in the merged commits here: http://review.cyanogenmod.org/#/q/status:merged,n,z
However, what I always do and would always recommend
#2:
Code:
cd cm10.1
make clean
repo sync
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
brunch n7000
'make clean' command will delete your whole /out folder, and your new build will start from scratch. Instead of 'make clean' you can also use 'make clobber'; the difference between the commands is explained here.
There is a way to completely automate your compiling process à la CyanogenMod's Jenkins. You can learn how from AndroidSlave here: http://forum.xda-developers.com/showthread.php?p=46110939
Cherry Picking
***Cherry picking from CM Gerrit***
This is one of the perks of compiling CM10.1 yourself. Official nightlies have a lot of features, but there's also a lot of stuff waiting for a review on Gerrit.
You can follow the commits waiting to be reviewed and merged into the main repo here: http://review.cyanogenmod.org/#/q/status:reviewed,n,z
You can cherry-pick anything from the upcoming features and incorporate it into your Rom before the official CM10.1 does the same.
Let's say that you want to have this commit before it becomes merged: http://review.cyanogenmod.org/30878
The commit says:
Code:
Project CyanogenMod/android_packages_apps_LockClock
It's quite simple to do that. Fire up the Terminal (Ctrl + Alt + T) and navigate to your LockClock folder.
Code:
cd cm10.1/packages/apps/LockClock
In other words you must be in the same folder as stated in 'Project' for cherry-picking to work.
Now minimize the terminal (don't close it) and switch to the Gerrit page in your browser.
http://review.cyanogenmod.org/#/c/30878/
Click on cherry-pick button here.
Then click several times on the little clipboard icon at the end of the cherry-pick URL.
This automagically copies the cherry-pick URL into your clipboard. Now, go back to your terminal, paste the cherry-pick URL in it and hit enter.
That is all: the commit will get pulled and incorporated into your local repo. You are ready to compile a build which will contain the feature you have just cherry-picked.
***Cherry-picking from Github***
http://forum.xda-developers.com/showpost.php?p=42486858&postcount=449
How to compile CM10.1 for Nexus 4
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Nexus 4 specific bit. As stated before, go to your cm10.1/.repo folder and create a blank document called local_manifest.xml. Paste the below code into local_manifest.xml, save it, close the document.
If you already have local_manifest.xml with n7000 stuff in it, then just add all the lines beginning with <project name= from below to it, save and exit Gedit.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_lge_mako" path="device/lge/mako" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/lge-kernel-mako" path="kernel/lge/mako" remote="github" revision="jellybean" />
</manifest>
Click to expand...
Click to collapse
Now do the second repo sync to pull Nexus 4 specific stuff.
Code:
repo sync
Do the following after the second sync has gone through.
Code:
~/cm10.1/vendor/cm/get-prebuilts
Now it's time to start the build.
Code:
. build/envsetup.sh
export USE_CCACHE=1
brunch mako
That's it. Wait for the build to get compiled and flash your CM10.1_UNOFFICIAL_mako.zip from cm10.1/out/target/product/mako folder.
How to compile CM10.1 for Note II LTE (t0lte)
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Note II LTE specific bit. As stated before, go to your cm10.1/.repo folder and create a blank document called local_manifest.xml. Paste the below code into local_manifest.xml, save it, close the document.
If you already have local_manifest.xml with n7000 stuff in it, then just add all the lines beginning with <project name= from below to it, save and exit Gedit.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_t0lte" path="device/samsung/t0lte" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-10.1" />
</manifest>
Click to expand...
Click to collapse
Note: you might already have some of the lines in your local_manifest.xml if you have compiled a build for n7000. If that's the case, skip adding the lines you already have.
Now do the second repo sync to pull Note II specific stuff.
Code:
repo sync
Do the following after the second sync has gone through.
Code:
~/cm10.1/vendor/cm/get-prebuilts
Now it's time to start the build.
Code:
. build/envsetup.sh
export USE_CCACHE=1
brunch t0lte
That's it. Wait for the build to get compiled and flash your CM10.1_UNOFFICIAL_mako.zip from cm10.1/out/target/product/t0lte folder.
Reserved
How to set up a build environment in Ubuntu 13.04:
http://forum.xda-developers.com/showthread.php?t=2224142
Discarding Failed or Unwanted Cherry Picks
If you want to get rid of something you have cherry-picked this is what needs to be done.
We'll stick to the cherry-picking example described in the previous post.
Start the Terminal and navigate to the folder containing your unwanted cherry-pick, in this case LockClock.
Code:
cd cm10.1/packages/apps/LockClock
From here you need to persuade Git to discard the cherry-picked thing. Do this:
Code:
git reset --hard
And that is that.
However, sometimes git has its quirks and doesn't want to do what it's been told. If that is the case, you'll get warnings when doing your next repo sync.
If that happens, repeat the two steps from above and delete the top folder where your cherry-pick was located. In this case, it is /packages.
Do the repo sync again and the folder will be redownloaded and stored on your machine in pristine state.
How to compile CM10.1 for Nexus 7
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Nexus 7 specific bit. Do this:
Code:
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
breakfast grouper
This will download the device specific configuration and kernel source for your device.
Now it's time to extract proprietary blobs from your tablet.
Go to your grouper CM10.1 folder.
Code:
cd cm10.1/device/asus/grouper
Connect your Nexus 7 to the computer using USB cable. Make sure that adb debugging is on in Developer's Options. Now paste this into the terminal:
Code:
./extract-files.sh
If you get adb errors, that means that adb is not in the path of execution. Close the terminal, start your file manager and when in your /home folder press Ctrl + H for hidden stuff to appear. Open .bashrc file with Gedit and add the following line at the end of the code:
Code:
export PATH=${PATH}:/<your path to sdk>/platform-tools
(My <path to sdk> looks like this: export PATH=${PATH}:/home/chasmodo/android-sdk/sdk/platform-tools)
Save the file, open a new terminal window, go to cd cm10.1/device/asus/grouper and repeat
Code:
./extract-files.sh
The adb command should now be available and your blobs pulled. After this has been done go back to cm10.1 folder and start the build.
Code:
cd ~/cm10.1 (or croot, same thing)
export USE_CCACHE=1
brunch grouper
After the compile goes through, your CM10.1_UNOFFICIAL_grouper.zip will be waiting for you in cm10.1/out/target/product/grouper folder.
How to compile CM10.1 for Note II (n7100)
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Note II specific bit. As stated before, go to your cm10.1/.repo folder and create a blank document called local_manifest.xml. Paste the below code into local_manifest.xml, save it, close the document.
If you already have local_manifest.xml with n7000 stuff in it, then just add all the lines beginning with <project name= from below to it, save and exit Gedit.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_n7100" path="device/samsung/n7100" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-10.1" />
</manifest>
Click to expand...
Click to collapse
Note: you might already have some of the lines in your local_manifest.xml if you have compiled a build for n7000. If that's the case, skip adding the lines you already have.
Now do the second repo sync to pull Note II specific stuff.
Code:
repo sync
Do the following after the second sync has gone through.
Code:
~/cm10.1/vendor/cm/get-prebuilts
Now it's time to start the build.
Code:
. build/envsetup.sh
export USE_CCACHE=1
brunch n7100
That's it. Wait for the build to get compiled and flash your CM10.1_UNOFFICIAL_mako.zip from cm10.1/out/target/product/n7100 folder.
thumbs up, really appreciate sharing your knowledge :good:
Re: [HOWTO] Build CM10.1 for N7000
I build on the first gen i7 @ 2.0ghz, 8gigs of ram, 120gig SSD, clean compile is about 30-35 min.
My next machine will be a i7 @ 3.4, 16gigs of ram and 250gig SSD
I suggest a minimum of an i3 with 8gigs of ram, otherwise you'll be compiling for hours.
Then reason I suggest that as a minimum is because if for instance you cherry pick something, that breaks the build, you'll need to revert that pick and re build. It could be a very time consuming process.
This is great~!
i'm going to have to try this out haha... ubuntu in a VM environment on an i7 + 256gb ssd
hope you're up for questions guys haha :silly:
happiboi said:
This is great~!
i'm going to have to try this out haha... ubuntu in a VM environment on an i7 + 256gb ssd
hope you're up for questions guys haha :silly:
Click to expand...
Click to collapse
Of course we are up for questions, that's why this thread is here.
chasmodo said:
Of course we are up for questions, that's why this thread is here.
Click to expand...
Click to collapse
Excellent Article.
Hmmmm now where did i keep my Computer
Odp: [HOWTO] Build CM10.1 for N7000
Thanks for tutorial Chas
Wysłane z mojego GT-N7000 za pomocą Tapatalk 2
great thing ... short, precise .... Keep it up Chas

TWRP for i9295 S4 Active

Has anyone with the i9295 tried following this guide to make a TWRP for the active?
http://www.xda-developers.com/android/compile-twrp-for-your-device/
I tried it today using spegelius' CM-10.2 sources and the compile went through. However, I'm currently a bit scared to flash it (yeah, I know... ). If anyone dares to give a try to my build, send me a PM and I'll send you the recovery.img I got.
This is the roomservice.xml I used:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="spegelius/android_device_samsung_jactivelte" path="device/samsung/jactiveltexx" remote="github" />
<project name="spegelius/android_device_samsung_jactivelte-common" path="device/samsung/jf-common" remote="github" />
<project name="spegelius/android_kernel_samsung_jactivelte" path="kernel/samsung/jactiveltexx" remote="github" />
<project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" />
<project name="CyanogenMod/android_device_samsung_msm8960-common" path="device/samsung/msm8960-common" remote="github" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" />
<project name="CyanogenMod/android_device_samsung_jfltexx" path="device/samsung/jfltexx" remote="github" />
<project name="CyanogenMod/android_device_samsung_jf-common" path="device/samsung/jf-common" remote="github" />
<project name="CyanogenMod/android_kernel_samsung_jf" path="kernel/samsung/jf" remote="github" />
<remove-project name="CyanogenMod/android_bootable_recovery" />
<project name="omnirom/android_bootable_recovery" path="bootable/recovery" remote="github" revision="android-4.3" />
</manifest>
Additionally I added the following in the device/samsung/jf-common/BoardConfigCommon.mk. This is esentially the same as for the S4 except the Screen-Brightness-Regulation, which I suppose is different due to a different LCD (but TWRP should work without any brightness-regulation at all):
Code:
#TWRP
DEVICE_RESOLUTION := 1080x1920
RECOVERY_GRAPHICS_USE_LINELENGTH := true
RECOVERY_SDCARD_ON_DATA := true
TW_INTERNAL_STORAGE_PATH := "/data/media/0"
TW_INTERNAL_STORAGE_MOUNT_POINT := "data"
TW_EXTERNAL_STORAGE_PATH := "/external_sd"
TW_EXTERNAL_STORAGE_MOUNT_POINT := "external_sd"
TW_NO_REBOOT_BOOTLOADER := true
TW_HAS_DOWNLOAD_MODE := true
BOARD_HAS_NO_REAL_SDCARD := true
TW_INCLUDE_CRYPTO := true
TW_INCLUDE_CRYPTO_SAMSUNG := true
TW_CRYPTO_FS_TYPE := "ext4"
TW_CRYPTO_REAL_BLKDEV := "/dev/block/mmcblk0p29"
TW_CRYPTO_MNT_POINT := "/data"
TW_CRYPTO_FS_OPTIONS := "nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check,encryptable=footer"
TW_CRYPTO_FS_FLAGS := "0x00000406"
TW_CRYPTO_KEY_LOC := "footer"
TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/devices/platform/msm_hsusb/gadget/lun0/file
TWRP_EVENT_LOGGING := true
I used the same recovery.fstab / twrp.fstab as for the S4.
TWRP S4 Active i9295
floeti said:
I tried it today using spegelius' CM-10.2 sources and the compile went through. However, I'm currently a bit scared to flash it (yeah, I know... ). If anyone dares to give a try to my build, send me a PM and I'll send you the recovery.img I got.
This is the roomservice.xml I used:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="spegelius/android_device_samsung_jactivelte" path="device/samsung/jactiveltexx" remote="github" />
<project name="spegelius/android_device_samsung_jactivelte-common" path="device/samsung/jf-common" remote="github" />
<project name="spegelius/android_kernel_samsung_jactivelte" path="kernel/samsung/jactiveltexx" remote="github" />
<project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" />
<project name="CyanogenMod/android_device_samsung_msm8960-common" path="device/samsung/msm8960-common" remote="github" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" />
<project name="CyanogenMod/android_device_samsung_jfltexx" path="device/samsung/jfltexx" remote="github" />
<project name="CyanogenMod/android_device_samsung_jf-common" path="device/samsung/jf-common" remote="github" />
<project name="CyanogenMod/android_kernel_samsung_jf" path="kernel/samsung/jf" remote="github" />
<remove-project name="CyanogenMod/android_bootable_recovery" />
<project name="omnirom/android_bootable_recovery" path="bootable/recovery" remote="github" revision="android-4.3" />
</manifest>
Additionally I added the following in the device/samsung/jf-common/BoardConfigCommon.mk. This is esentially the same as for the S4 except the Screen-Brightness-Regulation, which I suppose is different due to a different LCD (but TWRP should work without any brightness-regulation at all):
Code:
#TWRP
DEVICE_RESOLUTION := 1080x1920
RECOVERY_GRAPHICS_USE_LINELENGTH := true
RECOVERY_SDCARD_ON_DATA := true
TW_INTERNAL_STORAGE_PATH := "/data/media/0"
TW_INTERNAL_STORAGE_MOUNT_POINT := "data"
TW_EXTERNAL_STORAGE_PATH := "/external_sd"
TW_EXTERNAL_STORAGE_MOUNT_POINT := "external_sd"
TW_NO_REBOOT_BOOTLOADER := true
TW_HAS_DOWNLOAD_MODE := true
BOARD_HAS_NO_REAL_SDCARD := true
TW_INCLUDE_CRYPTO := true
TW_INCLUDE_CRYPTO_SAMSUNG := true
TW_CRYPTO_FS_TYPE := "ext4"
TW_CRYPTO_REAL_BLKDEV := "/dev/block/mmcblk0p29"
TW_CRYPTO_MNT_POINT := "/data"
TW_CRYPTO_FS_OPTIONS := "nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check,encryptable=footer"
TW_CRYPTO_FS_FLAGS := "0x00000406"
TW_CRYPTO_KEY_LOC := "footer"
TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/devices/platform/msm_hsusb/gadget/lun0/file
TWRP_EVENT_LOGGING := true
I used the same recovery.fstab / twrp.fstab as for the S4.
Click to expand...
Click to collapse
Has anyone tried this? did it work ? i want to install TWRP on my S$ Active i9295
Cheers,
does galaxy s4 active have twrp
Is there a twrp for galaxy s4 active because I really need it
johnathanw22 said:
Is there a twrp for galaxy s4 active because I really need it
Click to expand...
Click to collapse
not at the moment

[Q] Porting ROM to Xperia Z

Hi,
I'm trying to port AOSPA to the Xperia Z ... for my own usage, but I'd also share it to the community.
I've never done this before and after days of trying and editing files I'm getting a bit tired at the moment.
It would be great if someone could help me to get into it. All Porting Guides are different and most of them are using already precompiled files.
At the moment I get the error
Code:
Traceback (most recent call last):
File "../../base/android/jni_generator/jni_generator.py", line 1065, in <module>
sys.exit(main(sys.argv))
File "../../base/android/jni_generator/jni_generator.py", line 1061, in main
options.optimize_generation)
File "../../base/android/jni_generator/jni_generator.py", line 996, in GenerateJNIHeader
jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, namespace)
File "../../base/android/jni_generator/jni_generator.py", line 507, in CreateFromClass
stderr=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 709, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1326, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
make: *** [/home/pa/git/aospa/out/target/product/c6603/obj/GYP/shared_intermediates/ui/gl/jni/Surface_jni.h] Fehler 1
make: *** Warte auf noch nicht beendete Prozesse...
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Is this helpful? I can provide some more information if needed.
Some of the steps I did so far:
repo init -u git://github.com/AOSPA/manifest.git -b kitkat
repo sync -j48
Followed this Guide to add Sony BLOBS and edited '.repo/local_manifests/sonyxperiadev.xml' to the following (Deleted some 'remove-project' lines because they have been not present)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="sony" fetch="git://github.com/sonyxperiadev/" />
<remove-project name="platform/hardware/invensense" />
<remove-project name="platform/hardware/akm" />
<project path="device/sony/lagan" name="device-sony-lagan" groups="device" remote="sony" revision="master" />
<project path="device/sony/c6603" name="device-sony-c6603" groups="device" remote="sony" revision="master" />
<project path="device/sony/sgp321" name="device-sony-sgp321" groups="device" remote="sony" revision="master" />
<project path="vendor/sony/dash" name="DASH.git" groups="device" revision="master" remote="sony" />
</manifest>
I also commented the following lines from 'device/sony/c6603/full_c6603.mk'
Code:
#TARGET_PREBUILT_KERNEL ?= kernel
#PRODUCT_COPY_FILES += $(LOCAL_PATH)/$(TARGET_PREBUILT_KERNEL):kernel
Compiling did not work with this lines. So i tried it without kernel. My idea would be to add other kernel sources like cm11 kernel. For my understanding this would mean, that I have to add 'device/sony/c6603/kernel' folder and insert the files from 'github.com/CyanogenMod/android_kernel_sony_apq8064/tree/cm-11.0'. After that I would edit the commented lines to
Code:
TARGET_KERNEL_SOURCE ?= kernel
PRODUCT_COPY_FILES += $(LOCAL_PATH)/$(TARGET_KERNEL_SOURCE):kernel
And uncomment them. Is this correct?
After that I copied 'vendor/pa/products/pa_mako.mk' to 'vendor/pa/products/pa_yuga.mk' and edited it to the following:
Code:
# Copyright (C) 2013 ParanoidAndroid Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Check for target product
ifeq (pa_yuga,$(TARGET_PRODUCT))
# Define PA bootanimation size
PARANOID_BOOTANIMATION_NAME := XHDPI
# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_xhdpi
# Build paprefs from sources
PREFS_FROM_SOURCE ?= true
# Include ParanoidAndroid common configuration
include vendor/pa/main.mk
# Inherit AOSP device configuration
$(call inherit-product, device/sony/c6603/full_c6603.mk)
# Override AOSP build properties
PRODUCT_NAME := pa_yuga
PRODUCT_BRAND := Sony
PRODUCT_MODEL := C6603
PRODUCT_MANUFACTURER := Sony
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=yuga BUILD_FINGERPRINT="Sony/C6603_1270-6697/C6603:42.2/10.3.A.0.423/WP5_rg:user/release-keys" PRIVATE_BUILD_DESC="C6603-user 4.2.2 10.3.A.0.423 WP5_rg test-keys"
endif
Now I added
Code:
add_lunch_combo pa_yuga-userdebug
to 'vendor/pa/vendorsetup.sh'
using make -j8 gives me:
Code:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4
TARGET_PRODUCT=pa_yuga
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
[COLOR="Red"]TARGET_ARCH_VARIANT=armv7-a-neon[/COLOR]
TARGET_CPU_VARIANT=krait
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.11.0-13-generic-x86_64-with-Ubuntu-13.10-saucy
HOST_BUILD_TYPE=release
BUILD_ID=KRT16S
OUT_DIR=/home/pa/git/aospa/out
============================================
I think the red line should be a bit different?

[Q] help me build cm-12.1 hammerheadcaf

I want to build 12.1 CAF
this way is right?
Code:
Checking out files: 100% (13/13), done.king out files: 30% (4/13)
Checking out files: 100% (168/168), done.
Syncing work tree: 100% (556/556), done.
[email protected] ~/cm12.1 $ . build/envsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/bash_completion/git.bash
including vendor/cm/bash_completion/repo.bash
[email protected] ~/cm12.1 $ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng 54. cm_kltechnduo-userdebug
2. aosp_arm64-eng 55. cm_kltespr-userdebug
3. aosp_mips-eng 56. cm_l900-userdebug
4. aosp_mips64-eng 57. cm_m7-userdebug
5. aosp_x86-eng 58. cm_m7vzw-userdebug
6. aosp_x86_64-eng 59. cm_m8-userdebug
7. m_e_arm-userdebug 60. cm_mako-userdebug
8. mini_emulator_mips-userdebug 61. cm_manta-userdebug
9. mini_emulator_x86_64-userdebug 62. cm_maserati-userdebug
10. mini_emulator_arm64-userdebug 63. cm_mb886-userdebug
11. mini_emulator_x86-userdebug 64. cm_mondrianwifi-userdebug
12. cm_acclaim-userdebug 65. cm_n3-userdebug
13. cm_amami-userdebug 66. cm_n5100-userdebug
14. cm_bacon-userdebug 67. cm_n5110-userdebug
15. cm_castor-userdebug 68. cm_nicki-userdebug
16. cm_castor_windy-userdebug 69. cm_obake-userdebug
17. cm_condor-userdebug 70. cm_peregrine-userdebug
18. cm_d2att-userdebug 71. cm_picassowifi-userdebug
19. cm_d2spr-userdebug 72. cm_quark-userdebug
20. cm_d2tmo-userdebug 73. cm_scorpion-userdebug
21. cm_d2vzw-userdebug 74. cm_scorpion_windy-userdebug
22. cm_d850-userdebug 75. cm_serrano3gxx-userdebug
23. cm_d851-userdebug 76. cm_serranoltexx-userdebug
24. cm_d852-userdebug 77. cm_shamu-userdebug
25. cm_d855-userdebug 78. cm_sirius-userdebug
26. cm_deb-userdebug 79. cm_spyder-userdebug
27. cm_dlx-userdebug 80. cm_superior-userdebug
28. cm_e975-userdebug 81. cm_t0lte-userdebug
29. cm_e980-userdebug 82. cm_t6-userdebug
30. cm_evita-userdebug 83. cm_t6spr-userdebug
31. cm_falcon-userdebug 84. cm_t6vzw-userdebug
32. cm_find7-userdebug 85. cm_targa-userdebug
33. cm_find7s-userdebug 86. cm_tf300t-userdebug
34. cm_flo-userdebug 87. cm_thea-userdebug
35. cm_fugu-userdebug 88. cm_tilapia-userdebug
36. cm_ghost-userdebug 89. cm_titan-userdebug
37. cm_grouper-userdebug 90. cm_togari-userdebug
38. cm_hammerhead-userdebug 91. cm_togari_gpe-userdebug
39. cm_hammerheadcaf-userdebug 92. cm_trltetmo-userdebug
40. cm_hlte-userdebug 93. cm_trltexx-userdebug
41. cm_hltespr-userdebug 94. cm_umts_spyder-userdebug
42. cm_hltetmo-userdebug 95. cm_v410-userdebug
43. cm_i605-userdebug 96. cm_v500-userdebug
44. cm_i925-userdebug 97. cm_victara-userdebug
45. cm_honami-userdebug 98. cm_ville-userdebug
46. cm_jflteatt-userdebug 99. cm_vs985-userdebug
47. cm_jfltespr-userdebug 100. cm_xt897-userdebug
48. cm_jfltetmo-userdebug 101. cm_xt907-userdebug
49. cm_jfltevzw-userdebug 102. cm_xt925-userdebug
50. cm_jfltexx-userdebug 103. cm_xt926-userdebug
51. cm_klimtwifi-userdebug 104. cm_z3-userdebug
52. cm_klte-userdebug 105. cm_z3c-userdebug
53. cm_kltechn-userdebug
Which would you like? [aosp_arm-eng] 39
ls: невозможно получить доступ к device/*/hammerheadcaf/cm.mk: Нет такого файла или каталога
build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_hammerheadcaf". Останов.
Device hammerheadcaf not found. Attempting to retrieve device repository from CyanogenMod Github ([url]http://github.com/CyanogenMod[/url]).
Found repository: android_device_lge_hammerheadcaf
Default revision: cm-12.1
Checking branch info
Adding dependency: CyanogenMod/android_device_lge_hammerheadcaf -> device/lge/hammerheadcaf
Using default branch for android_device_lge_hammerheadcaf
Syncing repository to retrieve project.
Fetching project CyanogenMod/android_device_lge_hammerheadcaf
Fetching projects: 100% (1/1), done.
Repository synced!
Looking for dependencies
Adding dependencies to manifest
Adding dependency: CyanogenMod/android_kernel_lge_hammerhead -> kernel/lge/hammerhead
Adding dependency: CyanogenMod/android_device_qcom_common -> device/qcom/common
Using default branch for android_device_qcom_common
Syncing dependencies
Fetching project CyanogenMod/android_device_qcom_common
Fetching project CyanogenMod/android_kernel_lge_hammerhead
Fetching projects: 100% (2/2), done.
Checking out files: 100% (41719/41719), done.
Looking for dependencies
Dependencies file not found, bailing out.
Looking for dependencies
Dependencies file not found, bailing out.
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/lge/hammerheadcaf/cm.mk]]: "vendor/lge/hammerheadcaf/hammerheadcaf-vendor.mk" does not exist. Останов.
** Don't have a product spec for: 'cm_hammerheadcaf'
** Do you have the right repo manifest?
then open
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
</manifest>
and add this
https://github.com/TheMuppets/proprietary_vendor_lge/tree/cm-12.1
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="TheMuppets/proprietary_vendor_lge" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
</manifest>
and again repo sync -j5
right ? or need something else to fix for a good build? if need,please show me example ...
thx.
I think so right
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="myfluxi/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
</manifest>
not build
Code:
target SharedLib: libRSDriver (/home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/LINKED/libRSDriver.so)
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdAllocation.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdBcc.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdCore.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdElement.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdFrameBuffer.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdFrameBufferObj.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdGL.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdMesh.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdMeshObj.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdPath.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdProgram.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdProgramRaster.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdProgramStore.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdRuntimeStubs.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdSampler.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdScriptGroup.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdShader.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdShaderCache.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdType.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdVertexArray.o: file is empty
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/LINKED/libRSDriver.so] Ошибка 1
make: *** Ожидание завершения заданий...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
[email protected] ~/cm12.1 $
tell me what's wrong? how fix?
Delete the folder local_manifests in .repo and do the following:
$ . build/envsetup.sh
$ lunch -> and choose the number that matches with cm_hammerhead-userdebug
Wait for the roomservice.xml sync and when it's done open the file and add at the top: <project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
$ repo sync
and
$ brunch hammerhead
Your roomservice needs to look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_lge_hammerhead" path="device/lge/hammerhead" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
</manifest>
Next time just do:
$ . build/envsetup.sh
$ breakfast hammerhead
$ brunch hammerhead
PS: WHIT THIS STEPS YOU'LL BUILD NON CAF. FOR CAF CHECK IN LUNCH MENU FOR IT
Be happy!
Cristiano Matos
how to build cm12.1 i`m know
me need build exactly CAF variant,but after 2h build is error
garynych said:
Cristiano Matos
how to build cm12.1 i`m know
me need build exactly CAF variant,but after 2h build is error
Click to expand...
Click to collapse
Which linux distro do you use?
garynych said:
Cristiano Matos
how to build cm12.1 i`m know
me need build exactly CAF variant,but after 2h build is error
Click to expand...
Click to collapse
You're a smart person may i presume. The answer lies in my post. Regards
Snoop05 said:
Which linux distro do you use?
Click to expand...
Click to collapse
mint 17.1 rebecca (x64)
Cristiano Matos said:
You're a smart person may i presume. The answer lies in my post. Regards
Click to expand...
Click to collapse
sorry,maybe that's the problem with online translator google
am try
1
Delete the folder local_manifests in .repo and do the following:
$ . build/envsetup.sh
$ lunch -> and choose the number that matches with cm_hammerhead-userdebug
Click to expand...
Click to collapse
yes
2
Wait for the roomservice.xml sync and when it's done open the file and add at the top: <project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
$ repo sync
Click to expand...
Click to collapse
yes
3
Next time just do:
$ . build/envsetup.sh
$ breakfast hammerhead
$ brunch hammerhead
Click to expand...
Click to collapse
$ . build/envsetup.sh
$ breakfast hammerheadcaf
$ brunch hammerheadcaf
no build
or
$ . build/envsetup.sh
$ lunch cm_hammerheadcaf-user
$ make -j3 otapackage
or
$ . build/envsetup.sh
$ lunch cm_hammerheadcaf-user
$ mka -j3 otapackage
no build
or
$ . build/envsetup.sh
$ lunch cm_hammerheadcaf-userdebug
$ mka -j3 otapackage
no build
all time ,this error
Which python version you use?
when my aosp buildbox is ready, i will try to build a cm12.1 caf... my build time is only 20min so that helps
Snoop05 said:
Which python version you use?
Click to expand...
Click to collapse
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
now I did so
make clobber
ccache -C
and start build
already it's been 3 hours,I think must collect
Try it like this:
. build/envsetup.sh
lunch
39
breakfast hammerheadcaf
brunch hammerheadcaf
because i followed what Cristiano Matos sed and it works for me...
build.sh
Code:
#!/bin/bash
make clobber
repo sync -j16
source build/envsetup.sh
breakfast hammerheadcaf
mka bacon
cd $OUT
.repo/local_manifests/roomservice.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="CyanogenMod/android_device_lge_hammerhead" path="device/lge/hammerhead" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1"/>
</manifest>
This worked for me. If problem persist try to reinstall all dependencies (check cm build wiki), gcc, g++, python and openjdk
garynych said:
now I did so
make clobber
ccache -C
and start build
already it's been 3 hours,I think must collect
Click to expand...
Click to collapse
this help me
build completed successfully
to everyone who helped,thank you
I'm happy

[Solved] build custom rom

Hi,
Im trying to build DotOs and after doing all necessities and with local_manifest/dot_pdx203.xml see next post
In file included from build/make/core/config.mk:290:
In file included from build/make/core/envsetup.mk:268:
vendor/sony/pdx203/edo-vendor.mk:195: error: _nic.PRODUCTS.[[device/sony/pdx203/dot_edo.mk]]:
"vendor/dot/config/common_full_phone.mk" does not exist.
18:38:48 dumpvars failed with: exit status 1
Device edo not found. Attempting to retrieve device repository from DotOS-Devices Github (http://github.com/DotOS-Devices).
Repository for edo not found in the DotOS-Devices Github repository list.
If this is in error, you may need to manually add it to your .repo/local_manifests/dot_manifest.xml
In file included from build/make/core/config.mk:290:
In file included from build/make/core/envsetup.mk:268:
vendor/sony/pdx203/edo-vendor.mk:195: error: _nic.PRODUCTS.[[device/sony/pdx203/dot_edo.mk]]:
"vendor/dot/config/common_full_phone.mk" does not exist.
18:38:49 dumpvars failed with: exit status 1
In file included from build/make/core/config.mk:290:
In file included from build/make/core/envsetup.mk:268:
vendor/sony/pdx203/edo-vendor.mk:195: error: _nic.PRODUCTS.[[device/sony/pdx203/dot_edo.mk]]:
"vendor/dot/config/common_full_phone.mk" does not exist.
18:38:49 dumpvars failed with: exit status 1
** Don't have a product spec for: 'dot_edo'
** Do you have the right repo manifest?
Click to expand...
Click to collapse
Edit: so it seems things are moving forward, but still not there.. at least lunch is picking up the device tree..
Update : local_manifest/dot_pdx203
<remote name="vendor"
fetch="https://github.com"
revision="lineage-18.1" />
<remote name="device"
fetch="https://github.com"
revision="pe_eleven" />
<remote name="common"
fetch="https://github.com"
revision="fluid_11" />
<remote name="kernel"
fetch="https://github.com"
revision="LA.UM.8.12.r1" />
<!-- Vendor folders -->
<project path="vendor/sony/pdx203" name="hellobbn/android_vendor_sony_pdx203" remote="vendor" />
<!--Device Trees-->
<project path="device/sony/pdx203" name="hellobbn/android_device_sony_pdx203" remote="device" />
<project path="device/sony/edo-common" name="SetsunaKiyouraTD/android_device_sony_edo-common" remote="common" />
<!--Kernel-->
<project path="kernel/sony/sm8250" name="hellobbn/android_kernel_sony_sm8250" remote="kernel" />
Click to expand...
Click to collapse
Ah nevermind I figurd it out and learnt something in the process
To those buildmaster out there does this seem correct?
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
DOT_VERSION=dotOS-R-v5.2-pdx203-UNOFFICIAL-20211005-1948
TARGET_PRODUCT=dot_pdx203
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.4.150_1-x86_64-void
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=RD2A.210905.003
OUT_DIR=/home/userx/build/dotos/out
PRODUCT_SOONG_NAMESPACES=vendor/sony/pdx203 hardware/qcom-caf/sm8250 vendor/qcom/opensource/commonsys-intf/display vendor/qcom/opensource/dataservices vendor/qcom/opensource/data-ipa-cfg-mgr packages/apps/Bluetooth hardware/qcom-caf/common/fwk-detect
============================================
Click to expand...
Click to collapse
Since Im building on voidlinux some issues needed resolve
// Error notes
ERROR: vendor/dot/config/common_full_phone.mk" does not exist.
- Use common.mk instead of common_full_phone.mk (..device/sony/pdx203/dot_pdx203.mk)
ERROR: while loading shared libraries: libncurses.so.5
for f in ncurses form panel menu; do ln -sfr /usr/lib/lib${f}.so.6 /usr/lib/lib${f}.so.5; done
for f in ncurses form panel menu; do ln -sfr /usr/lib/lib${f}w.so.6 /usr/lib/lib${f}w.so.5; done
for f in ncurses form panel menu; do ln -sfr /usr/lib32/lib${f}.so.6 /usr/lib32/lib${f}.so.5; done
for f in ncurses form panel menu; do ln -sfr /usr/lib32/lib${f}w.so.6 /usr/lib32/lib${f}w.so.5; done
ln -sf /usr/bin/ncursesw6-config /usr/bin/ncursesw5-config
ln -sf /usr/bin/ncursesw6-config /usr/bin/ncurses5-config
ERROR: error while loading shared libraries: libtinfo.so.5
ln -sf /usr/lib/libtinfo.so.6 /usr/lib/libtinfo.so.5
Click to expand...
Click to collapse
All be attachii some build logs on finnish; if anyone cares to read and compair..

Categories

Resources