[HOWTO] Build minimal eOS-Pie

Short note before we start: I am not an Android developer. I’m sure there is a ‘clean’ solution, but I’m often in favor of Quick&Dirty solutions. Everything is allowed, as long as it works :slight_smile:

Let’s go (no sources available yet):

  1. first you have to create a working directory, for example ‘PIE’
  2. a folder ‘temp’ must be created in this directory
  3. there must be a roomservice.xml in the PIE directory
  4. now save the script from here to the PIE directory and make it executable
  5. start the terminal in the PIE directory
  6. start the script with ./1312.sh and answer the questions.

Now all sources are downloaded, the folders with the superfluous apps are removed and the build is started.
After a few hours you should find the eOS.zip file in the ‘out’ folder.

------------- existing sources ------------------
If all sources are already available you can proceed as follows:

  1. create a folder ‘temp’ in the sources root directory
  2. copy the script from here to the sources root directory and make it executable
  3. start the terminal in the source root directory
  4. start the script with ./1312a.sh and answer the question

Now all superfluous apps will be removed and the build will start.
After a few hours you should find the eOS.zip file in the ‘out’ folder

---- last remark —
I hope there are not misspellings :frowning:

Mai,22.2020

*********** New script version ***********************

I have made some changes in the 1312.sh scrip. Now you can decide to have MicroG and /or Signature Spoofing for apps.
For signature spoofing you have to copy this file in your root build folder

I have tested the complete script several times for 2 different devices It’s working without issues.
If you are running in bootloop the patching hasn’t worked. Try again or / and without patching

WARNING: If you decide to build without BlissLauncher you MUST add an other launcher. Otherwise Android won’t start

7 Likes

:+1::+1::+1:, you got it :grinning_face_with_smiling_eyes:
My other build script is 161.sh

Could you do Android Q with LineageOS launcher?

No, there are no eOS Q sources available. Q-eOS is far, fas, far, far away

Hello @harvey186,

I would like to try building minimal /e/ Pie for the Samsung Galaxy S6 Edge (Zeroltexx). There is a working unofficial LOS build I found. My machine has 16Gb of RAM and about 400Gb of free space to build.

Being a beginner in this domain, my questions to you are :

  1. Which environment do you recommend ? I currently use Linux Mint, but have read that Ubuntu 18.04 would be better suited.
  2. Would this work with your script if renamed roomservice.xml and placed in the PIE folder ? Or should it be edited to keep only the zeroltexx parts ?
  3. Are there programs I should install or modify (e.g. jdk ?)

Thanks !

1 Like

I’m also building on Mint. But Ubuntu 18.04 is also OK.

I fear with that manifest, you will get a lot of trouble, because it’s for Android 10
Better using the manifest from here:
https://ecloud.global/apps/files/?dir=/e-roms/manifests&fileid=6870957

2 Likes

@harvey186 meant from here

2 Likes

yes, sorry, my link was my personal edrive link :((

Yes, that got me quite confused at first, but I was able to find it by searching around the forum. Thank you for pointing it out @LEPT.

After a few building environment adjustments, the repo sync is underway. I’ll let it run tonight and see the progress tomorrow. Thanks again for kindly helping me :smiley:

I want to have signature spoofing and microG. I answered yes to all the 1312.sh script questions except repo sync. (Since it is finished)

I’m not sure what to do here : Should I create a file (or a folder ?) called ‘base’ in /home/human/PIE/.repo/projects/frameworks ?

have you copied this patch to /frameworks/base folder ?

By the way, the patch makes no sense. You will lost one ‘tick’ in MicroG Selfcheck and Apps which are needed signature Spoofing will still not work. Have a look here Make /e/ OS ROM Signature Spoofing microG ready

First I put the patch in the PIE folder, and it returned the image I sent in my previous comment.

Then I tried putting it in a newly created base folder : /home/human/PIE/.repo/projects/frameworks/base as you suggested. It didn’t work either.

Or maybe it is the base.git folder you’re referring to ?

Now when I try ro run the script, it closes after 0.5 second and I’m not able to see what the errors are. It also deletes the temp folder.

How do I fix this ? Delete everything and start again ?

no .repo or any other folder. The patch you can run first after a complete repo sync. So first run the script without patching.When repo sync is finished and build starts, you can stop with CTRL+C
Than, if you really want destroy the MicroG setup and use the patch, put the patch file in above folder and start the script once more

1 Like

Okay so the repo sync is (as far as I know) done correctly. I’m trying without patching this time. Now it says there’s an error

error: cts/error_prone_rules.mk: No such file or directory
12:17:36 ckati failed with: exit status 1

Here’s a screenshot:

And here’s the complete terminal content when I run ./1312.sh output.txt (In order to have acces to the text, because if I just execute with ./1312.sh, the terminal closes and I cannot read what the error is.) I read that there are build log files but I don’t know where they are.

pls check if this part was running

echo ‘move back needed folders’
mkdir prebuilts/prebuiltapks
mv temp/prebuiltapks/BlissLauncher prebuilts/prebuiltapks/BlissLauncher
mv temp/prebuiltapks/Mail prebuilts/prebuiltapks/Mail

mkdir packages/apps
mv temp/apps/AppDrawer packages/apps/AppDrawer
mv temp/apps/Backgrounds packages/apps/Backgrounds
mv temp/apps/BasicSmsReceiver packages/apps/BasicSmsReceiver
mv temp/apps/Bluetooth packages/apps/Bluetooth
mv temp/apps/Car packages/apps/Car
mv temp/apps/CarrierConfig packages/apps/CarrierConfig
mv temp/apps/CellBroadcastReceiver packages/apps/CellBroadcastReceiver
mv temp/apps/CertInstaller packages/apps/CertInstaller
mv temp/apps/DocumentsUI packages/apps/DocumentsUI
mv temp/apps/EmergencyInfo packages/apps/EmergencyInfo
mv temp/apps/LineageCustomizer packages/apps/LineageCustomizer
mv temp/apps/LineageParts packages/apps/LineageParts
mv temp/apps/Nfc packages/apps/Nfc
mv temp/apps/PackageInstaller packages/apps/PackageInstaller
mv temp/apps/PhoneCommon packages/apps/PhoneCommon
mv temp/apps/Profiles packages/apps/Profiles
mv temp/apps/Settings packages/apps/Settings
mv temp/apps/SettingsIntelligence packages/apps/SettingsIntelligence
mv temp/apps/SetupWizard packages/apps/SetupWizard
mv temp/apps/StorageManager packages/apps/StorageManager
mv temp/apps/Updater packages/apps/Updater
mkdir packages/apps/Email
mv temp/apps/Email/emailcommon packages/apps/Email/emailcommon

The last 2 points seems missing !!!

and the 1312.sh should show every step in terminal. How do you call it ? bash 1312.sh ?

EDIT: I have just started the script. the log is running/showing in terminal

  1. I checked the terminal content I put in my previous post, and the part with all those mv lines you mention is not in it.

  2. When you write The last two points seems missing, do you mean those two ?
    mkdir packages/apps/Email
    mv temp/apps/Email/emailcommon packages/apps/Email/emailcommon

  3. I start the script with ./1312.sh as mentioned in your guide. Starting the script with bash 1312.sh yields the same result.

  4. Could there be files missing in my sources ? Or maybe something wrong with my building environment ?

  • I installed the build packages mentioned in the Lineage guide for zeroltexx.
  • I think openjdk 1.9 is by default for Pie so I changed nothing
  • I enabled ccache and set it at 50gb
  • I read somewhere that this command
    export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G" allows to prevent building failures. It seems it is present in 1312a.sh but not in 1312.sh.

Once again, I really appreciate your help, danke sehr !

No, the error shows that the script isn’t working as expected.
You can do some things:

  1. Check your sources. Are in packages/apps the apps removed? (It seems so).
  2. Is the temp folder available? If yes,
    Run manually
    mkdir packages/apps/Email

mv temp/apps/Email/emailcommon packages/apps/Email/emailcommon

  1. Run commands from script manually to check if one or more are fail

And always start now script with ‘repo sync = N’ :wink:

  1. All apps can be found in PIE/packages/apps, the Email one too. This is a screenshot of the folder.

and another screenshot of the content of the emailcommon folder.

  1. When I run 1312.sh and it fails, the temp folder disappears. I create it before each build attempt. The mkdir command does not work because “file already exists”.
    As for the mv command, there is no temp folder after the build fails, so there’s nothing to move, and packages/apps/Email/emailcommon already exists.

  2. I will try this the commands from the script manually and keep you updated.

1 Like

I tried the following commands one by one, checking each time that it had the desired effect. As far as I could tell, each works fine. The errors only happen when I start the brunch zeroltexx command.

I do not understand why the email app is copied rather than moved like the other apps.

Also, why is temp moved to /tmp and not a created tmp directory in the PIE directory ?

mkdir temp
mv prebuilts/prebuiltapks temp
mv packages/apps temp

mkdir prebuilts/prebuiltapks

mv temp/prebuiltapks/BlissLauncher prebuilts/prebuiltapks/BlissLauncher
mv temp/prebuiltapks/Mail prebuilts/prebuiltapks/Mail
mv temp/prebuiltapks/MozillaNlpBackend prebuilts/prebuiltapks/MozillaNlpBackend
mv temp/prebuiltapks/NominatimNlpBackend prebuilts/prebuiltapks/NominatimNlpBackend



mv temp/prebuiltapks/com.google.android.maps prebuilts/prebuiltapks/com.google.android.maps
mv temp/prebuiltapks/GmsCore prebuilts/prebuiltapks/GmsCore
mv temp/prebuiltapks/GsfProxy prebuilts/prebuiltapks/GsfProxy
mv temp/prebuiltapks/FakeStore prebuilts/prebuiltapks/FakeStore

mkdir packages/apps
mv temp/apps/AppDrawer packages/apps/AppDrawer
mv temp/apps/Backgrounds packages/apps/Backgrounds
mv temp/apps/BasicSmsReceiver packages/apps/BasicSmsReceiver
mv temp/apps/Bluetooth packages/apps/Bluetooth
mv temp/apps/Car packages/apps/Car
mv temp/apps/CarrierConfig packages/apps/CarrierConfig
mv temp/apps/CellBroadcastReceiver packages/apps/CellBroadcastReceiver
mv temp/apps/CertInstaller packages/apps/CertInstaller
mv temp/apps/DocumentsUI packages/apps/DocumentsUI
mv temp/apps/EmergencyInfo packages/apps/EmergencyInfo
mv temp/apps/LineageCustomizer packages/apps/LineageCustomizer
mv temp/apps/LineageParts packages/apps/LineageParts
mv temp/apps/Nfc packages/apps/Nfc
mv temp/apps/PackageInstaller packages/apps/PackageInstaller
mv temp/apps/PhoneCommon packages/apps/PhoneCommon
mv temp/apps/Profiles packages/apps/Profiles
mv temp/apps/Settings packages/apps/Settings
mv temp/apps/SettingsIntelligence packages/apps/SettingsIntelligence
mv temp/apps/SetupWizard packages/apps/SetupWizard
mv temp/apps/StorageManager packages/apps/StorageManager
mv temp/apps/Updater packages/apps/Updater

mkdir packages/apps/Email
cp -R temp/apps/Email/emailcommon packages/apps/Email


rm -r /tmp/zeroltexx
mkdir /tmp/zeroltexx
mv temp /tmp/zeroltexx

source build/envsetup.sh
croot
brunch zeroltexx

Because than the bud fails, because it uses the temp folder for building. It’s stupid, but that the sh…t Android build language.

Because the build needs the emailcommon files. If you still stuck. copy the full email folder back, incl the emailcommon.