Install Lookyloo
|
Requires Python 3.8 or higher, expects Ubuntu 20.04 or more recent. |
Install Lookyloo Dependencies
Install Poetry
Poetry is tool to handle dependency installation as well as building and packaging of Python packages.
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3
More details in the the installation guide.
Install Splash
Splash is a javascript rendering service with an HTTP API. It’s a lightweight browser with an HTTP API, implemented in Python 3 using Twisted and QT5.
You will need a running instance, and the preferred way is via Docker.
| If you installed Lookyloo on Windows, you already installed docker. You only have to execute the second line of the following snippet |
| On Ubuntu, you may want to have a look at this installation guide, which will provide a more recent version of docker. |
And if you just want to get going on linux, here it is:
sudo apt install docker.io
sudo docker pull scrapinghub/splash
Install Redis
Redis: An open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
| Redis should be installed from the source, and the repository must be in the same directory as the one you will be cloning Lookyloo in to. |
In order to compile and test redis, you will need a few packages:
sudo apt-get update
sudo apt install build-essential tcl
git clone https://github.com/antirez/redis.git
cd redis
git checkout 6.2
make
# Optionally, you can run the tests:
make test
cd ..
Install uwhoisd (Optional)
In order to use the Universal Whois you have to install uwhoisd from Lookyloo repository and the whois package:
sudo apt-get update
sudo apt-get install whois
git clone https://github.com/Lookyloo/uwhoisd
cd uwhoisd
poetry install
Then configure the service file
nano etc/systemd/system/uwhoisd.service.sample
sudo cp etc/systemd/system/uwhoisd.service.sample /etc/systemd/system/uwhoisd.service
cd ..
sudo systemctl daemon-reload
sudo systemctl start uwhoisd
sudo systemctl status uwhoisd
If everything is ok, activate the service for reboot
sudo systemctl enable uwhoisd
Install Lookyloo
Prerequisites
-
Poetry is installed.
-
Redis is installed from the source. The repository must be in the same directory as the one you will be cloning Lookyloo in to.
-
Splash is installed.
Procedure
-
Clone the Lookyloo repository.
git clone https://github.com/Lookyloo/lookyloo.git
-
Change directory
cd lookyloo
-
Run the commands:
poetry install echo LOOKYLOO_HOME="'`pwd`'" > .env
If you have error messages about python 2.7, it is an issue with poetry,
and the quick and dirty fix is to edit ~/.poetry/bin/poetry and add a 3 at the end of the line:
|
#!/usr/bin/env python3
instead of
#!/usr/bin/env python
Configuration
-
Initialize the user configuration
cp config/generic.json.sample config/generic.json cp config/modules.json.sample config/modules.json
-
Edit the config files accordingly to your needs: see the
_notes
key in the JSON file. You can also look at the integration page for more information regarding the modules, and the configuration page for the generic configuration options. -
Make sure the configuration files are valid, and pull the 3rd party dependencies for the website
poetry run update --yes
Run Splash
-
From another terminal, run the following command:
sudo docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash --disable-browser-caches
# If you have a lot of ram at hand, you may want to run it this way:
# sudo docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash -s 100 -m 50000 --disable-browser-caches
Note: you may want to remove --disable-browser-caches
, as it is causing issue on some websites (generally, splash segfaults).
Open the website
Unless you changed the default in config/generic.json
, the web interface will be reachable at http://<IP_ADDRESS>:5100/


notice
string, relative path to a file to include in the list of notices for the device
owner
string, vendor who owns this module
package_name
string, the package name of this app. The package name in the manifest file is used if one was not given.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.host, target.android
target_required
list of strings, names of other modules to install on target if this module is installed
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.
override_android_test
override_android_test is used to create an android_app module based on another android_test by overriding
some of its properties.
name
,
arch
,
base
,
certificate
,
compile_multilib
,
device_specific
,
dist
,
enabled
,
host_required
,
init_rc
,
instrumentation_for
,
instrumentation_target_package
,
licenses
,
lineage
,
logging_parent
,
multilib
,
native_bridge_supported
,
notice
,
owner
,
package_name
,
product_specific
,
proprietary
,
ramdisk
,
recovery
,
required
,
soc_specific
,
system_ext_specific
,
target
,
target.host
,
target_required
,
vendor
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
arch
interface
base
string, Name of the base module to be overridden
certificate
string, The name of a certificate in the default certificate directory, blank to use the default product certificate,
or an android_app_certificate module name in the form ":module".
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of strings, names of other modules to install on host if this module is installed
init_rc
list of strings, init.rc files to be installed if this module is installed
instrumentation_for
string
instrumentation_target_package
string, if specified, the instrumentation target package name in the manifest is overwritten by it.
licenses
list of strings, Names of the licenses that apply to this module.
lineage
string, Name of the signing certificate lineage file.
logging_parent
string, the logging parent of this app.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
owner
string, vendor who owns this module
package_name
string, the package name of this app. The package name in the manifest file is used if one was not given.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.host, target.android
target_required
list of strings, names of other modules to install on target if this module is installed
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.
override_runtime_resource_overlay
override_runtime_resource_overlay is used to create a module based on another
runtime_resource_overlay module by overriding some of its properties.
name
,
arch
,
base
,
compile_multilib
,
device_specific
,
dist
,
enabled
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
notice
,
owner
,
package_name
,
product_specific
,
proprietary
,
ramdisk
,
recovery
,
required
,
soc_specific
,
system_ext_specific
,
target
,
target.host
,
target_package_name
,
target_required
,
vendor
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
arch
interface
base
string, Name of the base module to be overridden
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of strings, names of other modules to install on host if this module is installed
init_rc
list of strings, init.rc files to be installed if this module is installed
licenses
list of strings, Names of the licenses that apply to this module.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
owner
string, vendor who owns this module
package_name
string, the package name of this app. The package name in the manifest file is used if one was not given.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.host, target.android
target_package_name
string, the target package name of this overlay app. The target package name in the manifest file is used if one was not given.
target_required
list of strings, names of other modules to install on target if this module is installed
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.
name
,
src
,
arch
,
compile_multilib
,
device_specific
,
dist
,
enabled
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
notice
,
owner
,
product_specific
,
proprietary
,
ramdisk
,
recovery
,
required
,
soc_specific
,
system_ext_specific
,
target
,
target.host
,
target_required
,
vendor
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
src
string
arch
interface
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of strings, names of other modules to install on host if this module is installed
init_rc
list of strings, init.rc files to be installed if this module is installed
licenses
list of strings, Names of the licenses that apply to this module.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
owner
string, vendor who owns this module
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.host, target.android
target_required
list of strings, names of other modules to install on target if this module is installed
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
prebuilt_apis
prebuilt_apis is a meta-module that generates filegroup modules for all
API txt files found under the directory where the Android.bp is located.
Specifically, an API file located at ./<ver>/<scope>/api/<module>.txt
generates a filegroup module named <module>-api.<scope>.<ver>.
It also creates <module>-api.<scope>.latest for the latest <ver>.
Similarly, it generates a java_import for all API .jar files found under the
directory where the Android.bp is located. Specifically, an API file located
at ./<ver>/<scope>/api/<module>.jar generates a java_import module named
<prebuilt-api-module>_<scope>_<ver>_<module>, and for SDK versions >= 30
a java_system_modules module named
<prebuilt-api-module>_public_<ver>_system_modules
name
,
api_dirs
,
compile_multilib
,
device_specific
,
dist
,
enabled
,
host_required
,
init_rc
,
licenses
,
native_bridge_supported
,
notice
,
owner
,
product_specific
,
proprietary
,
ramdisk
,
recovery
,
required
,
soc_specific
,
system_ext_specific
,
target.host
,
target_required
,
vendor
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
api_dirs
list of strings, list of api version directories
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of strings, names of other modules to install on host if this module is installed
init_rc
list of strings, init.rc files to be installed if this module is installed
licenses
list of strings, Names of the licenses that apply to this module.
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
owner
string, vendor who owns this module
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
⊕target.host, target.android
target_required
list of strings, names of other modules to install on target if this module is installed
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.
prebuilt_stubs_sources
prebuilt_stubs_sources imports a set of java source files as if they were
generated by droidstubs.
By default, a prebuilt_stubs_sources has a single variant that expects a
set of `.java` files generated by droidstubs.
Specifying `host_supported: true` will produce two variants, one for use as a dependency of device modules and one
for host modules.
Intended only for use by sdk snapshots.
name
,
srcs
,
host_supported
,
device_supported
,
arch
,
compile_multilib
,
defaults
,
device_specific
,
dist
,
enabled
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
notice
,
owner
,
prefer
,
product_specific
,
proprietary
,
ramdisk
,
recovery
,
required
,
sdk_member_name
,
soc_specific
,
system_ext_specific
,
target
,
target.host
,
target_required
,
vendor
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
srcs
list of strings
host_supported
bool, If set to true, build a variant of the module for the host. Defaults to false.
device_supported
bool, If set to true, build a variant of the module for the device. Defaults to true.
arch
interface
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
defaults
list of strings
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of strings, names of other modules to install on host if this module is installed
init_rc
list of strings, init.rc files to be installed if this module is installed
licenses
list of strings, Names of the licenses that apply to this module.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
owner
string, vendor who owns this module
prefer
bool, When prefer is set to true the prebuilt will be used instead of any source module with
a matching name.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
sdk_member_name
string, Name of the module that this sdk member is representing
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.host, target.android
target_required
list of strings, names of other modules to install on target if this module is installed
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.
runtime_resource_overlay
runtime_resource_overlay generates a resource-only apk file that can overlay application and
system resources at run time.
name
,
aapt_include_all_resources
,
aaptflags
,
additional_manifests
,
arch
,
asset_dirs
,
certificate
,
compile_multilib
,
defaults
,
device_specific
,
dist
,
dont_merge_manifests
,
enabled
,
host_required
,
init_rc
,
licenses
,
lineage
,
manifest
,
min_sdk_version
,
multilib
,
native_bridge_supported
,
notice
,
overrides
,
owner
,
package_name
,
product_specific
,
proprietary
,
ramdisk
,
recovery
,
required
,
resource_dirs
,
resource_libs
,
resource_zips
,
sdk_version
,
soc_specific
,
static_libs
,
system_ext_specific
,
target
,
target.host
,
target_package_name
,
target_required
,
theme
,
vendor
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
aapt_include_all_resources
bool, include all resource configurations, not just the product-configured
ones.
aaptflags
list of strings, flags passed to aapt when creating the apk
additional_manifests
list of strings, paths to additional manifest files to merge with main manifest.
arch
interface
asset_dirs
list of strings, list of directories relative to the Blueprints file containing assets.
Defaults to ["assets"] if a directory called assets exists. Set to []
to disable the default.
certificate
string, the name of a certificate in the default certificate directory or an android_app_certificate
module name in the form ":module".
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
defaults
list of strings
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
dont_merge_manifests
bool, do not include AndroidManifest from dependent libraries
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of strings, names of other modules to install on host if this module is installed
init_rc
list of strings, init.rc files to be installed if this module is installed
licenses
list of strings, Names of the licenses that apply to this module.
lineage
string, Name of the signing certificate lineage file.
manifest
string, path to AndroidManifest.xml. If unset, defaults to "AndroidManifest.xml".
min_sdk_version
string, if not blank, set the minimum version of the sdk that the compiled artifacts will run against.
Defaults to sdk_version if not set.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
overrides
list of strings, Names of modules to be overridden. Listed modules can only be other overlays
(in Make or Soong).
This does not completely prevent installation of the overridden overlays, but if both
overlays would be installed by default (in PRODUCT_PACKAGES) the other overlay will be removed
from PRODUCT_PACKAGES.
owner
string, vendor who owns this module
package_name
string, the package name of this app. The package name in the manifest file is used if one was not given.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
resource_dirs
list of strings, list of directories relative to the Blueprints file containing
Android resources. Defaults to ["res"] if a directory called res exists.
Set to [] to disable the default.
resource_libs
list of strings, list of android_app modules whose resources are extracted and linked against
resource_zips
list of strings, list of zip files containing Android resources.
sdk_version
string, if not blank, set to the version of the sdk to compile against.
Defaults to compiling against the current platform.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
static_libs
list of strings, list of android_library modules whose resources are extracted and linked against statically
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.host, target.android
target_package_name
string, the target package name of this overlay app. The target package name in the manifest file is used if one was not given.
target_required
list of strings, names of other modules to install on target if this module is installed
theme
string, optional theme name. If specified, the overlay package will be applied
only when the ro.boot.vendor.overlay.theme system property is set to the same value.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.
stubs_defaults
name
,
srcs
,
host_supported
,
device_supported
,
aidl
,
annotations_enabled
,
apex_available
,
api_filename
,
api_levels_annotations_dirs
,
api_levels_annotations_enabled
,
api_levels_jar_filename
,
arch
,
arg_files
,
args
,
check_api
,
check_nullability_warnings
,
compile_multilib
,
create_doc_stubs
,
defaults
,
defaults_visibility
,
device_specific
,
dist
,
enabled
,
exclude_srcs
,
filter_packages
,
generate_stubs
,
host_required
,
init_rc
,
installable
,
java_version
,
jdiff_enabled
,
libs
,
licenses
,
local_sourcepaths
,
merge_annotations_dirs
,
merge_inclusion_annotations_dirs
,
multilib
,
native_bridge_supported
,
notice
,
out
,
owner
,
previous_api
,
product_specific
,
proprietary
,
ramdisk
,
recovery
,
removed_api_filename
,
removed_dex_api_filename
,
required
,
sandbox
,
sdk_version
,
soc_specific
,
system_ext_specific
,
system_modules
,
target
,
target.host
,
target_required
,
validate_nullability_from_list
,
vendor
,
vintf_fragments
,
visibility
,
write_sdk_values
name
string, The name of the module. Must be unique across all modules.
srcs
list of strings, list of source files used to compile the Java module. May be .java, .logtags, .proto,
or .aidl files.
host_supported
bool, If set to true, build a variant of the module for the host. Defaults to false.
device_supported
bool, If set to true, build a variant of the module for the device. Defaults to true.
⊕aidl
include_dirs
list of strings, Top level directories to pass to aidl tool
local_include_dirs
list of strings, Directories rooted at the Android.bp file to pass to aidl tool
annotations_enabled
bool, is set to true, Metalava will allow framework SDK to contain annotations.
apex_available
list of strings, Availability of this module in APEXes. Only the listed APEXes can contain
this module. If the module has stubs then other APEXes and the platform may
access it through them (subject to visibility).
"//apex_available:anyapex" is a pseudo APEX name that matches to any APEX.
"//apex_available:platform" refers to non-APEX partitions like "system.img".
Default is ["//apex_available:platform"].
api_filename
string, the generated public API filename by Metalava.
api_levels_annotations_dirs
list of strings, the dirs which Metalava extracts API levels annotations from.
api_levels_annotations_enabled
bool, is set to true, Metalava will allow framework SDK to contain API levels annotations.
api_levels_jar_filename
string, the filename which Metalava extracts API levels annotations from. Defaults to android.jar.
arch
interface
arg_files
list of strings, local files that are used within user customized droiddoc options.
args
string, user customized droiddoc args.
Available variables for substitution:
$(location <label>): the path to the arg_files with name <label>
$$: a literal $
⊕check_api
last_released
ApiToCheck
current
ApiToCheck
ignore_missing_latest_api
bool, The java_sdk_library module generates references to modules (i.e. filegroups)
from which information about the latest API version can be obtained. As those
modules may not exist (e.g. because a previous version has not been released) it
sets ignore_missing_latest_api=true on the droidstubs modules it creates so
that droidstubs can ignore those references if the modules do not yet exist.
If true then this will ignore module references for modules that do not exist
in properties that supply the previous version of the API.
There are two sets of those:
* Api_file, Removed_api_file in check_api.last_released
* New_since in check_api.api_lint.new_since
The first two must be set as a pair, so either they should both exist or neither
should exist - in which case when this property is true they are ignored. If one
exists and the other does not then it is an error.
⊕api_lint
enabled
bool
new_since
string, If set, performs api_lint on any new APIs not found in the given signature file
baseline_file
string, If not blank, path to the baseline txt file for approved API lint violations.
check_nullability_warnings
string, a file containing expected warnings produced by validation of nullability annotations.
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
create_doc_stubs
bool, if set to true, allow Metalava to generate doc_stubs source files. Defaults to false.
defaults
list of strings
defaults_visibility
list of strings, Controls the visibility of the defaults module itself.
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
exclude_srcs
list of strings, list of source files that should not be used to build the Java module.
This is most useful in the arch/multilib variants to remove non-common files
filegroup or genrule can be included within this property.
filter_packages
list of strings, list of package names that should actually be used. If this property is left unspecified,
all the sources from the srcs property is used.
generate_stubs
bool, if set to false then do not write out stubs. Defaults to true.
TODO(b/146727827): Remove capability when we do not need to generate stubs and API separately.
host_required
list of strings, names of other modules to install on host if this module is installed
init_rc
list of strings, init.rc files to be installed if this module is installed
installable
bool, If set to false, don't allow this module(-docs.zip) to be exported. Defaults to true.
java_version
string, If not blank, set the java version passed to javadoc as -source
jdiff_enabled
bool, If set to true, .xml based public API file will be also generated, and
JDiff tool will be invoked to genreate javadoc files. Defaults to false.
libs
list of strings, list of java libraries that will be in the classpath.
licenses
list of strings, Names of the licenses that apply to this module.
local_sourcepaths
list of strings, list of directories rooted at the Android.bp file that will
be added to the search paths for finding source files when passing package names.
merge_annotations_dirs
list of strings, a list of top-level directories containing files to merge qualifier annotations (i.e. those intended to be included in the stubs written) from.
merge_inclusion_annotations_dirs
list of strings, a list of top-level directories containing Java stub files to merge show/hide annotations from.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
out
list of strings, names of the output files used in args that will be generated
owner
string, vendor who owns this module
previous_api
string, user can specify the version of previous released API file in order to do compatibility check.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
removed_api_filename
string, the generated removed API filename by Metalava.
removed_dex_api_filename
string, the generated removed Dex API filename by Metalava.
required
list of strings, names of other modules to install if this module is installed
sandbox
bool, If set, metalava is sandboxed to only read files explicitly specified on the command
line. Defaults to false.
sdk_version
string, if not blank, set to the version of the sdk to compile against.
Defaults to compiling against the current platform.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
system_modules
string, When targeting 1.9 and above, override the modules to use with --system,
otherwise provides defaults libraries to add to the bootclasspath.
Defaults to "none"
target
interface
⊕target.host, target.android
target_required
list of strings, names of other modules to install on target if this module is installed
validate_nullability_from_list
string, a file containing a list of classes to do nullability validation for.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.
write_sdk_values
bool, if set to true, collect the values used by the Dev tools and
write them in files packaged with the SDK. Defaults to false.
tradefed_java_library_host
tradefed_java_library_factory wraps java_library and installs an additional
copy of the output jar to $HOST_OUT/tradefed.
name
,
srcs
,
apex_available
,
arch
,
compile_multilib
,
defaults
,
device_specific
,
dist
,
enabled
,
errorprone
,
exclude_java_resource_dirs
,
exclude_java_resources
,
exclude_srcs
,
exported_plugins
,
host_required
,
include_srcs
,
init_rc
,
installable
,
jacoco
,
jarjar_rules
,
java_resource_dirs
,
java_resources
,
java_version
,
javac_shard_size
,
javacflags
,
kotlincflags
,
libs
,
licenses
,
manifest
,
multilib
,
native_bridge_supported
,
notice
,
openjdk9
,
owner
,
patch_module
,
permitted_packages
,
plugins
,
product_specific
,
proprietary
,
proto
,
ramdisk
,
recovery
,
required
,
services
,
soc_specific
,
static_kotlin_stdlib
,
static_libs
,
system_ext_specific
,
target
,
target.host
,
target_required
,
use_tools_jar
,
vendor
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
srcs
list of strings, list of source files used to compile the Java module. May be .java, .logtags, .proto,
or .aidl files.
apex_available
list of strings, Availability of this module in APEXes. Only the listed APEXes can contain
this module. If the module has stubs then other APEXes and the platform may
access it through them (subject to visibility).
"//apex_available:anyapex" is a pseudo APEX name that matches to any APEX.
"//apex_available:platform" refers to non-APEX partitions like "system.img".
Default is ["//apex_available:platform"].
arch
interface
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform
defaults
list of strings
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
targets
list of strings, copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
enabled
bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
⊕errorprone
javacflags
list of strings, List of javac flags that should only be used when running errorprone.
exclude_java_resource_dirs
list of strings, list of directories that should be excluded from java_resource_dirs
exclude_java_resources
list of strings, list of files that should be excluded from java_resources and java_resource_dirs
exclude_srcs
list of strings, list of source files that should not be used to build the Java module.
This is most useful in the arch/multilib variants to remove non-common files
exported_plugins
list of strings, List of modules to export to libraries that directly depend on this library as annotation processors
host_required
list of strings, names of other modules to install on host if this module is installed
include_srcs
bool, If set to true, include sources used to compile the module in to the final jar
init_rc
list of strings, init.rc files to be installed if this module is installed
installable
bool, If set to true, allow this module to be dexed and installed on devices. Has no
effect on host modules, which are always considered installable.
Default: true
⊕jacoco
include_filter
list of strings, List of classes to include for instrumentation with jacoco to collect coverage
information at runtime when building with coverage enabled. If unset defaults to all
classes.
Supports '*' as the last character of an entry in the list as a wildcard match.
If preceded by '.' it matches all classes in the package and subpackages, otherwise
it matches classes in the package that have the class name as a prefix.
exclude_filter
list of strings, List of classes to exclude from instrumentation with jacoco to collect coverage
information at runtime when building with coverage enabled. Overrides classes selected
by the include_filter property.
Supports '*' as the last character of an entry in the list as a wildcard match.
If preceded by '.' it matches all classes in the package and subpackages, otherwise
it matches classes in the package that have the class name as a prefix.
jarjar_rules
string, if not blank, run jarjar using the specified rules file
java_resource_dirs
list of strings, list of directories containing Java resources
java_resources
list of strings, list of files to use as Java resources
java_version
string, If not blank, set the java version passed to javac as -source and -target
javac_shard_size
int64, The number of Java source entries each Javac instance can process
javacflags
list of strings, list of module-specific flags that will be used for javac compiles
kotlincflags
list of strings, list of module-specific flags that will be used for kotlinc compiles
libs
list of strings, list of of java libraries that will be in the classpath
licenses
list of strings, Names of the licenses that apply to this module.
manifest
string, manifest file to be included in resulting jar
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architecures (also known as native bridge binary)
notice
string, relative path to a file to include in the list of notices for the device
⊕openjdk9
srcs
list of strings, List of source files that should only be used when passing -source 1.9 or higher
javacflags
list of strings, List of javac flags that should only be used when passing -source 1.9 or higher
owner
string, vendor who owns this module
patch_module
string, When compiling language level 9+ .java code in packages that are part of
a system module, patch_module names the module that your sources and
dependencies should be patched into. The Android runtime currently
doesn't implement the JEP 261 module system so this option is only
supported at compile time. It should only be needed to compile tests in
packages that exist in libcore and which are inconvenient to move
elsewhere.
permitted_packages
list of strings, If not empty, classes are restricted to the specified packages and their sub-packages.
This restriction is checked after applying jarjar rules and including static libs.
plugins
list of strings, List of modules to use as annotation processors
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
⊕proto
output_params
list of strings, List of extra options that will be passed to the proto generator.
type
string, Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
plugin
string, Proto plugin to use as the generator. Must be a cc_binary_host module.
include_dirs
list of strings, list of directories that will be added to the protoc include paths.
local_include_dirs
list of strings, list of directories relative to the bp file that will
be added to the protoc include paths.
canonical_path_from_root
bool, whether to identify the proto files from the root of the
source tree (the original method in Android, useful for
android-specific protos), or relative from where they were
specified (useful for external/third party protos).
This defaults to true today, but is expected to default to
false in the future.
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
list of strings, names of other modules to install if this module is installed
services
list of strings, List of files to include in the META-INF/services folder of the resulting jar.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
static_kotlin_stdlib
bool, If true, package the kotlin stdlib into the jar. Defaults to true.
static_libs
list of strings, list of java libraries that will be compiled into the resulting jar
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.host, target.android
target_required
list of strings, names of other modules to install on target if this module is installed
use_tools_jar
bool, Add host jdk tools.jar to bootclasspath
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vintf_fragments
list of strings, VINTF manifest fragments to be installed if this module is installed
visibility
list of strings, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for
more details.


Watch yourself.
This is the best thing you can do for any person.
Watch that person. Do this for yourself!
Be there and see what's going on.
You don't need to be all metaphysical, you don't need magickal energy or qi.
You can look at yourself the way you look at anyone or anything.
Just see what's there. Witness the form, or the feeling, or idea.
This is meditation. It is called zen, or dhyana, awareness.
You are beautiful. Your body is alive.
You are that body. Stand up, drop everything, and feel that body.
Notice that. That is real.
Thought and emotion can play in you without any real consequence.
Your body is for real.
Be there!
Science tells us that the world is made of particles and chunks of particles.
I'm telling you that you are made out of soul!
Do you know what you need to do? Right now, I'm gonna tell you what I need to do. I need to move this body. I need to practice awareness. I need to speak the truth where people can hear it. This place, any time. Very much love to all of you, human beings, beloved, soul children of the good.


Login now using your Google account.
You will be visible to other users for 3600 seconds.
You can update your location and get the current location of your teammates:


Multilingualism in DH. Notes from the DHSI2014 Unconference Session
A few days ago during DHSI2014 I organized an unconference session to discuss matters relating to multilingualism in DH. If you’ve been following my work in the last few months, the issue of knitting an exchange network of DH scholarship in various languages has been on my mind. The most important initiative I’d led until now was during DayofDH 2014 #trDH (short for translate DH) which gathered the efforts of about a dozen of colleagues from Mexico, Spain, USA, and Italy to translate important, foundational (some of them definitional) texts written originally in Spanish.At the time most of the translations were done into English, with a few exceptions. Pressing questions emerging out of #trDH were whether translations into English really ensured a wider audience for these texts, whether it was a concession to a field widely dominated by the English language, and perhaps more significant whether it would reach colleagues who–like many of the #trDH participants–speak English as a second language. Simply put, whether #trDH was promoting a more global scholarship in the long term or not.
It was with those questions in mind that I proposed the DHSI unconference session. I was hoping to get input from colleagues in other DH linguistic communities, as I sometimes am heavily biased to the Spanish speaking one. As a launching pad I proposed two broad lines of discussion: 1) Issues of standards and tools that require various kinds of (cultural & linguistic) translation/adaptation: TEI, RDF, etc. and 2) Issues of networking and facilitating exchanges with scholarship produced in many different languages mainly through translation.
Although the majority of the 50 minutes were spent on the second issue, we all agreed that work arounds were possible with tools and standards as well as highly productive, even when constraints and limitations are frequently faced. However, the prospect of translating those seemed hugely daunting if not outright unrealistic. The key then, one of the participants added, was using them reflectively and critically in order to incorporate diverse ways of knowledge construction, a win-win in practice and theory. Similarly, someone else asked to be reflective of the kinds of collaborations (international, perhaps) that ensure that standards are adaptable (and fruitfully adapted), compatible, and, ultimately, enriched from their various uses. This certainly requires its own unconference session and more, so I will leave it there.
In matters of translation, some of the biggest concerns we all shared were whether language choice was determined by who our intended audience is, and the dangers of fragmented conversations because of this. In other words, do we speak distinct DH “dialects” depending on audience? Depending on our sources? Are we having different conversations that don’t necessarily cross in different DH communities because of this? It would seem so. Then, assuming that translation can be a way to remedy this and really has the potential to open up channels of communication around distinct linguistic DH communities, the issue that must be tackled is viability and sustainability considering how hard and resource expensive translation is.
Some of us acknowledged a position of “language mediator”–a personal concern of mine– and what it means to translate not just in terms of language, but especially and, in my opinion, dangerously, in terms of context and what one can be exposed to depending on where we’re based, who we meet, who we read, etc. in contrast to others. Another issue with this position, we discussed, is the individual dimension these endeavors usually take, and thus their instability and difficulty to become more institutionalized and active practices in our organizations. Steering away from the individual figure, we moved onto the community’s responsibility/commitment to do it. On the one hand, it seems like a great idea to make the translation of DH texts in various languages a community endeavor. Good examples of this are again #trDH, and the GO::DH essay contest. Similarly, as Alex Gil mentioned, also at DHSI2014, at GO::DH “we open language to the community, where a translation of the website or any forum post depends on the community itself.” These practices really become a community building exercise and show the priceless willingness and availability of many. Nevertheless, I worry this kind of practice might continue to reinforce networks already in place, instead of reaching out to those outside of them. A token of this is how today, Kevin Baumer on behalf of the DH2014 organizing committee reported vía email that there will be about 600 participants in the conference, while a couple of weeks ago the GO::DH list stood at 250 (I’m sure that’s grown since June 6th). In other words, not everybody is/can/must be invested in this.
Reflecting on the hard work translation means and how impossible it sometimes seems to be able to translate our work and others’, the discussion moved on to the work of professional translators, taking the matter away from the academic community itself. Though lots of academics do translate occasionally, this goes without saying, for most of us, translation is not our primary activity. In that sense, we should be fair to the people whose work is to translate and make a living out of it and perhaps adopt a really institutional practice to translation in a model akin to EU, UN, etc. in order, as Alex also put it to “place the burden on the hegemon.” Of course, the issue then would be to hire translators and raise the funds to pay them fairly–which would also need to happen from the top down whether within our organizations or our journals, as we couldn’t expect translation expenses to be footed by authors.
In conclusion, two understatements that must be kept in mind: 1) There are still more questions hanging in the air than (even provisional) answers. We have work to do here. 2) The issue of fostering a multilingual global Digital Humanities community is no easy task. Again: We have work to do here.
But also: through discussions such as this, it is increasingly becoming more evident that, first of all and as it should be expected, particular expertises are needed. Likewise, on top of community endeavors and willingness, we should be moving towards a more systematic approach in order to learn about the broader field and expand among other things, one of the pillars of scholarship: our set of sources, references and bibliographies.


Getting Started Developing KUnit
Setting Up Your Work Environment
Follow the instructions at Using KUnit.
Familiarize Yourself with KUnit’s Design
KUnit’s design is discussed in the KUnit Design section.
Contributing to code in the Linux kernel
Please follow the guide in the Linux kernel: https://www.kernel.org/doc/html/latest/#introduction-to-kernel-development
In addition, remember to CC<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Contributing to code outside of the Linux kernel
This section is for contributing code to repos that live outside of https://git.kernel.org.
This only applies to the deprecated kunit/alpha/master
branch and the other
repos (like the one that hosts this site!).
See Getting Started Contributing to non-kernel KUnit repos for more details.


Data collected for this application is for academic purposes only. Built at Cornell University by bg379, hju3, nsk43, and pmc85. Contact<EMAIL_ADDRESS>Click to remove from results
Suggestion score: 98.7
View on Steam Use game as query
Data from your Steam account helps us personalize search results and suggest games based on your library. We don't store any of your data on our server, and don't require a login because we only use publicly accessible information. This site is not associated with Valve Corp.
Invalid ID. Please try again.


CONNECT
Feeds
/*student profile*/
| Image |
UserName |
Questions asked :
Answers :
Edit Profile
College:
Department:
Year:
Description:
/*alumni profile*/
| Image |
UserName |
Questions asked :
Answers :
Edit Profile
College ( B.E ):
Department ( M.E ):
Batch of:
Current Position:
Description:


Discovery Log: WEBF1
Will Green: UP853829
September 2017
Abstract
In this context, a discovery log is used as an environment to document what I have completed or achieved throughout WEBF1 practicals.
Introduction
Starting University during September of 2017, one of my units requires us to journal a discovery log, I prefer the term learning log because I don't necessarily learn in every lecture or practical.
Logs
In this section, I will give details to what was achieved throughout first year practicals for WEBF1. This "Discovery Log" of mine will be integrated with one of the courseworks set, I believe it is to turn this log into HTML pages.
Zero: 18th - 24th Sept
Today; on Friday 22/09/17, We were introduced to our lecturers and the course; however, it was not an actual practical. As part of the introduction week, we simply went over how to use Moodle for our Module and what is expected of us.
One: 25th - 1st Sept/ Oct
Today; on Friday 29/09/17, I had my first formal WEBF1 practical of the academic year, this entailed a large majority of the session being dedicated to introductions between lectures and fellow peers, it also allowed the class to be informed of any introductory projects we are going to have. Introductory segments were allocated to the overview of the unit, breaking down each module to a few areas:
- Performance for each module.
- What each module contains.
- What is expected of us.
- Work-load.
As web-dev goes; it is axiomatic that servers are involved, the University has generously paid for and provided the details for each student to own a domain on Google’s cloud servers, we have access to a personal virtual environment to perform task that may aid our work. To which, I installed Metasploit.
Two: 2nd - 8th Oct
Today; Friday 06/10/17, As a class, we had the task to individually index and locate websites as part of a questionnaire, we had to find “horrific” websites such as: www.lingscars.com or www.hosanna1.com. Other questions related to similar areas; however, differed to examples such as: websites that I favored or disliked, the second part of this task was to justify why I liked or disliked each URL.
Three: 9th - 15th Oct
Today; Friday 13/10/17, We were tasked to work in groups of three to four people to complete a Google Doc based on Web Security, we had five sections to input data, mainly opinions, the subject headers were:
- Information generated about myself on a daily basis.
- How it is captured.
- How it is shared.
- How it can be secured.
We had to list several ways of how information is created regarding oneself on mediums like social media. We concluded how much personal data people upload on a daily basis, this can be shocking because of how much information third party people can gather. This can be, geolocation via sign in and photos to learn personal patters and whereabouts, possibility of leading to criminal actions. To end the lesson, we had one class Doc as a public preference for the entirety of information to be shared to compare and evaluate student answers.
Four: 16th - 22nd Oct
Today; Friday 20/10/17, the main focus for this week is coursework, this is because our first draft is due on the 3rd... seeing as the date is the 27th, yeah, you get the idea. We have been given a task sheet to complete labelled Better Writing.
Five: 23rd - 29th Oct
Today; Friday 27/11/17, was the first practical session on the infamous language that is… HTML, as I mentioned in week two, my Uni has given us VM's, today we got to upload a simple HTML document to the server and have our very own webspace. This wasn't anything new for me, so… I messed around trying to open port 21 of the server to allow for FTP uploads. Screw editing web docs in a terminal, unless SpaceMacs is install. Idea…
I decided to install it. Although I dislike Vim, emacs is seems simplistic on its own, hence the creation of SpaceMacs, a combination of the two, and I like the dark theme.
Seven: 30th - 5th Nov
Today; Friday 3/11/17, we focused on creating a simple webpage created with HTML and attempted to upload said page to our Uni VM. The Apache server seems to be installed correctly, I have the appropriate directory for the server as the index.html is in /var/www/html:
The simple HTML file that was created and I simply edited a few tags
<!doctype html>

<meta>charset="utf-8">
<title>First WebPage for VM</title>

Hello there!

I am Dead INSIDE…

Seven: 6th - 12th Nov
Week Seven has been dedicated for reading, more specifically, the reading of peer papers concerning the previous lit review. I have spent the past week reading five peer documents.
Eight: 13th - 19th Nov
Today; Friday 17/11/17, we had the first formal upload for the lit review. After I had submitted my Lit Review, I focused on setting up an Apache server on my VM again. Still nothing.
Nine: 20th - 26th Nov
Today; Friday 24/11/17, the main focal point to week nine was efficiency, predominantly within Web Dev; the uni hit heavy with the recommendation of using Atom.io as it has lots of in-built and third-party packages that aid in the development of web pages. As this is a discovery log, I have not discovered anything new as I have been using Atom.io for a long time.
Ten: 27th - 3rd Nov/ Dec
Today; Friday 1/12/17, We took more of a ``Low-fi'' approach with practical tasks, umm, we used pen a paper to complete ``information design challenges'', however, this does fit into our coursework. Out tasks was to arrange listed cards into appropriate categories, the purpose of this was to prepare the mindset of the user when creating a navigation model for our website.
Eleven: 4th - 10th Dec
Today; Friday 8/12/17, as our coursework is going to be set in the near future, the lecturers tasked us to some webpage work. Firstly, we cloned week 10's lecture webpages from the ``PORTSOC'' github to our VM's, we then ran the HTTP-Server in-order to view these webpages to which we could play around with HTML and CSS code.
Twelve: 11th - 17th Dec
Today; Friday 15/12/17, is our last practical of term, we carried on with more HTML and CSS. We were also informed that the Monday back, we will be covering our second piece of coursework.
Thirteen: 8th - 14th Jan
Today; Friday 12/01/18, our first practical back after the new year... I have had a break from most programming languages and to that, I have been making silly and SIMPLE mistakes. Matt had to re-inform me of how to code a for loop; I did learn the difference between (JS keyword) appending a tag and setting the attribute ``.textContent = '' will have a different affect on the tag's outcome. Overall, a productive Practical session as my idea of a dynamically types HTML navigation menu in JavaScript has come to life. The official lesson task was related to creating SVG, to which I created:
Fourteen: 15th -- 21st Jan
Today; Friday 19/01/18, this practical concered Web addressing, I say concerned because we delved into the realms of erro pages, it was a fun lesson as I took this opportunity to explore error codes and spam my VM will all kinda of requests containing variations of 200 codes.
Fifteen: 22nd -- 28th Jan
Today; Friday 26/01/18, this practical focused towards how a website would appear with differnt forms of referencing to Moodle/ Portsmouth Uni website to get a idea of how they work and how they change.
Sixteen: 22
Today; Friday 02/02/18, this was a very different practical from normal as we had to work in groups and test our websites and ourselves against physical impairments. See below:


'I need to get out': the Iranian former beauty queen in limbo at Manila airport – video report
by Monika CvorakA former Iranian beauty queen has been stuck at Manila's international airport since 17 October, when Iran issued an Interpol notice for her arrest. Bahareh Zare Bahari says she will be killed if she is sent back home and is seeking asylum in the Philippines, where she has lived for six years. Iran says Bahari is wanted because of an offence committed in 2018, but she claims Tehran is attempting to silence her because of her public stand against the government


val index: RegisterIndex
The index of this register in a RegisterSet.
index - The index of this register in a RegisterSet.
index