lineage: Initial Evolution X rebrand
Co-authored-by: Joey Huab <joey@evolution-x.org> Co-authored-by: Pranav Vashi <neobuddy89@gmail.com> Co-authored-by: Lup Gabriel <gwolf2u.website@gmail.com> Co-authored-by: Hemant Sachdeva <hemant.evolver@gmail.com> Signed-off-by: AnierinB <anierin@evolution-x.org>
26
README.mkdn
@@ -1,26 +1,2 @@
|
||||
LineageOS
|
||||
Evolution X
|
||||
===========
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
|
||||
Please see the [LineageOS Wiki](https://wiki.lineageos.org/) for building instructions, by device.
|
||||
|
||||
|
||||
Submitting patches
|
||||
------------------
|
||||
Patches are always welcome! Please submit your patches via LineageOS Gerrit!
|
||||
|
||||
Simply follow our guide on [how to submit patches](https://wiki.lineageos.org/submitting-patch-howto.html).
|
||||
|
||||
To view the status of your and others' patches, visit [LineageOS Gerrit Code Review](https://review.lineageos.org/).
|
||||
|
||||
|
||||
Buildbot
|
||||
--------
|
||||
|
||||
All supported devices are built weekly and periodically as changes are committed to ensure the source trees remain buildable.
|
||||
|
||||
You can view the current build statuses at [LineageOS Buildkite](https://buildkite.com/lineageos).
|
||||
|
||||
Builds produced weekly by the buildbot can be downloaded from [LineageOS downloads](https://download.lineageos.org/).
|
||||
|
||||
@@ -32,7 +32,7 @@ function brunch()
|
||||
{
|
||||
breakfast $*
|
||||
if [ $? -eq 0 ]; then
|
||||
mka bacon
|
||||
mka evolution
|
||||
else
|
||||
echo "No such item in brunch menu. Try 'breakfast'"
|
||||
return 1
|
||||
@@ -707,7 +707,7 @@ function cmka() {
|
||||
if [ ! -z "$1" ]; then
|
||||
for i in "$@"; do
|
||||
case $i in
|
||||
bacon|otapackage|systemimage)
|
||||
evolution|otapackage|systemimage)
|
||||
mka installclean
|
||||
mka $i
|
||||
;;
|
||||
|
||||
15
build/tasks/ascii_output.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
BLUE="\e[34m"
|
||||
GREEN="\e[32m"
|
||||
ENDCOLOR="\e[0m"
|
||||
|
||||
echo -e "${GREEN}===========================================================${ENDCOLOR}"
|
||||
echo -e "${BLUE} ______ __ __ _ _ __ ${ENDCOLOR}"
|
||||
echo -e "${BLUE} / ____/ ______ / /_ __/ /_(_)___ ____ | |/ / ${ENDCOLOR}"
|
||||
echo -e "${BLUE} / __/ | | / / __ \/ / / / / __/ / __ \/ __ \ | / ${ENDCOLOR}"
|
||||
echo -e "${BLUE} / /___ | |/ / /_/ / / /_/ / /_/ / /_/ / / / / / | ${ENDCOLOR}"
|
||||
echo -e "${BLUE} /_____/ |___/\____/_/\__,_/\__/_/\____/_/ /_/ /_/|_| ${ENDCOLOR}"
|
||||
echo -e "${BLUE} ${ENDCOLOR}"
|
||||
echo -e "${BLUE}#KeepEvolving ${ENDCOLOR}"
|
||||
echo -e "${GREEN}===========================================================${ENDCOLOR}"
|
||||
@@ -14,16 +14,19 @@
|
||||
# limitations under the License.
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Lineage OTA update package
|
||||
# Evolution X OTA update package
|
||||
|
||||
LINEAGE_TARGET_PACKAGE := $(PRODUCT_OUT)/lineage-$(LINEAGE_VERSION).zip
|
||||
LINEAGE_TARGET_PACKAGE := $(PRODUCT_OUT)/$(LINEAGE_VERSION).zip
|
||||
|
||||
SHA256 := prebuilts/build-tools/path/$(HOST_PREBUILT_TAG)/sha256sum
|
||||
|
||||
$(LINEAGE_TARGET_PACKAGE): $(INTERNAL_OTA_PACKAGE_TARGET)
|
||||
$(hide) ln -f $(INTERNAL_OTA_PACKAGE_TARGET) $(LINEAGE_TARGET_PACKAGE)
|
||||
$(hide) mv -f $(INTERNAL_OTA_PACKAGE_TARGET) $(LINEAGE_TARGET_PACKAGE)
|
||||
$(hide) $(SHA256) $(LINEAGE_TARGET_PACKAGE) | sed "s|$(PRODUCT_OUT)/||" > $(LINEAGE_TARGET_PACKAGE).sha256sum
|
||||
$(hide) ./vendor/lineage/build/tools/createjson.py $(TARGET_DEVICE) $(PRODUCT_OUT) $(LINEAGE_VERSION).zip $(TARGET_BUILD_VARIANT)
|
||||
$(hide) rm -rf $(call intermediates-dir-for,PACKAGING,target_files)
|
||||
$(hide) ./vendor/lineage/build/tasks/ascii_output.sh
|
||||
@echo "Package Complete: $(LINEAGE_TARGET_PACKAGE)" >&2
|
||||
|
||||
.PHONY: bacon
|
||||
bacon: $(LINEAGE_TARGET_PACKAGE) $(DEFAULT_GOAL)
|
||||
.PHONY: evolution
|
||||
evolution: $(LINEAGE_TARGET_PACKAGE) $(DEFAULT_GOAL)
|
||||
125
build/tools/createjson.py
Executable file
@@ -0,0 +1,125 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 The Evolution X Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import hashlib
|
||||
import json
|
||||
|
||||
def generate_json(target_device, product_out, file_name, build_variant):
|
||||
output = os.path.join(product_out, f"{target_device}.json")
|
||||
|
||||
if os.path.exists(output):
|
||||
os.remove(output)
|
||||
|
||||
android_version = file_name.split('-')[1].split('.')[0]
|
||||
existing_ota_json = os.path.join(f"./evolution/OTA/builds", f"{target_device}.json")
|
||||
|
||||
maintainer = ""
|
||||
currently_maintained = False
|
||||
oem = ""
|
||||
device = ""
|
||||
forum = ""
|
||||
firmware = ""
|
||||
paypal = ""
|
||||
github = ""
|
||||
initial_installation_images = []
|
||||
extra_images = []
|
||||
|
||||
if os.path.exists(existing_ota_json):
|
||||
with open(existing_ota_json, 'r') as f:
|
||||
ota_data = json.load(f)
|
||||
response_data = ota_data["response"][0]
|
||||
maintainer = response_data.get("maintainer", "")
|
||||
currently_maintained = response_data.get("currently_maintained", False)
|
||||
oem = response_data.get("oem", "")
|
||||
device = response_data.get("device", "")
|
||||
forum = response_data.get("forum", "")
|
||||
firmware = response_data.get("firmware", "")
|
||||
paypal = response_data.get("paypal", "")
|
||||
github = response_data.get("github", "")
|
||||
initial_installation_images = response_data.get("initial_installation_images", [])
|
||||
extra_images = response_data.get("extra_images", [])
|
||||
|
||||
filename = file_name
|
||||
if "Official" in file_name:
|
||||
download = f"https://cdn.evolution-x.org/{target_device}/{android_version}/{file_name}/download"
|
||||
else:
|
||||
download = f"https://sourceforge.net/projects/your_unoffical_sourceforge_project/files/{target_device}/{android_version}/{file_name}/download"
|
||||
version = file_name.split('-')[4]
|
||||
buildprop = os.path.join(product_out, "system", "build.prop")
|
||||
timestamp = get_timestamp_from_buildprop(buildprop)
|
||||
md5 = get_checksum(os.path.join(product_out, file_name), 'md5')
|
||||
sha256 = get_checksum(os.path.join(product_out, file_name), 'sha256')
|
||||
size = os.path.getsize(os.path.join(product_out, file_name))
|
||||
|
||||
json_data = {
|
||||
"response": [
|
||||
{
|
||||
"maintainer": maintainer,
|
||||
"currently_maintained": currently_maintained,
|
||||
"oem": oem,
|
||||
"device": device,
|
||||
"filename": filename,
|
||||
"download": download,
|
||||
"timestamp": timestamp,
|
||||
"md5": md5,
|
||||
"sha256": sha256,
|
||||
"size": size,
|
||||
"version": version,
|
||||
"buildtype": build_variant,
|
||||
"forum": f"{forum}" if forum else "",
|
||||
"firmware": f"{firmware}" if firmware else "",
|
||||
"paypal": f"{paypal}" if paypal else "",
|
||||
"github": github,
|
||||
"initial_installation_images": initial_installation_images,
|
||||
"extra_images": extra_images
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
with open(output, 'w') as f:
|
||||
json.dump(json_data, f, indent=2)
|
||||
|
||||
def get_timestamp_from_buildprop(buildprop_path):
|
||||
with open(buildprop_path, 'r') as f:
|
||||
for line in f:
|
||||
if "ro.system.build.date.utc" in line:
|
||||
return int(line.split('=')[1].strip())
|
||||
return 0
|
||||
|
||||
def get_checksum(file_path, checksum_type='md5'):
|
||||
if checksum_type == 'md5':
|
||||
return calculate_md5(file_path)
|
||||
elif checksum_type == 'sha256':
|
||||
return calculate_sha256(file_path)
|
||||
|
||||
def calculate_md5(file_path):
|
||||
hash_md5 = hashlib.md5()
|
||||
with open(file_path, "rb") as f:
|
||||
for chunk in iter(lambda: f.read(4096), b""):
|
||||
hash_md5.update(chunk)
|
||||
return hash_md5.hexdigest()
|
||||
|
||||
def calculate_sha256(file_path):
|
||||
hash_sha256 = hashlib.sha256()
|
||||
with open(file_path, "rb") as f:
|
||||
for chunk in iter(lambda: f.read(4096), b""):
|
||||
hash_sha256.update(chunk)
|
||||
return hash_sha256.hexdigest()
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Generate a JSON file for OTA.")
|
||||
parser.add_argument("target_device", help="Target device name")
|
||||
parser.add_argument("product_out", help="Product output directory")
|
||||
parser.add_argument("file_name", help="File name for OTA")
|
||||
parser.add_argument("build_variant", help="Build variant")
|
||||
|
||||
args = parser.parse_args()
|
||||
generate_json(args.target_device, args.product_out, args.file_name, args.build_variant)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (C) 2012-2013, The CyanogenMod Project
|
||||
# (C) 2017-2018,2020-2021, The LineageOS Project
|
||||
# (C) 2024, The Evolution X Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -16,11 +17,12 @@
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import base64
|
||||
import glob
|
||||
import json
|
||||
import netrc
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import urllib.error
|
||||
import urllib.parse
|
||||
@@ -45,22 +47,38 @@ except:
|
||||
device = product
|
||||
|
||||
if not depsonly:
|
||||
print("Device %s not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS)." % device)
|
||||
print("Device %s not found. Attempting to retrieve device repository from Evolution-X-Devices Github (http://github.com/Evolution-X-Devices)." % device)
|
||||
|
||||
repositories = []
|
||||
|
||||
try:
|
||||
authtuple = netrc.netrc().authenticators("api.github.com")
|
||||
|
||||
if authtuple:
|
||||
auth_string = ('%s:%s' % (authtuple[0], authtuple[2])).encode()
|
||||
githubauth = base64.encodestring(auth_string).decode().replace('\n', '')
|
||||
else:
|
||||
githubauth = None
|
||||
except:
|
||||
githubauth = None
|
||||
|
||||
def add_auth(githubreq):
|
||||
if githubauth:
|
||||
githubreq.add_header("Authorization","Basic %s" % githubauth)
|
||||
|
||||
if not depsonly:
|
||||
githubreq = urllib.request.Request("https://raw.githubusercontent.com/LineageOS/mirror/main/default.xml")
|
||||
githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:Evolution-X-Devices+in:name+fork:true" % device)
|
||||
add_auth(githubreq)
|
||||
try:
|
||||
result = ElementTree.fromstring(urllib.request.urlopen(githubreq, timeout=10).read().decode())
|
||||
result = json.loads(urllib.request.urlopen(githubreq, timeout=10).read().decode())
|
||||
except urllib.error.URLError:
|
||||
print("Failed to fetch data from GitHub")
|
||||
print("Failed to search GitHub")
|
||||
sys.exit(1)
|
||||
except ValueError:
|
||||
print("Failed to parse return data from GitHub")
|
||||
sys.exit(1)
|
||||
for res in result.findall('.//project'):
|
||||
repositories.append(res.attrib['name'][10:])
|
||||
for res in result.get('items', []):
|
||||
repositories.append(res)
|
||||
|
||||
local_manifests = r'.repo/local_manifests'
|
||||
if not os.path.exists(local_manifests): os.makedirs(local_manifests)
|
||||
@@ -100,12 +118,6 @@ def get_manifest_path():
|
||||
except IndexError:
|
||||
return ".repo/manifests/{}".format(m.find("include").get("name"))
|
||||
|
||||
def get_default_revision():
|
||||
m = ElementTree.parse(get_manifest_path())
|
||||
d = m.findall('default')[0]
|
||||
r = d.get('revision')
|
||||
return r.replace('refs/heads/', '').replace('refs/tags/', '')
|
||||
|
||||
def get_from_manifest(devicename):
|
||||
for path in glob.glob(".repo/local_manifests/*.xml"):
|
||||
try:
|
||||
@@ -115,7 +127,7 @@ def get_from_manifest(devicename):
|
||||
lm = ElementTree.Element("manifest")
|
||||
|
||||
for localpath in lm.findall("project"):
|
||||
if re.search("android_device_.*_%s$" % device, localpath.get("name")):
|
||||
if re.search("device_.*_%s$" % device, localpath.get("name")):
|
||||
return localpath.get("path")
|
||||
|
||||
return None
|
||||
@@ -154,6 +166,17 @@ def is_in_manifest(projectpath):
|
||||
if localpath.get("path") == projectpath:
|
||||
return True
|
||||
|
||||
# ... and don't forget the evolution snippet
|
||||
try:
|
||||
lm = ElementTree.parse(".repo/manifests/snippets/evolution.xml")
|
||||
lm = lm.getroot()
|
||||
except:
|
||||
lm = ElementTree.Element("manifest")
|
||||
|
||||
for localpath in lm.findall("project"):
|
||||
if localpath.get("path") == projectpath:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def add_to_manifest(repositories):
|
||||
@@ -169,41 +192,45 @@ def add_to_manifest(repositories):
|
||||
for repository in repositories:
|
||||
repo_name = repository['repository']
|
||||
repo_target = repository['target_path']
|
||||
repo_revision = repository['branch']
|
||||
repo_remote = repository.get("remote", "evo-devices")
|
||||
repo_revision = repository.get('revision')
|
||||
|
||||
if repo_remote != "evo-devices" and not repo_remote.startswith("aosp-"):
|
||||
repo_revision = repo_revision or repository.get('branch') or get_default_or_fallback_revision(repo_name)
|
||||
|
||||
print('Checking if %s is fetched from %s' % (repo_target, repo_name))
|
||||
if is_in_manifest(repo_target):
|
||||
print('LineageOS/%s already fetched to %s' % (repo_name, repo_target))
|
||||
print('%s already fetched to %s' % (repo_name, repo_target))
|
||||
continue
|
||||
|
||||
project = ElementTree.Element("project", attrib = {
|
||||
project_attrib = {
|
||||
"path": repo_target,
|
||||
"remote": "github",
|
||||
"name": "LineageOS/%s" % repo_name,
|
||||
"revision": repo_revision })
|
||||
if repo_remote := repository.get("remote", None):
|
||||
# aosp- remotes are only used for kernel prebuilts, thus they
|
||||
# don't let you customize clone-depth/revision.
|
||||
if repo_remote.startswith("aosp-"):
|
||||
project.attrib["name"] = repo_name
|
||||
project.attrib["remote"] = repo_remote
|
||||
project.attrib["clone-depth"] = "1"
|
||||
del project.attrib["revision"]
|
||||
if project.attrib.get("revision", None) == get_default_revision():
|
||||
del project.attrib["revision"]
|
||||
print("Adding dependency: %s -> %s" % (project.attrib["name"], project.attrib["path"]))
|
||||
"name": repo_name,
|
||||
"remote": repo_remote,
|
||||
}
|
||||
|
||||
if repo_revision and not (repo_remote == "evo-devices" and repo_revision == get_default_or_fallback_revision(repo_name)):
|
||||
project_attrib["revision"] = repo_revision
|
||||
|
||||
project = ElementTree.Element("project", attrib=project_attrib)
|
||||
|
||||
if repo_remote.startswith("aosp-"):
|
||||
project.set("clone-depth", "1")
|
||||
project.attrib.pop('revision', None)
|
||||
|
||||
print("Adding dependency: %s -> %s" % (repo_name, repo_target))
|
||||
lm.append(project)
|
||||
|
||||
indent(lm, 0)
|
||||
raw_xml = ElementTree.tostring(lm).decode()
|
||||
raw_xml = '<?xml version="1.0" encoding="UTF-8"?>\n' + raw_xml
|
||||
|
||||
f = open('.repo/local_manifests/roomservice.xml', 'w')
|
||||
f.write(raw_xml)
|
||||
f.close()
|
||||
with open('.repo/local_manifests/roomservice.xml', 'w') as f:
|
||||
f.write(raw_xml)
|
||||
|
||||
def fetch_dependencies(repo_path):
|
||||
print('Looking for dependencies in %s' % repo_path)
|
||||
dependencies_path = repo_path + '/lineage.dependencies'
|
||||
dependencies_path = repo_path + '/evolution.dependencies'
|
||||
syncable_repos = []
|
||||
verify_repos = []
|
||||
|
||||
@@ -244,37 +271,34 @@ def fetch_dependencies(repo_path):
|
||||
for deprepo in verify_repos:
|
||||
fetch_dependencies(deprepo)
|
||||
|
||||
def get_default_or_fallback_revision(repo_name):
|
||||
default_revision = get_default_revision()
|
||||
print("Default revision: %s" % default_revision)
|
||||
print("Checking branch info")
|
||||
|
||||
def get_remote_revision_from_snippet(snippet_path, remote_name):
|
||||
try:
|
||||
stdout = subprocess.run(
|
||||
["git", "ls-remote", "-h", "https://:@github.com/LineageOS/" + repo_name],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
).stdout.decode()
|
||||
branches = [x.split("refs/heads/")[-1] for x in stdout.splitlines()]
|
||||
except:
|
||||
return ""
|
||||
tree = ElementTree.parse(snippet_path)
|
||||
root = tree.getroot()
|
||||
remote = root.find(f".//remote[@name='{remote_name}']")
|
||||
if remote is not None:
|
||||
revision = remote.get('revision')
|
||||
return revision.split('/')[-1]
|
||||
except FileNotFoundError:
|
||||
print(f"Error: {snippet_path} not found.")
|
||||
raise
|
||||
except ElementTree.ParseError:
|
||||
print(f"Error: There was a problem parsing {snippet_path}.")
|
||||
raise
|
||||
|
||||
if default_revision in branches:
|
||||
return default_revision
|
||||
raise ValueError(f"Remote {remote_name} not found in the snippet.")
|
||||
|
||||
if os.getenv('ROOMSERVICE_BRANCHES'):
|
||||
fallbacks = list(filter(bool, os.getenv('ROOMSERVICE_BRANCHES').split(' ')))
|
||||
for fallback in fallbacks:
|
||||
if fallback in branches:
|
||||
print("Using fallback branch: %s" % fallback)
|
||||
return fallback
|
||||
def get_default_or_fallback_revision(repo_name):
|
||||
default_revision = get_remote_revision_from_snippet(".repo/manifests/snippets/evolution.xml", "evo-devices")
|
||||
print("Using default revision: %s" % default_revision)
|
||||
|
||||
print("Default revision %s not found in %s. Bailing." % (default_revision, repo_name))
|
||||
print("Branches found:")
|
||||
for branch in branches:
|
||||
print(branch)
|
||||
print("Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.")
|
||||
return ""
|
||||
fallback_revision = os.getenv('ROOMSERVICE_FALLBACK_REVISION')
|
||||
|
||||
if fallback_revision:
|
||||
print("Using fallback revision from environment: %s" % fallback_revision)
|
||||
return fallback_revision
|
||||
|
||||
return default_revision
|
||||
|
||||
if depsonly:
|
||||
repo_path = get_from_manifest(device)
|
||||
@@ -286,11 +310,12 @@ if depsonly:
|
||||
sys.exit()
|
||||
|
||||
else:
|
||||
for repo_name in repositories:
|
||||
if re.match(r"^android_device_[^_]*_" + device + "$", repo_name):
|
||||
print("Found repository: %s" % repo_name)
|
||||
|
||||
manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "")
|
||||
for repository in repositories:
|
||||
repo_name = repository['name']
|
||||
if re.match(r"^device_[^_]*_" + device + "$", repo_name):
|
||||
print("Found repository: %s" % repository['name'])
|
||||
|
||||
manufacturer = repo_name.replace("device_", "").replace("_" + device, "")
|
||||
repo_path = "device/%s/%s" % (manufacturer, device)
|
||||
revision = get_default_or_fallback_revision(repo_name)
|
||||
if revision == "":
|
||||
@@ -311,4 +336,4 @@ else:
|
||||
print("Done")
|
||||
sys.exit()
|
||||
|
||||
print("Repository for %s not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml." % device)
|
||||
print("Repository for %s not found in the Evolution-X-Devices Github repository list. If this is an error, you may need to manually add it to your local_manifests/roomservice.xml." % device)
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 24 KiB |
@@ -1,5 +1,5 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 150C0 232.843 67.1573 300 150 300C232.843 300 300 232.843 300 150C300 67.1573 232.843 0 150 0C67.1573 0 0 67.1573 0 150ZM150 0.000214268L169.738 31.6154L169.771 31.6209L198.705 8.12763L207.106 44.433L207.143 44.4527L242.132 31.6291L238.287 68.7251L238.288 68.7264L275.575 67.958L259.91 101.76L259.931 101.809L295.41 113.177L269.596 140.084L269.597 140.096L299.487 162.387L266.362 179.441L266.349 179.49L287.366 210.255L250.478 215.631L250.465 215.652L260.358 251.593L223.712 244.698L223.705 244.704L221.392 281.921L189.001 263.52L188.947 263.538L174.689 297.954L150 270L125.31 297.954L111.052 263.538L110.998 263.52L78.6075 281.921L76.2945 244.704L76.2875 244.698L39.6411 251.593L49.535 215.651L49.5221 215.631L12.6336 210.255L33.6504 179.49L33.6382 179.441L0.511969 162.387L30.4029 140.096L30.4038 140.085L4.58961 113.177L40.0687 101.809L40.09 101.76L24.4247 67.958L61.7121 68.7264L61.7127 68.7257L57.8678 31.6291L92.8571 44.4528L92.8929 44.4334L101.295 8.12763L130.229 31.621L130.262 31.6156L150 0.000214268Z" fill="#167c80"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 150C0 232.843 67.1573 300 150 300C232.843 300 300 232.843 300 150C300 67.1573 232.843 0 150 0C67.1573 0 0 67.1573 0 150ZM150 0.000214268L169.738 31.6154L169.771 31.6209L198.705 8.12763L207.106 44.433L207.143 44.4527L242.132 31.6291L238.287 68.7251L238.288 68.7264L275.575 67.958L259.91 101.76L259.931 101.809L295.41 113.177L269.596 140.084L269.597 140.096L299.487 162.387L266.362 179.441L266.349 179.49L287.366 210.255L250.478 215.631L250.465 215.652L260.358 251.593L223.712 244.698L223.705 244.704L221.392 281.921L189.001 263.52L188.947 263.538L174.689 297.954L150 270L125.31 297.954L111.052 263.538L110.998 263.52L78.6075 281.921L76.2945 244.704L76.2875 244.698L39.6411 251.593L49.535 215.651L49.5221 215.631L12.6336 210.255L33.6504 179.49L33.6382 179.441L0.511969 162.387L30.4029 140.096L30.4038 140.085L4.58961 113.177L40.0687 101.809L40.09 101.76L24.4247 67.958L61.7121 68.7264L61.7127 68.7257L57.8678 31.6291L92.8571 44.4528L92.8929 44.4334L101.295 8.12763L130.229 31.621L130.262 31.6156L150 0.000214268Z" fill="#0060ff"/>
|
||||
<path d="M138.78 169.072Q138.78 159.656 141.117 154.063Q143.453 148.469 150.356 141.779Q157.259 135.088 159.1 132.256Q161.932 127.937 161.932 122.91Q161.932 116.255 158.64 112.75Q155.348 109.246 148.976 109.246Q142.887 109.246 139.17 112.679Q135.453 116.113 135.453 121.99L118.248 121.99Q118.39 109.458 126.78 102.166Q135.169 94.873 148.976 94.873Q163.207 94.873 171.172 102.095Q179.137 109.316 179.137 122.273Q179.137 133.813 168.375 145L159.667 153.567Q154.994 158.877 154.852 169.072Z M137.577 191.091Q137.577 186.914 140.196 184.33Q142.816 181.746 147.276 181.746Q151.808 181.746 154.427 184.401Q157.047 187.056 157.047 191.091Q157.047 194.985 154.498 197.605Q151.949 200.225 147.276 200.225Q142.604 200.225 140.09 197.605Q137.577 194.985 137.577 191.091Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C258.377 43.33 274.511 62.7604 285.23 85.0935C290.01 95.0516 284.142 106.414 273.637 109.828L176.18 141.493C163.258 145.692 150 136.06 150 122.472L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C258.377 43.33 274.511 62.7604 285.23 85.0935C290.01 95.0516 284.142 106.414 273.637 109.828L176.18 141.493C163.258 145.692 150 136.06 150 122.472L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 862 B |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C293.562 104.621 296.946 117.216 298.669 130.059C300.137 141.007 291.046 150 280 150L170 150C158.954 150 150 141.046 150 130L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C293.562 104.621 296.946 117.216 298.669 130.059C300.137 141.007 291.046 150 280 150L170 150C158.954 150 150 141.046 150 130L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 934 B After Width: | Height: | Size: 934 B |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C300.81 143.309 300.591 160.364 297.554 176.976C295.568 187.842 284.142 193.585 273.637 190.172L163.82 154.49C155.579 151.813 150 144.134 150 135.469L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C300.81 143.309 300.591 160.364 297.554 176.976C295.568 187.842 284.142 193.585 273.637 190.172L163.82 154.49C155.579 151.813 150 144.134 150 135.469L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 958 B After Width: | Height: | Size: 958 B |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.892 182.675 291.889 202.927 281.997 221.252C276.75 230.972 264.108 232.905 255.172 226.412L158.244 155.99C153.065 152.227 150 146.212 150 139.809L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.892 182.675 291.889 202.927 281.997 221.252C276.75 230.972 264.108 232.905 255.172 226.412L158.244 155.99C153.065 152.227 150 146.212 150 139.809L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 958 B After Width: | Height: | Size: 958 B |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C284.939 220.109 271.446 241.458 253.518 258.554C245.524 266.177 232.905 264.108 226.412 255.172L153.82 155.257C151.337 151.84 150 147.725 150 143.502L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C284.939 220.109 271.446 241.458 253.518 258.554C245.524 266.177 232.905 264.108 226.412 255.172L153.82 155.257C151.337 151.84 150 147.725 150 143.502L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 961 B After Width: | Height: | Size: 961 B |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C262.737 253.113 240.811 272.797 214.906 285.23C204.948 290.01 193.585 284.142 190.172 273.637L150.979 153.013C150.33 151.017 150 148.931 150 146.832L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C262.737 253.113 240.811 272.797 214.906 285.23C204.948 290.01 193.585 284.142 190.172 273.637L150.979 153.013C150.33 151.017 150 148.931 150 146.832L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 959 B After Width: | Height: | Size: 959 B |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C296.12 110.796 300 130.302 300 150C300 169.698 296.12 189.204 288.582 207.403C281.044 225.601 269.995 242.137 256.066 256.066C242.137 269.995 225.601 281.044 207.402 288.582C195.379 293.562 182.784 296.946 169.941 298.669C158.993 300.137 150 291.046 150 280L150 150L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137047 169.941 1.33137C182.784 3.05407 195.379 6.4376 207.403 11.4181C225.601 18.9563 242.137 30.0052 256.066 43.934C269.995 57.8628 281.044 74.3987 288.582 92.5975C296.12 110.796 300 130.302 300 150C300 169.698 296.12 189.204 288.582 207.403C281.044 225.601 269.995 242.137 256.066 256.066C242.137 269.995 225.601 281.044 207.402 288.582C195.379 293.562 182.784 296.946 169.941 298.669C158.993 300.137 150 291.046 150 280L150 150L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137056 169.941 1.33137C184.731 3.31516 199.18 7.49993 212.799 13.7785C232.49 22.8562 249.979 36.095 264.061 52.5828C278.143 69.0705 288.483 88.4152 294.368 109.284C300.254 130.153 301.545 152.049 298.153 173.465C294.761 194.881 286.767 215.307 274.72 233.335C262.674 251.364 246.862 266.567 228.375 277.896C209.887 289.225 189.163 296.412 167.631 298.96C152.738 300.723 137.703 300.238 123.024 297.554C112.158 295.568 106.415 284.142 109.828 273.637L149.021 153.013C149.67 151.017 150 148.931 150 146.832L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137056 169.941 1.33137C184.731 3.31516 199.18 7.49993 212.799 13.7785C232.49 22.8562 249.979 36.095 264.061 52.5828C278.143 69.0705 288.483 88.4152 294.368 109.284C300.254 130.153 301.545 152.049 298.153 173.465C294.761 194.881 286.767 215.307 274.72 233.335C262.674 251.364 246.862 266.567 228.375 277.896C209.887 289.225 189.163 296.412 167.631 298.96C152.738 300.723 137.703 300.238 123.024 297.554C112.158 295.568 106.415 284.142 109.828 273.637L149.021 153.013C149.67 151.017 150 148.931 150 146.832L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C301.856 149.915 299.973 173.84 292.658 196.353C285.344 218.866 272.804 239.328 256.066 256.066C239.328 272.804 218.866 285.344 196.353 292.658C173.84 299.973 149.915 301.856 126.535 298.153C109.761 295.496 93.6083 290.018 78.7474 281.997C69.0275 276.75 67.0955 264.108 73.588 255.172L146.18 155.257C148.663 151.84 150 147.725 150 143.502L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137072 169.941 1.33136C186.679 3.57645 202.966 8.63872 218.099 16.349C239.19 27.0957 257.439 42.6815 271.353 61.8322C285.266 80.9829 294.45 103.155 298.153 126.535C301.856 149.915 299.973 173.84 292.658 196.353C285.344 218.866 272.804 239.328 256.066 256.066C239.328 272.804 218.866 285.344 196.353 292.658C173.84 299.973 149.915 301.856 126.535 298.153C109.761 295.496 93.6083 290.018 78.7474 281.997C69.0275 276.75 67.0955 264.108 73.588 255.172L146.18 155.257C148.663 151.84 150 147.725 150 143.502L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137085 169.941 1.33136C188.629 3.83801 206.738 9.85427 223.293 19.1256C245.686 31.666 264.486 49.7423 277.896 71.6252C291.306 93.5082 298.877 118.466 299.884 144.111C300.892 169.756 295.303 195.231 283.651 218.099C271.999 240.966 254.675 260.462 233.336 274.72C211.996 288.979 187.355 297.524 161.769 299.538C136.183 301.551 110.509 296.966 87.2011 286.221C69.9695 278.278 54.458 267.163 41.4457 253.518C33.8228 245.524 35.8917 232.905 44.8278 226.412L141.756 155.99C146.935 152.227 150 146.212 150 139.809L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.993 -0.137085 169.941 1.33136C188.629 3.83801 206.738 9.85427 223.293 19.1256C245.686 31.666 264.486 49.7423 277.896 71.6252C291.306 93.5082 298.877 118.466 299.884 144.111C300.892 169.756 295.303 195.231 283.651 218.099C271.999 240.966 254.675 260.462 233.336 274.72C211.996 288.979 187.355 297.524 161.769 299.538C136.183 301.551 110.509 296.966 87.2011 286.221C69.9695 278.278 54.458 267.163 41.4457 253.518C33.8228 245.524 35.8917 232.905 44.8278 226.412L141.756 155.99C146.935 152.227 150 146.212 150 139.809L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.367 189.347 287.613 215.788 271.353 238.168C255.092 260.548 232.96 277.996 207.403 288.582C181.845 299.168 153.858 302.481 126.535 298.153C99.2121 293.826 73.6182 282.027 52.5828 264.061C36.6366 250.442 23.781 233.681 14.7699 214.906C9.99029 204.948 15.8576 193.586 26.3627 190.172L136.18 154.49C144.421 151.813 150 144.134 150 135.469L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137109 169.941 1.33134C190.581 4.09984 210.494 11.1469 228.375 22.104C251.962 36.558 271.092 57.2532 283.651 81.9014C296.21 106.55 301.708 134.191 299.538 161.769C297.367 189.347 287.613 215.788 271.353 238.168C255.092 260.548 232.96 277.996 207.403 288.582C181.845 299.168 153.858 302.481 126.535 298.153C99.2121 293.826 73.6182 282.027 52.5828 264.061C36.6366 250.442 23.781 233.681 14.7699 214.906C9.99029 204.948 15.8576 193.586 26.3627 190.172L136.18 154.49C144.421 151.813 150 144.134 150 135.469L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137139 169.941 1.33131C192.536 4.36201 214.235 12.5169 233.336 25.2796C258.003 41.7618 277.229 65.1886 288.582 92.5975C299.935 120.006 302.906 150.166 297.118 179.264C291.33 208.361 277.044 235.088 256.066 256.066C235.088 277.044 208.361 291.33 179.264 297.118C150.166 302.906 120.006 299.935 92.5975 288.582C65.1886 277.229 41.7618 258.003 25.2796 233.336C12.5169 214.235 4.36201 192.536 1.33131 169.941C-0.137139 158.994 8.95431 150 20 150L130 150C141.046 150 150 141.046 150 130L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137139 169.941 1.33131C192.536 4.36201 214.235 12.5169 233.336 25.2796C258.003 41.7618 277.229 65.1886 288.582 92.5975C299.935 120.006 302.906 150.166 297.118 179.264C291.33 208.361 277.044 235.088 256.066 256.066C235.088 277.044 208.361 291.33 179.264 297.118C150.166 302.906 120.006 299.935 92.5975 288.582C65.1886 277.229 41.7618 258.003 25.2796 233.336C12.5169 214.235 4.36201 192.536 1.33131 169.941C-0.137139 158.994 8.95431 150 20 150L130 150C141.046 150 150 141.046 150 130L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C282.87 226.479 263.795 252.733 238.168 271.353C212.541 289.972 181.677 300 150 300C118.323 300 87.4593 289.972 61.8322 271.353C36.2051 252.733 17.1302 226.479 7.34152 196.353C-0.377567 172.596 -2.0096 147.393 2.44542 123.024C4.43186 112.159 15.8576 106.414 26.3627 109.828L123.82 141.493C136.742 145.692 150 136.06 150 122.472L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137173 169.941 1.33127C194.494 4.62455 217.959 13.9649 238.168 28.6475C263.795 47.2667 282.87 73.5209 292.658 103.647C302.447 133.774 302.447 166.226 292.658 196.353C282.87 226.479 263.795 252.733 238.168 271.353C212.541 289.972 181.677 300 150 300C118.323 300 87.4593 289.972 61.8322 271.353C36.2051 252.733 17.1302 226.479 7.34152 196.353C-0.377567 172.596 -2.0096 147.393 2.44542 123.024C4.43186 112.159 15.8576 106.414 26.3627 109.828L123.82 141.493C136.742 145.692 150 136.06 150 122.472L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.13721 169.942 1.33122C196.455 4.88752 221.666 15.4912 242.864 32.2025C269.324 53.0615 287.99 82.2213 295.855 114.983C303.721 147.745 300.327 182.201 286.221 212.799C272.116 243.397 248.119 268.355 218.099 283.651C188.078 298.947 153.782 303.691 120.736 297.118C87.691 290.545 57.8208 273.037 35.9391 247.417C14.0573 221.797 1.43841 189.556 0.115643 155.889C-0.944093 128.917 5.29598 102.288 18.0031 78.7477C23.25 69.0277 35.8917 67.0954 44.8278 73.5879L118.244 126.928C131.465 136.533 150 127.089 150 110.748L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.13721 169.942 1.33122C196.455 4.88752 221.666 15.4912 242.864 32.2025C269.324 53.0615 287.99 82.2213 295.855 114.983C303.721 147.745 300.327 182.201 286.221 212.799C272.116 243.397 248.119 268.355 218.099 283.651C188.078 298.947 153.782 303.691 120.736 297.118C87.691 290.545 57.8208 273.037 35.9391 247.417C14.0573 221.797 1.43841 189.556 0.115643 155.889C-0.944093 128.917 5.29598 102.288 18.0031 78.7477C23.25 69.0277 35.8917 67.0954 44.8278 73.5879L118.244 126.928C131.465 136.533 150 127.089 150 110.748L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C259.235 258.827 230.32 281.622 196.353 292.658C162.385 303.695 125.594 302.25 92.5974 288.582C59.6007 274.914 32.5635 249.921 16.349 218.099C0.134526 186.276 -4.1931 149.712 4.14452 114.983C10.9176 86.7713 25.6875 61.2748 46.4819 41.4454C54.4756 33.8226 67.0955 35.8916 73.588 44.8278L113.82 100.202C125.208 115.876 150 107.821 150 88.4463L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137283 169.941 1.33108C198.42 5.15078 225.355 17.0964 247.417 35.9391C274.575 59.1345 292.566 91.2591 298.153 126.535C303.74 161.811 296.557 197.922 277.896 228.375C259.235 258.827 230.32 281.622 196.353 292.658C162.385 303.695 125.594 302.25 92.5974 288.582C59.6007 274.914 32.5635 249.921 16.349 218.099C0.134526 186.276 -4.1931 149.712 4.14452 114.983C10.9176 86.7713 25.6875 61.2748 46.4819 41.4454C54.4756 33.8226 67.0955 35.8916 73.588 44.8278L113.82 100.202C125.208 115.876 150 107.821 150 88.4463L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#181818"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137312 169.942 1.33104C200.389 5.41475 229.026 18.7812 251.82 39.8516C279.537 65.4731 296.576 100.602 299.538 138.231C302.499 175.86 291.165 213.222 267.798 242.864C244.43 272.506 210.746 292.249 173.465 298.153C136.185 304.058 98.0484 295.691 66.6644 274.72C35.2804 253.75 12.9559 221.719 4.1445 185.017C-4.66693 148.314 0.682508 109.639 19.1256 76.7068C34.2927 49.6239 57.3981 28.0622 85.0931 14.7697C95.0512 9.99024 106.415 15.8576 109.828 26.3626L110.979 29.9051C118.017 51.5659 150 46.5002 150 23.7248L150 20Z" fill="#167c80"/>
|
||||
<path d="M150 20C150 8.9543 158.994 -0.137312 169.942 1.33104C200.389 5.41475 229.026 18.7812 251.82 39.8516C279.537 65.4731 296.576 100.602 299.538 138.231C302.499 175.86 291.165 213.222 267.798 242.864C244.43 272.506 210.746 292.249 173.465 298.153C136.185 304.058 98.0484 295.691 66.6644 274.72C35.2804 253.75 12.9559 221.719 4.1445 185.017C-4.66693 148.314 0.682508 109.639 19.1256 76.7068C34.2927 49.6239 57.3981 28.0622 85.0931 14.7697C95.0512 9.99024 106.415 15.8576 109.828 26.3626L110.979 29.9051C118.017 51.5659 150 46.5002 150 23.7248L150 20Z" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#167c80"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
<path d="M162.73 230.297L149.298 254.672C149.006 255.202 148.199 254.959 148.247 254.357L149.72 236.199L137.762 236.199C137.336 236.199 137.064 235.742 137.27 235.367L150.703 210.992C150.995 210.462 151.802 210.705 151.753 211.307L150.281 229.465L162.238 229.465C162.665 229.465 162.935 229.922 162.73 230.297Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 580 B After Width: | Height: | Size: 580 B |
@@ -1,5 +1,5 @@
|
||||
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="300" height="300" fill="black"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#167c80"/>
|
||||
<circle cx="150" cy="150" r="150" fill="#0060ff"/>
|
||||
<circle cx="150" cy="150" r="128" fill="black"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 253 B |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
@@ -1,10 +1,12 @@
|
||||
# Allow vendor/extra to override any property by setting it first
|
||||
$(call inherit-product-if-exists, vendor/extra/product.mk)
|
||||
$(call inherit-product, vendor/lineage/config/evolution.mk)
|
||||
$(call inherit-product, vendor/extras/evolution.mk)
|
||||
|
||||
# Allow vendor prebuilt repos to exclude themselves from bp scanning
|
||||
-include $(sort $(wildcard vendor/*/*/exclude-bp.mk))
|
||||
|
||||
PRODUCT_BRAND ?= LineageOS
|
||||
PRODUCT_BRAND ?= EvolutionX
|
||||
|
||||
ifeq ($(PRODUCT_GMS_CLIENTID_BASE),)
|
||||
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
||||
@@ -97,9 +99,9 @@ PRODUCT_PACKAGES += \
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/lineage/config/permissions/org.lineageos.android.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/org.lineageos.android.xml
|
||||
|
||||
# Enforce privapp-permissions whitelist
|
||||
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
||||
ro.control_privapp_permissions=enforce
|
||||
# Enable transitional log for Privileged permissions
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.control_privapp_permissions=log
|
||||
|
||||
ifneq ($(TARGET_DISABLE_LINEAGE_SDK), true)
|
||||
# Lineage SDK
|
||||
@@ -147,8 +149,7 @@ PRODUCT_PACKAGES += \
|
||||
endif
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
LineageSettingsProvider \
|
||||
Updater
|
||||
LineageSettingsProvider
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
vendor/lineage/prebuilt/common/etc/init/init.lineage-updater.rc:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/init/init.lineage-updater.rc
|
||||
@@ -284,7 +285,4 @@ PRODUCT_EXTRA_RECOVERY_KEYS += \
|
||||
|
||||
include vendor/lineage/config/version.mk
|
||||
|
||||
-include vendor/lineage-priv/keys/keys.mk
|
||||
|
||||
-include $(WORKSPACE)/build_env/image-auto-bits.mk
|
||||
-include vendor/lineage/config/partner_gms.mk
|
||||
|
||||
@@ -20,23 +20,6 @@ PRODUCT_PACKAGES += \
|
||||
Glimpse \
|
||||
LatinIME
|
||||
|
||||
ifeq ($(PRODUCT_TYPE), go)
|
||||
PRODUCT_PACKAGES += \
|
||||
Launcher3QuickStepGo
|
||||
|
||||
PRODUCT_DEXPREOPT_SPEED_APPS += \
|
||||
Launcher3QuickStepGo
|
||||
else
|
||||
PRODUCT_PACKAGES += \
|
||||
Launcher3QuickStep
|
||||
|
||||
PRODUCT_DEXPREOPT_SPEED_APPS += \
|
||||
Launcher3QuickStep
|
||||
endif
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
Launcher3Overlay
|
||||
|
||||
# Charger
|
||||
PRODUCT_PACKAGES += \
|
||||
charger_res_images
|
||||
@@ -47,43 +30,9 @@ PRODUCT_PACKAGES += \
|
||||
lineage_charger_animation_vendor
|
||||
endif
|
||||
|
||||
# Customizations
|
||||
PRODUCT_PACKAGES += \
|
||||
IconPackCircularAndroidOverlay \
|
||||
IconPackCircularLauncherOverlay \
|
||||
IconPackCircularSettingsOverlay \
|
||||
IconPackCircularSystemUIOverlay \
|
||||
IconPackFilledAndroidOverlay \
|
||||
IconPackFilledLauncherOverlay \
|
||||
IconPackFilledSettingsOverlay \
|
||||
IconPackFilledSystemUIOverlay \
|
||||
IconPackKaiAndroidOverlay \
|
||||
IconPackKaiLauncherOverlay \
|
||||
IconPackKaiSettingsOverlay \
|
||||
IconPackKaiSystemUIOverlay \
|
||||
IconPackRoundedAndroidOverlay \
|
||||
IconPackRoundedLauncherOverlay \
|
||||
IconPackRoundedSettingsOverlay \
|
||||
IconPackRoundedSystemUIOverlay \
|
||||
IconPackSamAndroidOverlay \
|
||||
IconPackSamLauncherOverlay \
|
||||
IconPackSamSettingsOverlay \
|
||||
IconPackSamSystemUIOverlay \
|
||||
IconPackVictorAndroidOverlay \
|
||||
IconPackVictorLauncherOverlay \
|
||||
IconPackVictorSettingsOverlay \
|
||||
IconPackVictorSystemUIOverlay \
|
||||
IconShapePebbleOverlay \
|
||||
IconShapeRoundedRectOverlay \
|
||||
IconShapeSquareOverlay \
|
||||
IconShapeSquircleOverlay \
|
||||
IconShapeTaperedRectOverlay \
|
||||
IconShapeTeardropOverlay \
|
||||
IconShapeVesselOverlay
|
||||
|
||||
# Legal
|
||||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
ro.lineagelegal.url=https://lineageos.org/legal
|
||||
ro.evolutionlegal.url=https://evolution-x.org/legal.php
|
||||
|
||||
# Media
|
||||
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
||||
@@ -108,6 +57,5 @@ PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
|
||||
|
||||
# Themes
|
||||
PRODUCT_PACKAGES += \
|
||||
LineageBlackTheme \
|
||||
ThemePicker \
|
||||
ThemesStub
|
||||
|
||||
@@ -3,10 +3,6 @@ $(call inherit-product, vendor/lineage/config/common_mobile.mk)
|
||||
|
||||
PRODUCT_SIZE := full
|
||||
|
||||
# Include {Lato,Rubik} fonts
|
||||
$(call inherit-product-if-exists, external/google-fonts/lato/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/rubik/fonts.mk)
|
||||
|
||||
# Apps
|
||||
PRODUCT_PACKAGES += \
|
||||
Camelot \
|
||||
@@ -31,12 +27,6 @@ PRODUCT_PACKAGES += \
|
||||
unrar \
|
||||
zstd
|
||||
|
||||
# Fonts
|
||||
PRODUCT_PACKAGES += \
|
||||
fonts_customization.xml \
|
||||
FontLatoOverlay \
|
||||
FontRubikOverlay
|
||||
|
||||
# Include Lineage LatinIME dictionaries
|
||||
PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/dictionaries
|
||||
PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/lineage/overlay/dictionaries
|
||||
|
||||
15
config/evolution.mk
Normal file
@@ -0,0 +1,15 @@
|
||||
# Evolution X packages
|
||||
PRODUCT_PACKAGES += \
|
||||
EvoEgg
|
||||
|
||||
ifeq ($(EVO_BUILD_TYPE),Official)
|
||||
PRODUCT_PACKAGES += \
|
||||
Updater
|
||||
endif
|
||||
|
||||
# Private keys
|
||||
ifeq ($(EVO_BUILD_TYPE),Official)
|
||||
include vendor/evolution-priv/keys/keys.mk
|
||||
else
|
||||
-include vendor/evolution-priv/keys/keys.mk
|
||||
endif
|
||||
@@ -1,51 +0,0 @@
|
||||
ifeq ($(WITH_GMS),true)
|
||||
# Special handling for Android TV
|
||||
ifeq ($(PRODUCT_IS_ATV),true)
|
||||
ifneq (,$(wildcard vendor/partner_gms-tv))
|
||||
ifneq ($(GMS_MAKEFILE),)
|
||||
# Specify the GMS makefile you want to use, for example:
|
||||
# - gms.mk - default Android TV GMS
|
||||
# - gms_gtv.mk - default Google TV GMS
|
||||
# - gms_minimal.mk - minimal Android TV GMS
|
||||
$(call inherit-product, vendor/partner_gms-tv/products/$(GMS_MAKEFILE))
|
||||
else
|
||||
$(call inherit-product-if-exists, vendor/partner_gms-tv/products/gms.mk)
|
||||
endif
|
||||
$(call inherit-product-if-exists, vendor/partner_gms-tv/products/mainline_modules.mk)
|
||||
endif
|
||||
# Special handling for Android Automotive
|
||||
else ifeq ($(PRODUCT_IS_AUTOMOTIVE),true)
|
||||
ifneq (,$(wildcard vendor/partner_gms-car))
|
||||
ifneq ($(GMS_MAKEFILE),)
|
||||
$(call inherit-product, vendor/partner_gms-car/products/$(GMS_MAKEFILE))
|
||||
else
|
||||
$(call inherit-product-if-exists, vendor/partner_gms-car/products/gms.mk)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
ifneq (,$(wildcard vendor/partner_gms))
|
||||
# Specify the GMS makefile you want to use, for example:
|
||||
# - fi.mk - Project Fi
|
||||
# - gms.mk - default GMS
|
||||
# - gms_go.mk - low ram devices
|
||||
# - gms_go_2gb.mk - low ram devices (2GB)
|
||||
# - gms_64bit_only.mk - devices supporting 64-bit only
|
||||
# - gms_minimal.mk - minimal GMS
|
||||
ifneq ($(GMS_MAKEFILE),)
|
||||
$(call inherit-product, vendor/partner_gms/products/$(GMS_MAKEFILE))
|
||||
else
|
||||
$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$(wildcard vendor/partner_modules))
|
||||
# Specify the mainline module makefile you want to use, for example:
|
||||
# - mainline_modules.mk - updatable apex
|
||||
# - mainline_modules_flatten_apex.mk - flatten apex
|
||||
# - mainline_modules_low_ram.mk - low ram devices
|
||||
ifneq ($(MAINLINE_MODULES_MAKEFILE),)
|
||||
$(call inherit-product, vendor/partner_modules/build/$(MAINLINE_MODULES_MAKEFILE))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -28,3 +28,6 @@ PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
||||
# Disable mobile data by default
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.com.android.mobiledata=false
|
||||
|
||||
# Inherit BCR
|
||||
$(call inherit-product, vendor/extras/bcr/bcr.mk)
|
||||
|
||||
@@ -1,45 +1,19 @@
|
||||
PRODUCT_VERSION_MAJOR = 23
|
||||
PRODUCT_VERSION_MAJOR = 16
|
||||
PRODUCT_VERSION_MINOR = 0
|
||||
|
||||
ifeq ($(LINEAGE_VERSION_APPEND_TIME_OF_DAY),true)
|
||||
LINEAGE_BUILD_DATE := $(shell date -u +%Y%m%d_%H%M%S)
|
||||
else
|
||||
LINEAGE_BUILD_DATE := $(shell date -u +%Y%m%d)
|
||||
endif
|
||||
|
||||
# Set LINEAGE_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
|
||||
|
||||
ifndef LINEAGE_BUILDTYPE
|
||||
ifdef RELEASE_TYPE
|
||||
# Starting with "LINEAGE_" is optional
|
||||
RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^LINEAGE_||g')
|
||||
LINEAGE_BUILDTYPE := $(RELEASE_TYPE)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Filter out random types, so it'll reset to UNOFFICIAL
|
||||
ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(LINEAGE_BUILDTYPE)),)
|
||||
LINEAGE_BUILDTYPE := UNOFFICIAL
|
||||
LINEAGE_EXTRAVERSION :=
|
||||
endif
|
||||
|
||||
ifeq ($(LINEAGE_BUILDTYPE), UNOFFICIAL)
|
||||
ifneq ($(TARGET_UNOFFICIAL_BUILD_ID),)
|
||||
LINEAGE_EXTRAVERSION := -$(TARGET_UNOFFICIAL_BUILD_ID)
|
||||
endif
|
||||
endif
|
||||
|
||||
LINEAGE_VERSION_SUFFIX := $(LINEAGE_BUILD_DATE)-$(LINEAGE_BUILDTYPE)$(LINEAGE_EXTRAVERSION)-$(LINEAGE_BUILD)
|
||||
# Increase EVO Version with each major release.
|
||||
EVO_VERSION := 11.0
|
||||
EVO_BUILD_TYPE ?= Unofficial
|
||||
|
||||
# Internal version
|
||||
LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(LINEAGE_VERSION_SUFFIX)
|
||||
LINEAGE_VERSION := EvolutionX-$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date +%Y%m%d)-$(LINEAGE_BUILD)-$(EVO_VERSION)-$(EVO_BUILD_TYPE)
|
||||
|
||||
# Display version
|
||||
LINEAGE_DISPLAY_VERSION := $(PRODUCT_VERSION_MAJOR)-$(LINEAGE_VERSION_SUFFIX)
|
||||
LINEAGE_DISPLAY_VERSION := v$(EVO_VERSION)-$(shell date +%Y%m%d)
|
||||
|
||||
# LineageOS version properties
|
||||
# Evolution X version properties
|
||||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
ro.lineage.version=$(LINEAGE_VERSION) \
|
||||
ro.lineage.display.version=$(LINEAGE_DISPLAY_VERSION) \
|
||||
ro.lineage.build.version=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR) \
|
||||
ro.lineage.releasetype=$(LINEAGE_BUILDTYPE)
|
||||
ro.evolution.build.version=$(LINEAGE_VERSION) \
|
||||
ro.evolution.display.version=$(LINEAGE_DISPLAY_VERSION) \
|
||||
ro.evolution.version=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR) \
|
||||
ro.modversion=$(EVO_VERSION)
|
||||
|
||||
|
Before Width: | Height: | Size: 509 KiB After Width: | Height: | Size: 572 KiB |
|
Before Width: | Height: | Size: 400 KiB After Width: | Height: | Size: 465 KiB |
|
Before Width: | Height: | Size: 801 KiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 801 KiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 943 KiB |
|
Before Width: | Height: | Size: 801 KiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 2.4 MiB |
@@ -36,4 +36,7 @@
|
||||
<string name="config_styles_and_wallpaper_picker_class" translatable="false">com.android.customization.picker.CustomizationPickerActivity</string>
|
||||
<!-- Action name for the styles & wallpaper picker activity. -->
|
||||
<string name="config_styles_and_wallpaper_picker_action" translatable="false">android.intent.action.SET_WALLPAPER</string>
|
||||
|
||||
<!-- Whether or not device header widget tile should display in device info page -->
|
||||
<bool name="config_show_device_header_in_device_info">false</bool>
|
||||
</resources>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
//
|
||||
// Copyright (C) 2022 The LineageOS Project
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
runtime_resource_overlay {
|
||||
name: "Launcher3Overlay",
|
||||
product_specific: true,
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2022 The LineageOS Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.launcher3.overlay">
|
||||
|
||||
<overlay
|
||||
android:isStatic="true"
|
||||
android:priority="100"
|
||||
android:targetPackage="com.android.launcher3" />
|
||||
</manifest>
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2021,2023 The LineageOS Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources>
|
||||
|
||||
<!-- Default packages -->
|
||||
<string name="wallpaper_picker_package" translatable="false">com.android.wallpaper</string>
|
||||
|
||||
</resources>
|
||||
@@ -7,7 +7,7 @@ export C=/tmp/backupdir
|
||||
export SYSDEV="$(readlink -nf "$2")"
|
||||
export SYSFS="$3"
|
||||
export TMPDIR=/tmp
|
||||
export V=23
|
||||
export V=16.0
|
||||
|
||||
export ADDOND_VERSION=3
|
||||
|
||||
@@ -48,7 +48,7 @@ if [ ! -r $S/build.prop ]; then
|
||||
echo "Backup/restore is not possible. Partition is probably empty"
|
||||
return 1
|
||||
fi
|
||||
if ! grep -q "^ro.lineage.version=$V.*" $S/build.prop; then
|
||||
if ! grep -q "^ro.evolution.version=$V.*" $S/build.prop; then
|
||||
echo "Backup/restore is not possible. Incompatible ROM version: $V"
|
||||
return 2
|
||||
fi
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
export S=/system
|
||||
export C=/postinstall/tmp/backupdir
|
||||
export V=23
|
||||
export V=16.0
|
||||
|
||||
export ADDOND_VERSION=3
|
||||
|
||||
@@ -56,7 +56,7 @@ if [ ! -r /system/build.prop ]; then
|
||||
echo "Backup/restore is not possible. Partition is probably empty"
|
||||
return 1
|
||||
fi
|
||||
if ! grep -q "^ro.lineage.version=$V.*" /system/build.prop; then
|
||||
if ! grep -q "^ro.evolution.version=$V.*" /system/build.prop; then
|
||||
echo "Backup/restore is not possible. Incompatible ROM version: $V"
|
||||
return 2
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
on post-fs-data
|
||||
# Create an additional OTA package directory that unlike /data/ota_package
|
||||
# will not be touched by GmsCore.
|
||||
mkdir /data/lineageos_updates 0770 system cache encryption=Require
|
||||
mkdir /data/evolution_updates 0770 system cache encryption=Require
|
||||
|
||||