├── README.md ├── aosp.xml ├── aospa.xml ├── default.xml ├── obsolete.xml ├── system.xml ├── vendor.xml └── wlan.xml /README.md: -------------------------------------------------------------------------------- 1 | # Paranoid Android # 2 | 3 | ## Setting up your machine ## 4 | 5 | You must be running a 64-bit Linux distribution and must have installed some packages to build 6 | Paranoid Android. Google recommends using [Ubuntu](http://www.ubuntu.com/download/desktop) for 7 | this and provides instructions for setting up the system (with Ubuntu-specific commands) on 8 | [the Android Open Source Project website](https://source.android.com/source/initializing.html#setting-up-a-linux-build-environment). 9 | 10 | Once you have set up your machine according to the instructions by Google, return here and carry 11 | on with the rest of the instructions. 12 | 13 | ## Grabbing the source ## 14 | 15 | [Repo](http://source.android.com/source/developing.html) is a tool provided by Google that 16 | simplifies using [Git](http://git-scm.com/book) in the context of the Android source. 17 | 18 | ### Installing Repo ### 19 | 20 | ```bash 21 | # Make a directory where Repo will be stored and add it to the path 22 | $ mkdir ~/.bin 23 | $ PATH=~/.bin:$PATH 24 | 25 | # Download Repo itself 26 | $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo 27 | 28 | # Make Repo executable 29 | $ chmod a+x ~/.bin/repo 30 | ``` 31 | 32 | ### Initializing Repo ### 33 | 34 | ```bash 35 | # Create a directory for the source files 36 | # You can name this directory however you want, just remember to replace 37 | # WORKSPACE with your directory for the rest of this guide. 38 | # This can be located anywhere (as long as the fs is case-sensitive) 39 | $ mkdir WORKSPACE 40 | $ cd WORKSPACE 41 | 42 | # Install Repo in the created directory 43 | # Use a real name/email combination, if you intend to submit patches 44 | $ repo init -u https://github.com/AOSPA/manifest -b vauxite 45 | ``` 46 | 47 | ### Downloading the source tree ### 48 | 49 | This is what you will run each time you want to pull in upstream changes. Keep in mind that on your 50 | first run, it is expected to take a while as it will download all the required Android source files 51 | and their change histories. 52 | 53 | ```bash 54 | # Let Repo take care of all the hard work 55 | # 56 | # The -j# option specifies the number of concurrent download threads to run. 57 | # 4 threads is a good number for most internet connections. 58 | # You may need to adjust this value if you have a particularly slow connection. 59 | $ repo sync --current-branch --no-tags -j4 60 | ``` 61 | 62 | #### Syncing specific projects #### 63 | 64 | In case you are not interested in syncing all the projects, you can specify what projects you do 65 | want to sync. This can help if, for example, you want to make a quick change and quickly push it 66 | back for review. You should note that this can sometimes cause issues when building if there is 67 | a large change that spans across multiple projects. 68 | 69 | ```bash 70 | # Specify one or more projects by either name or path 71 | 72 | # For example, enter AOSPA/android_frameworks_base or 73 | # frameworks/base to sync the frameworks/base repository 74 | 75 | $ repo sync PROJECT 76 | ``` 77 | 78 | ## Building ## 79 | 80 | The bundled builder tool `./rom-build.sh` handles all the building steps for the specified device 81 | automatically. As the device value, you just feed it with the device codename (for example, 82 | 'beryllium' for the Pocophone F1). 83 | 84 | ```bash 85 | # Go to the root of the source tree... 86 | $ cd WORKSPACE 87 | # ...and run the builder tool. 88 | $ ./rom-build.sh DEVICE 89 | ``` 90 | 91 | ## Submitting Patches ## 92 | 93 | We're open source and patches are always welcome! 94 | 95 | You can see the status of all patches at [Gerrit Code Review](https://gerrit.aospa.co/). 96 | 97 | ### Following the standard workflow ### 98 | 99 | ```bash 100 | # Start by going to the root of the source tree 101 | $ cd WORKSPACE 102 | 103 | # Create a new branch on the specific project you are going to work on 104 | # For example, `repo start fix-clock AOSPA/android_frameworks_base` 105 | $ repo start BRANCH AOSPA/PROJECT 106 | # You can also use the project path in place of the project name. 107 | # The PROJECT_DIR is the portion after the android_ prefix on 108 | # the AOSPA Github. For example, android_frameworks_base translates 109 | # into the directory frameworks/base. 110 | # This applies to all repo commands that reference projects. 111 | $ repo start BRANCH PROJECT_DIR 112 | 113 | # Go inside the project you are working on 114 | $ cd PROJECT_DIR 115 | 116 | # Make your changes 117 | ... 118 | 119 | # Commit all your changes 120 | $ git add -A 121 | $ git commit -a -s 122 | 123 | # Upload your changes 124 | $ cd WORKSPACE 125 | $ repo upload AOSPA/PROJECT 126 | # or 127 | $ repo upload PROJECT_DIR 128 | ``` 129 | ### Using plain git to upload ### 130 | 131 | ```bash 132 | # Go inside the project you are working on 133 | $ cd PROJECT_DIR 134 | 135 | # Make your changes 136 | ... 137 | 138 | # Commit all your changes 139 | $ git add -A 140 | $ git commit -a -s 141 | 142 | # Upload your changes 143 | $ git push ssh://USERNAME@gerrit.aospa.co:29418/AOSPA/PROJECT HEAD:refs/for/vauxite 144 | ``` 145 | 146 | ### Extra commands for Gerrit ### 147 | 148 | ```bash 149 | # If you desire to upload a change as private use the below command 150 | $ git push ssh://USERNAME@gerrit.aospa.co:29418/AOSPA/PROJECT HEAD:refs/for/vauxite%private 151 | 152 | # If you desire to upload a change as W.I.P(Work in Progress) use the below command 153 | $ git push ssh://USERNAME@gerrit.aospa.co:29418/AOSPA/PROJECT HEAD:refs/for/vauxite%wip 154 | 155 | # After that, if you want to make the commit public you can use the UI tools on AOSPA Gerrit website, or use the below command 156 | $ git push ssh://USERNAME@gerrit.aospa.co:29418/AOSPA/PROJECT HEAD:refs/for/vauxite%remove-private 157 | 158 | # If you want to unset the W.I.P status on your commit, you can use UI tools on AOSPA Gerrit website, or use the below command 159 | $ git push ssh://USERNAME@gerrit.aospa.co:29418/AOSPA/PROJECT HEAD:refs/for/vauxite%ready 160 | ``` 161 | 162 | ### Making additional changes ### 163 | 164 | If you are going to make more changes, you just have to repeat the steps (except for `repo start` 165 | which you should not repeat) while using `git commit --amend` instead of `git commit -a -s` so that 166 | you avoid having multiple commits for this single change. Gerrit will then recognize these changes 167 | as a new patch set and figure out everything for you when you upload. 168 | 169 | ### Squashing multiple commits ### 170 | 171 | Your patches should be single commits. If you have multiple commits laying around, squash them by 172 | running `git rebase -i HEAD~` before uploading. 173 | 174 | ### Writing good commit messages ### 175 | 176 | You will be asked a commit message when you run `git commit`. Writing a good commit message is 177 | often hard, but it is also essential as these messages will stay around with your changes and 178 | will be seen by others when looking back at the project history. 179 | 180 | A few general pointers to keep in mind when writing the commit message are that you should use 181 | imperative as it matches the style used by the `git merge` and `git revert` commands (that means 182 | "Fix bug" is preferred over "Fixes bug", "Fixed bug" and others) and that you should write the 183 | first line of the commit message as a summary of the commit. It should always be capitalized and 184 | followed by an empty line. You might optionally include the project name at the start and try to 185 | keep it to 50 characters when possible as it is used in various logs, including "one line" logs. 186 | 187 | ## Working on translations ## 188 | 189 | If you want to help on translating PA to your desired language(s), you can use Crowdin 190 | which provides an easy interface to submit translations. 191 | 192 | For accessing PA´s Crowdin, visit http://crowdin.aospa.co. 193 | 194 | ## Using our assets ## 195 | 196 | ### Code ### 197 | 198 | Our codebase is licensed under Apache License, Version 2.0 unless otherwise specified. Apache 199 | License 2.0 allows a variety of actions on the content as long as licensing and copyright 200 | notices are retained and included with the code and your changes to the codebase are stated. 201 | 202 | You can read the full license text at http://www.apache.org/licenses/LICENSE-2.0 203 | 204 | ### Images & other assets ### 205 | 206 | Unless otherwise specified, all our assets, including but not limited to images, are licensed 207 | under Creative Commons Attribution-NonCommercial 4.0 International, or CC BY-NC 4.0 for short. 208 | This means that you are allowed to modify the aforementioned assets in any way you want and 209 | you are free to share the originals and/or the modified work. However, you are not allowed 210 | to use the assets for commercial purposes and you must provide attribution at all times which 211 | means you have to include a short note about the license used (CC BY-NC 4.0), the original 212 | author/authors (Paranoid Android Project or AOSPA) and inform about any changes that have been 213 | made. A link to the [website](http://aospa.co/) should usually be included as well. 214 | 215 | You can reach the full legal text at http://creativecommons.org/licenses/by-nc/4.0/ 216 | -------------------------------------------------------------------------------- /aosp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /aospa.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 29 | 30 | 33 | 34 | 37 | 38 | 41 | 42 | 44 | 45 | 47 | 48 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /obsolete.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /vendor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | -------------------------------------------------------------------------------- /wlan.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | --------------------------------------------------------------------------------