[Guide-Tool][Linux] Projekt ScriBt v2.2.1 [Build-A-ROM][Newbie-Friendly]

Arvind7352

Senior Member
Sep 26, 2014
934
1,414
0
Mumbai
[~] Projekt ScriBt [~]




Projekt ScriBt, is a Bash Shell Script which helps a Aspiring Developer to build an Android ROM, in an understandable way :highfive:

Only for Serious students
Umm, you're in Chef Central right ? :D

It is recommended to view this thread in a Browser (Web/Mobile)

        

These Badges describe various aspects of this Project.


Please take a read through the Disclaimer before proceeding
[!] About the Guide-Tool

[>] To explain the usage and purpose of every relevant command to the user, in an understandable representation.
[>] Helping the user in understanding any task involved in building a ROM.
[>] Preparing the System for building Android.
[>] To automate the entire process the user has undergone, based on the user responses to complete working with ScriBt. This configuration can also be shared with other people using ScriBt.
[>] It is meant to be a useful Guide, not a Spoon-Feeder (I'd say this as many times as I could) by virtue of it's Interactive Nature.

[!] Special Mention on XDA Portal


Link to XDA Portal
Thanks XDA-Developers for bringing this thread in the XDA Portal!

[!] ScriBt in Action




[?] What do I require

1. A Linux PC (with Bash shell) meeting these Requirements
2. Working Internet Connection
3. A Person of Interest (You)
4. Device Sources - The Device, Kernel, and Vendor tree
5. A Guide to help you understand concepts on Android ROM Development
6. Glancing through Post #3 :laugh: (Glossary and F.A.Q.)
7. Anything Else ?

[!] Supported Distributions

OSes are supported if they're based on Ubuntu/Debian or ArchLinux, so that Installation of Build Dependencies works properly
[>] Ubuntu
[>] Ubuntu's Official / Unofficial Flavors - Kubuntu, Lubuntu, Xubuntu, Builduntu VM, Ubuntu Budgie, etc.
[>] ArchLinux & Distros based on it - Tested on Manjaro Linux, Antergos
[>] Linux Mint
[>] Debian

Other Linux Distributions would be added if reported working by an user.

[!] Usual Sequence of Actions

Each Step is Hyperlinked to it's corresponding Wiki page, take a look.

ToolsInitSyncPre-BuildBuild


[?] Sounds Interest!ng, How shall I get started

Install git before proceeding

Ubuntu 14.xx and Older
Code:
sudo apt-get install git -y
Ubuntu 15.xx and Newer
Code:
sudo apt install git -y
Arch Linux
Code:
sudo pacman -Syu git
1. Open a Terminal and execute this command
Code:
git clone https://github.com/ScriBt/ScriBt -b master <name> && cd <name>;
where <name> is the name of the folder under which ScriBt would be cloned
k
2. Now that you’ve cloned the script, start using it with the usages below...
Code:
[B][COLOR="green"][[email protected][/COLOR] scribt[COLOR="green"]]$[/COLOR][/B] bash ROM.sh usage

[B][COLOR="blue"][!][/COLOR] Usage:
[/B]
To use ScriBt situated in Current Directory (irrespective of its presence in PATH)

	bash ./ROM.sh (Interactive Usage)
	bash ./ROM.sh automate (Automated Usage)
	bash ./ROM.sh version (For showing Version of ScriBt)
	bash ./ROM.sh usage (To get these usage statements)

To use ScriBt situated in PATH

	bash ROM.sh (Interactive Usage)
	bash ROM.sh automate (Automated Usage)
	bash ROM.sh version (For showing Version of ScriBt)
	bash ROM.sh usage (To get these usage statements)


[!] Credits - Thanks [!]
Projekt ScriBt has come all the way along till here, and many people deserve credits for it...

I'd like to thank...

All the ROM Developers for their Dedication towards Android ROM Development, and Linux Shell Programming

@jackeagle - For his Awesome Guide to build a ROM, an Inspiration!
@Adrian DC - For his Contributions and Support throughout the Entire Development of ScriBt
@nosedive - For adding ArchLinux support to ScriBt
#TeamSanam - For helping and supporting this project with their Experiences :confused:
@akhilnarang - For providing Initial support and providing usefulness to ScriBt
@TimSchumi - ScriBt contributor :D
CCAtAlvis - For ScriBt's Website Development
@CubeDev - For his contribution of showing build completion time
@Araib93 & @STRYDER~007 - For helping out with thread implementation

You users, for supporting and helping out with it's current Development :angel: :highfive:


Several Bash Resources in the Internet

(Links are unordered)

StackOverflow - For being my Teacher

bash.cyberbiti.biz
Linux from Scratch
The Linux Documentation Project
wiki.bash-hackers.org and www.gnu.org for ANSI C Quoting
Ryan's Tutorials - Simple and Useful Bash Resource
Understanding the Working of bash in an OS
LinuxCommand.org
Greg's Wiki
Advancing in the Bash Shell - by samrowe.com

Feel free to add up resources which you may feel useful to others, by posting or PMing me


#HappyScriBting

XDA:DevDB Information
Projekt ScriBt, Tool/Utility for the Chef Central

Contributors
Arvind7352
Source Code: https://github.com/ScriBt/ScriBt


Version Information
Status: Beta
Current Stable Version: v0 (Hello World)
Stable Release Date: 2016-05-07
Current Beta Version: v2.2.1
Beta Release Date: 2017-08-09

Created 2016-11-19
Last Updated 2017-08-15
 
Last edited:

Arvind7352

Senior Member
Sep 26, 2014
934
1,414
0
Mumbai
Changelog


For every new version released, a commit link is posted that mentions the changes in the new release.
ScriBt version 2.1.2 (Current)
Release Post
Changelog

ScriBt version 2.1.1
Release Post
Changelog

ScriBt version 2.1
Release Post
Changelog

Older Versions:
ScriBt version 2.00
Release Post
Changelog

ScriBt v1.89
Release Post
Changelog

ScriBt v1.87
Release Post
Changelog

ScriBt v1.74
Release Post
Changelog

ScriBt v1.67
Changelog

ScriBt v1.64
Changelog

ScriBt v1.63
Compare

ScriBt v1.61 :
32ce2bb

ScriBt v1.60 :
d601fd7 (08/01/17)

2805078 (06/01/17)

ScriBt v1.57 : 32a136e


ScriBt v1.55 :
f6abcd9

c4c05aa

ScriBt v1.52 : 1f066ff

ScriBt 1.45 -> 1.50 :

c89448f

6c0a95c

91ef47b

9f4d5aa

fa128bf

ScriBt v1.44 : 024c43b

ScriBt v1.43 : d13188b

ScriBt v1.42 : 4e8055a

ScriBt v1.41 : 013c87d

ScriBt v1.40 : cbee474

ScriBt v1.39 : 312f192

ScriBt v1.38 : 2d627e0

ScriBt v1.37 : 85d6a15

ScriBt v1.36 : c33b581

ScriBt v1.35 : 53e5eb0

ScriBt v1.34 : 68fab43

ScriBt v1.33 : Initial Public Release, Hello XDA!

v0.01 -> v1.32 - Development Releases

If you want to take a look at ScriBt version 0 (before uploading it to GitHub), it's Here


Status

[!] Future Developments : (no ETAs please)

[>] Wiki -> GitHub Pages transition [DONE] - https://scribt.github.io
[>] Command Explanation (Implemented, Under testing) [v2.00+]
[>] Switch to Git Tags for Versioning (under testing) [v2.00+]
[>] Custom Toolchain related Things (Just an Idea, a pretty rough one)
[>] Building Individual Android targets (such as Kernel, Recovery etc.)
[>] RoomService (Custom Manifest) Generator (to be shipped Soon™) [v2.1+]
[>] Share your Ideas if any!
[!] GitHub Organization : https://github.com/ScriBt

[!] Issues on GitHub repo : https://github.com/ScriBt/ScriBt/issues

[!] ScriBt WebPage : https://scribt.github.io
One Stop place for all Information related to ScriBt

[!] Anyone can help in it's development.

[!] Thread Status :

OP would undergo changes [15 August]

[!] Development - Ongoing
v2.2.1 - OKAY
 
Last edited:

Arvind7352

Senior Member
Sep 26, 2014
934
1,414
0
Mumbai
[!] Glossary :


[*] AutoBot -> When ScriBt is automated, prompts are answered by this (just-like-that) Bot.
[*] shut_my_mouth -> Function which auto-answers the prompts (instead of prompting) when in Automatic Mode
[*] [VARIABLE] -> Value of 'Variable' is asked
eg. [BRANCH] -> User is requested to mention the value of branch in place of '[BRANCH]'
[?] F.A.Q. Time [?]


[?] : I'm having an Issue in using ScriBt, some of it's operations aren't working

[>] Provide me the following Details

  • Device Details - Links to Device Sources
  • ROM Details - The ROM Name, Branch of the ROM you're using
  • Location of the Repo/ScriBt from '/' an example for it is /home/arvind/rom/is/here
  • Version of ScriBt you were using (Refer the file VERSION)
  • Output of ScriBt which you feel erroneous/non-working/stuck
I also have my Academic Life to participate on, so have patience after reporting an Issue. Thanks :)

[?] : Why not execute the script with ./ROM.sh OR . ROM.sh OR source ROM.sh

[>] exit command will close the terminal when script is called in that way, bash ROM.sh runs the script in a separate bash shell, so if the exit command is used, it will terminate that shell and not the terminal in which it was executed.

[?] : Why the name ScriBt

[>] ScriBt gives two meanings, "Script" and the Capitalized letters 'S' and 'B' meaning Sync and Build. It's not a Typo :p

[?] : What to do if i find a flaw/issue with ScriBt

[>] If you find any issue while using ScriBt, don't hesitate to mention the issue in the thread and post terminal output under any Paste-service -> hastebin.com / pastebin.com / gist.github.com

The Issue should be only related to the working of ScriBt, and NOT the Build/Sync Errors.

[?] : I am facing 'X' build error, what to do

[>] Most of the Build errors, relevant or irrelevant to your Device are getting solved as time progresses in many of the threads in the Chef-Central.

The most active thread for reporting your Build issues is HERE

Please have patience while asking for a solution to your problem. Meanwhile, you can search for your Error on similar lines on Google, Search XDA, it's likely that the Error has been solved.

[?] : I have a Non-Linux System, What about Me

[>] Install a Linux Distro. Please.

There are Softwares that allows the user to Virtually Boot any Operating System under a running OS environment.

Some of the known Softwares are Oracle VirtualBox (Free) and VMWare Workstation (Paid). Guides to accomplish this task are available in the Internet.

[?] : I don't have what's so called "Device Sources". Where do I get it

[>] Possible ways...

Search the LineageOS GitHub Organization which contains the largest number of Supported Devices.

Next way is by taking help of GitHub search. Search for Device's codename in the GitHub search, it would return a list of Repositories (default behavior) which contain that name in it. If you got some repositories which are Device trees to build android, you've got it!

Next way and the last way is by Googling. Search for Device's keywords (codename, device name).

[?] : Can you add Non-CAF based ROMs

[>] Added, available from ScriBt v1.40

[?] : Can I contribute to ScriBt

[>] Of course, you can! Contributions are always welcome, either in the GitHub repository (staging branch) OR by requesting it in this thread. Functions are added on the basis of usability by the Developers.

[>] After all, ScriBt is open-source, and is licensed under the GNU GPL version 3

[?] : How did ScriBt take place

[>] After gaining knowledge from several compilations, some interesting Bash Resources, and Inspirations from some people, I thought of creating an Interactive Interface which would help the people gain knowledge in an easier way by various explanations, that's how ScriBt took place.

Development started off on 07th May, 2016.

More F.A.Qs will be added as you start using it :D

An Important Note : ScriBt just makes use of various Linux commands which do the actual work, and deliver it in an Interactive Manner to the users :fingers-crossed:
 
Last edited: