Raspberry Vanilla IPMT
This commit is contained in:
18
android13/vendor/brcm/APKMirror/Android.mk
vendored
Normal file
18
android13/vendor/brcm/APKMirror/Android.mk
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := APKMirror
|
||||
LOCAL_SRC_FILES := apkmirror_1.4.2.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
LOCAL_PRIVILEGED_MODULE := true
|
||||
# LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar android.ext.adservices
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/APKMirror/apkmirror_1.4.2.apk
vendored
Normal file
BIN
android13/vendor/brcm/APKMirror/apkmirror_1.4.2.apk
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/APKPure/APKPure_v3.19.73.apk
vendored
Normal file
BIN
android13/vendor/brcm/APKPure/APKPure_v3.19.73.apk
vendored
Normal file
Binary file not shown.
18
android13/vendor/brcm/APKPure/Android.mk
vendored
Normal file
18
android13/vendor/brcm/APKPure/Android.mk
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := APKPure
|
||||
LOCAL_SRC_FILES := APKPure_v3.19.73.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
LOCAL_PRIVILEGED_MODULE := true
|
||||
# LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
LOCAL_OPTIONAL_USES_LIBRARIES := org.apache.http.legacy androidx.window.extensions androidx.window.sidecar
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
18
android13/vendor/brcm/AuroraStore/Android.mk
vendored
Normal file
18
android13/vendor/brcm/AuroraStore/Android.mk
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := AuroraStore
|
||||
LOCAL_SRC_FILES := aurora-store-4-4-4.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
LOCAL_PRIVILEGED_MODULE := true
|
||||
# LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/AuroraStore/aurora-store-4-4-4.apk
vendored
Normal file
BIN
android13/vendor/brcm/AuroraStore/aurora-store-4-4-4.apk
vendored
Normal file
Binary file not shown.
18
android13/vendor/brcm/B4ABridge/Android.mk
vendored
Normal file
18
android13/vendor/brcm/B4ABridge/Android.mk
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := B4ABridge
|
||||
LOCAL_SRC_FILES := B4ABridge.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
#LOCAL_PRIVILEGED_MODULE = true
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/B4ABridge/B4ABridge.apk
vendored
Normal file
BIN
android13/vendor/brcm/B4ABridge/B4ABridge.apk
vendored
Normal file
Binary file not shown.
18
android13/vendor/brcm/EthernetConfigurator/Android.mk
vendored
Normal file
18
android13/vendor/brcm/EthernetConfigurator/Android.mk
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := EthernetConfigurator
|
||||
LOCAL_SRC_FILES := app-release.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
LOCAL_PRIVILEGED_MODULE := true
|
||||
# LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
#LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/EthernetConfigurator/app-release.apk
vendored
Normal file
BIN
android13/vendor/brcm/EthernetConfigurator/app-release.apk
vendored
Normal file
Binary file not shown.
16
android13/vendor/brcm/KernelSU/Android.mk
vendored
Normal file
16
android13/vendor/brcm/KernelSU/Android.mk
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_CLASS := ETC
|
||||
LOCAL_MODULE := KernelSU
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_CERTIFICATE := platform
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
#LOCAL_PRIVILEGED_MODULE := true
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/custom/KernelSU
|
||||
LOCAL_SRC_FILES := KernelSU_v0.9.4_11838-release.apk
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/KernelSU/KernelSU.apk
vendored
Normal file
BIN
android13/vendor/brcm/KernelSU/KernelSU.apk
vendored
Normal file
Binary file not shown.
18
android13/vendor/brcm/Notepad/Android.mk
vendored
Normal file
18
android13/vendor/brcm/Notepad/Android.mk
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := Notepad
|
||||
LOCAL_SRC_FILES := Notepad.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
#LOCAL_PRIVILEGED_MODULE = true
|
||||
# LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/Notepad/Notepad.apk
vendored
Normal file
BIN
android13/vendor/brcm/Notepad/Notepad.apk
vendored
Normal file
Binary file not shown.
16
android13/vendor/brcm/ipconfigstore/Android.mk
vendored
Normal file
16
android13/vendor/brcm/ipconfigstore/Android.mk
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := main.c data.c ipconfig.c
|
||||
|
||||
LOCAL_CFLAGS += -Wall -Wno-unused-parameter -Wextra
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libcutils \
|
||||
liblog \
|
||||
libandroidfw \
|
||||
libutils \
|
||||
libbinder \
|
||||
libjsoncpp
|
||||
LOCAL_MODULE := ipconfigstore
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
||||
383
android13/vendor/brcm/ipconfigstore/data.c
vendored
Normal file
383
android13/vendor/brcm/ipconfigstore/data.c
vendored
Normal file
@@ -0,0 +1,383 @@
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "data.h"
|
||||
|
||||
uint16_t convertBigEndianUInt16(uint16_t value)
|
||||
{
|
||||
union { uint16_t value; unsigned char data[2]; } aux = { 0x4142 };
|
||||
|
||||
if (aux.data[0] == 0x41)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
aux.data[0] = (value >> 8) & 0xff;
|
||||
aux.data[1] = value & 0xff;
|
||||
|
||||
return aux.value;
|
||||
}
|
||||
|
||||
uint32_t convertBigEndianUInt32(uint32_t value)
|
||||
{
|
||||
union { uint32_t value; unsigned char data[4]; } aux = { 0x41424344 };
|
||||
|
||||
if (aux.data[0] == 0x41)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
aux.data[0] = (value >> 24) & 0xff;
|
||||
aux.data[1] = (value >> 16) & 0xff;
|
||||
aux.data[2] = (value >> 8) & 0xff;
|
||||
aux.data[3] = value & 0xff;
|
||||
|
||||
return aux.value;
|
||||
}
|
||||
|
||||
bool readPackedLink(FILE *stream, struct IPConfigLink *link)
|
||||
{
|
||||
char **address = &link->address;
|
||||
uint32_t *prefix = &link->prefix;
|
||||
|
||||
if (!readPackedString(stream, address))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!readPackedUInt32(stream, prefix))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool readPackedRoute(FILE *stream, struct IPConfigRoute *route)
|
||||
{
|
||||
char **destinationAddress = &route->destination.address;
|
||||
uint32_t *destinationPrefix = &route->destination.prefix;
|
||||
char **nextHop = &route->nextHop;
|
||||
|
||||
uint32_t haveDestination = 0;
|
||||
uint32_t haveNextHop = 0;
|
||||
|
||||
if (!readPackedUInt32(stream, &haveDestination))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (haveDestination)
|
||||
{
|
||||
if (!readPackedString(stream, destinationAddress))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!readPackedUInt32(stream, destinationPrefix))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!readPackedUInt32(stream, &haveNextHop))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (haveNextHop)
|
||||
{
|
||||
if (!readPackedString(stream, nextHop))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool readPackedString(FILE *stream, char **string)
|
||||
{
|
||||
uint16_t length = 0;
|
||||
|
||||
if (!readPackedUInt16(stream, &length))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
while (length == 0)
|
||||
{
|
||||
if (fseek(stream, sizeof(uint16_t), SEEK_CUR) == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!readPackedUInt16(stream, &length))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
*string = calloc(1, length + 1);
|
||||
|
||||
if (!*string)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (fread(*string, length, 1, stream) != 1)
|
||||
{
|
||||
if (!feof(stream))
|
||||
{
|
||||
free(*string);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool readPackedUInt16(FILE *stream, uint16_t *value)
|
||||
{
|
||||
uint16_t buffer = 0;
|
||||
|
||||
if (fread(&buffer, sizeof buffer, 1, stream) != 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
*value = convertBigEndianUInt16(buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool readPackedUInt32(FILE *stream, uint32_t *value)
|
||||
{
|
||||
uint32_t buffer = 0;
|
||||
|
||||
if (fread(&buffer, sizeof buffer, 1, stream) != 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
*value = convertBigEndianUInt32(buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool writePackedRoute(struct IPConfigRoute *route, FILE *stream)
|
||||
{
|
||||
struct IPConfigLink *destination = &route->destination;
|
||||
|
||||
if (destination->address && destination->prefix)
|
||||
{
|
||||
if (!writePackedUInt32(1, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!writePackedString(destination->address, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!writePackedUInt32(destination->prefix, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if (!writePackedUInt32(0, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (route->nextHop)
|
||||
{
|
||||
if (!writePackedUInt32(1, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!writePackedString(route->nextHop, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if (!writePackedUInt32(0, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool writePackedLink(struct IPConfigLink *link, FILE *stream)
|
||||
{
|
||||
if (!writePackedString(link->address, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!writePackedUInt32(link->prefix, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool writePackedString(char *string, FILE *stream)
|
||||
{
|
||||
size_t stringLength = strlen(string);
|
||||
|
||||
if (!writePackedUInt16(stringLength, stream))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return fwrite(string, stringLength, 1, stream) == 1;
|
||||
}
|
||||
|
||||
bool writePackedUInt16(uint16_t value, FILE *stream)
|
||||
{
|
||||
uint16_t buffer = convertBigEndianUInt16(value);
|
||||
return fwrite(&buffer, sizeof buffer, 1, stream) == 1;
|
||||
}
|
||||
|
||||
bool writePackedUInt32(uint32_t value, FILE *stream)
|
||||
{
|
||||
uint32_t buffer = convertBigEndianUInt32(value);
|
||||
return fwrite(&buffer, sizeof buffer, 1, stream) == 1;
|
||||
}
|
||||
|
||||
bool readUnpackedLine(FILE *stream, char **line)
|
||||
{
|
||||
char *cursor = NULL;
|
||||
|
||||
*line = calloc(1, BUFSIZ);
|
||||
|
||||
if (!*line)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
cursor = *line;
|
||||
|
||||
while (cursor - *line < BUFSIZ)
|
||||
{
|
||||
int character = fgetc(stream);
|
||||
|
||||
if (character == EOF || character == '\n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
*cursor++ = character;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool parseUnpackedPair(char *line, char **key, char **value)
|
||||
{
|
||||
char *next = index(line, ':');
|
||||
|
||||
if (!next)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
*key = strndup(line, next - line);
|
||||
|
||||
if (!*key)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
while (*++next && isspace(*next));
|
||||
*value = strdup(next);
|
||||
|
||||
if (!*value)
|
||||
{
|
||||
free(*key);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool parseUnpackedRoute(char *string, struct IPConfigRoute *route)
|
||||
{
|
||||
char *next = index(string, ' ');
|
||||
|
||||
if (next)
|
||||
{
|
||||
*next = 0;
|
||||
|
||||
if (!parseUnpackedLink(string, &route->destination))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
string = ++next;
|
||||
}
|
||||
|
||||
route->nextHop = strdup(string);
|
||||
|
||||
if (!route->nextHop)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool parseUnpackedLink(char *string, struct IPConfigLink *link)
|
||||
{
|
||||
char *next = index(string, '/');
|
||||
|
||||
if (!next)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
link->address = strndup(string, next - string);
|
||||
|
||||
if (!link->address)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!parseUnpackedUInt32(++next, &link->prefix))
|
||||
{
|
||||
free(link->address);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool parseUnpackedUInt32(char *string, uint32_t *integer)
|
||||
{
|
||||
char *terminator = NULL;
|
||||
unsigned long value = strtoul(string, &terminator, 10);
|
||||
|
||||
if (*terminator)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
*integer = value % UINT32_MAX;
|
||||
return true;
|
||||
}
|
||||
31
android13/vendor/brcm/ipconfigstore/data.h
vendored
Normal file
31
android13/vendor/brcm/ipconfigstore/data.h
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef IPCONFIG_DATA_H
|
||||
#define IPCONFIG_DATA_H
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "ipconfig.h"
|
||||
|
||||
uint16_t convertBigEndianUInt16(uint16_t value);
|
||||
uint32_t convertBigEndianUInt32(uint32_t value);
|
||||
|
||||
bool readPackedRoute(FILE *stream, struct IPConfigRoute *route);
|
||||
bool readPackedLink(FILE *stream, struct IPConfigLink *link);
|
||||
bool readPackedString(FILE *stream, char **string);
|
||||
bool readPackedUInt16(FILE *stream, uint16_t *value);
|
||||
bool readPackedUInt32(FILE *stream, uint32_t *value);
|
||||
|
||||
bool writePackedRoute(struct IPConfigRoute *route, FILE *stream);
|
||||
bool writePackedLink(struct IPConfigLink *link, FILE *stream);
|
||||
bool writePackedString(char *string, FILE *stream);
|
||||
bool writePackedUInt16(uint16_t value, FILE *stream);
|
||||
bool writePackedUInt32(uint32_t value, FILE *stream);
|
||||
|
||||
bool readUnpackedLine(FILE *stream, char **line);
|
||||
bool parseUnpackedPair(char *line, char **key, char **value);
|
||||
bool parseUnpackedRoute(char *string, struct IPConfigRoute *route);
|
||||
bool parseUnpackedLink(char *string, struct IPConfigLink *link);
|
||||
bool parseUnpackedUInt32(char *string, uint32_t *integer);
|
||||
|
||||
#endif
|
||||
14
android13/vendor/brcm/ipconfigstore/error.h
vendored
Normal file
14
android13/vendor/brcm/ipconfigstore/error.h
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
#ifndef IPCONFIG_ERROR_H
|
||||
#define IPCONFIG_ERROR_H
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#define printError(message) \
|
||||
fprintf(stderr, "%s: %s\n", __func__, message)
|
||||
|
||||
#define printLibraryError(message) \
|
||||
fprintf(stderr, "%s: %s: %s\n", __func__, message, strerror(errno))
|
||||
|
||||
#endif
|
||||
530
android13/vendor/brcm/ipconfigstore/ipconfig.c
vendored
Normal file
530
android13/vendor/brcm/ipconfigstore/ipconfig.c
vendored
Normal file
@@ -0,0 +1,530 @@
|
||||
#define _DEFAULT_SOURCE
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "data.h"
|
||||
#include "ipconfig.h"
|
||||
#include "error.h"
|
||||
|
||||
#define calculateElementCount(array) (sizeof array / sizeof *array)
|
||||
|
||||
static const uint32_t IPConfigFileMinimumVersion = 1;
|
||||
static const uint32_t IPConfigFileMaximumVersion = 3;
|
||||
|
||||
static char *IPConfigTerminatorKey = "eos";
|
||||
|
||||
static struct IPConfigAttributeKey IPConfigVersion1AttributeKeys[] =
|
||||
{
|
||||
{"id", IntegerIPConfigAttributeType},
|
||||
{"ipAssignment", StringIPConfigAttributeType},
|
||||
{"linkAddress", LinkIPConfigAttributeType},
|
||||
{"gateway", StringIPConfigAttributeType},
|
||||
{"dns", StringIPConfigAttributeType},
|
||||
{"proxySettings", StringIPConfigAttributeType},
|
||||
{"proxyHost", StringIPConfigAttributeType},
|
||||
{"proxyPort", IntegerIPConfigAttributeType},
|
||||
{"proxyPac", StringIPConfigAttributeType},
|
||||
{"exclusionList", StringIPConfigAttributeType},
|
||||
{"eos", TerminalIPConfigAttributeType}
|
||||
};
|
||||
|
||||
static size_t IPConfigVersion1AttributeKeyCount =
|
||||
calculateElementCount(IPConfigVersion1AttributeKeys);
|
||||
|
||||
static struct IPConfigAttributeKey IPConfigVersion2AttributeKeys[] =
|
||||
{
|
||||
{"id", IntegerIPConfigAttributeType},
|
||||
{"ipAssignment", StringIPConfigAttributeType},
|
||||
{"linkAddress", LinkIPConfigAttributeType},
|
||||
{"gateway", RouteIPConfigAttributeType},
|
||||
{"dns", StringIPConfigAttributeType},
|
||||
{"proxySettings", StringIPConfigAttributeType},
|
||||
{"proxyHost", StringIPConfigAttributeType},
|
||||
{"proxyPort", IntegerIPConfigAttributeType},
|
||||
{"proxyPac", StringIPConfigAttributeType},
|
||||
{"exclusionList", StringIPConfigAttributeType},
|
||||
{"eos", TerminalIPConfigAttributeType}
|
||||
};
|
||||
|
||||
static size_t IPConfigVersion2AttributeKeyCount =
|
||||
calculateElementCount(IPConfigVersion2AttributeKeys);
|
||||
|
||||
static struct IPConfigAttributeKey IPConfigVersion3AttributeKeys[] =
|
||||
{
|
||||
{"id", StringIPConfigAttributeType},
|
||||
{"ipAssignment", StringIPConfigAttributeType},
|
||||
{"linkAddress", LinkIPConfigAttributeType},
|
||||
{"gateway", RouteIPConfigAttributeType},
|
||||
{"dns", StringIPConfigAttributeType},
|
||||
{"proxySettings", StringIPConfigAttributeType},
|
||||
{"proxyHost", StringIPConfigAttributeType},
|
||||
{"proxyPort", IntegerIPConfigAttributeType},
|
||||
{"proxyPac", StringIPConfigAttributeType},
|
||||
{"exclusionList", StringIPConfigAttributeType},
|
||||
{"eos", TerminalIPConfigAttributeType}
|
||||
};
|
||||
|
||||
static size_t IPConfigVersion3AttributeKeyCount =
|
||||
calculateElementCount(IPConfigVersion3AttributeKeys);
|
||||
|
||||
static enum IPConfigAttributeType getAttributeType(uint32_t version, char *key)
|
||||
{
|
||||
size_t keyLength = strlen(key);
|
||||
|
||||
struct IPConfigAttributeKey *keys = NULL;
|
||||
size_t count = 0;
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 1:
|
||||
keys = IPConfigVersion1AttributeKeys;
|
||||
count = IPConfigVersion1AttributeKeyCount;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
keys = IPConfigVersion2AttributeKeys;
|
||||
count = IPConfigVersion2AttributeKeyCount;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
keys = IPConfigVersion3AttributeKeys;
|
||||
count = IPConfigVersion3AttributeKeyCount;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
||||
for (size_t index = 0; index < count; index++)
|
||||
{
|
||||
char *candidate = keys[index].key;
|
||||
size_t maximumLength = strlen(candidate);
|
||||
|
||||
if (keyLength > maximumLength)
|
||||
{
|
||||
maximumLength = keyLength;
|
||||
}
|
||||
|
||||
if (!strncmp(candidate, key, maximumLength))
|
||||
{
|
||||
return keys[index].type;
|
||||
}
|
||||
}
|
||||
|
||||
return InvalidIPConfigAttributeType;
|
||||
}
|
||||
|
||||
static void appendAttribute(struct IPConfigAttribute *attribute,
|
||||
struct IPConfig *config)
|
||||
{
|
||||
if (!config->attributes)
|
||||
{
|
||||
config->attributes = attribute;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
struct IPConfigAttribute *previous = config->attributes;
|
||||
|
||||
while (previous->next)
|
||||
{
|
||||
previous = previous->next;
|
||||
}
|
||||
|
||||
previous->next = attribute;
|
||||
}
|
||||
}
|
||||
|
||||
bool readPackedIPConfig(FILE *stream, struct IPConfig *config)
|
||||
{
|
||||
if (!readPackedUInt32(stream, &config->version))
|
||||
{
|
||||
printError("failed to read file version");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (config->version < IPConfigFileMinimumVersion ||
|
||||
config->version > IPConfigFileMaximumVersion)
|
||||
{
|
||||
printError("unrecognized file version");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
while (!feof(stream))
|
||||
{
|
||||
struct IPConfigAttribute *attribute = NULL;
|
||||
attribute = calloc(1, sizeof(struct IPConfigAttribute));
|
||||
|
||||
if (!attribute)
|
||||
{
|
||||
printLibraryError("calloc");
|
||||
deinitializeIPConfig(config);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
appendAttribute(attribute, config);
|
||||
|
||||
if (!readPackedString(stream, &attribute->key))
|
||||
{
|
||||
printError("failed to read attribute key");
|
||||
deinitializeIPConfig(config);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
attribute->type = getAttributeType(config->version,
|
||||
attribute->key);
|
||||
|
||||
if (attribute->type == InvalidIPConfigAttributeType)
|
||||
{
|
||||
printError("unrecognized attribute key");
|
||||
deinitializeIPConfig(config);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
else if (attribute->type == TerminalIPConfigAttributeType)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
else if (attribute->type == IntegerIPConfigAttributeType)
|
||||
{
|
||||
uint32_t *integer = &attribute->value.integer;
|
||||
|
||||
if (!readPackedUInt32(stream, integer))
|
||||
{
|
||||
printError("failed to read integer");
|
||||
deinitializeIPConfig(config);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
else if (attribute->type == StringIPConfigAttributeType)
|
||||
{
|
||||
char **string = &attribute->value.string;
|
||||
|
||||
if (!readPackedString(stream, string))
|
||||
{
|
||||
printError("failed to read string");
|
||||
deinitializeIPConfig(config);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
else if (attribute->type == LinkIPConfigAttributeType)
|
||||
{
|
||||
if (!readPackedLink(stream, &attribute->value.link))
|
||||
{
|
||||
printError("failed to read link");
|
||||
deinitializeIPConfig(config);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
else if (attribute->type == RouteIPConfigAttributeType)
|
||||
{
|
||||
if (!readPackedRoute(stream, &attribute->value.route))
|
||||
{
|
||||
printError("failed to read route");
|
||||
deinitializeIPConfig(config);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void deinitializeIPConfig(struct IPConfig *config)
|
||||
{
|
||||
struct IPConfigAttribute *next = NULL;
|
||||
struct IPConfigAttribute *attribute = config->attributes;
|
||||
|
||||
while (attribute)
|
||||
{
|
||||
union IPConfigValue *value = &attribute->value;
|
||||
|
||||
if (attribute->type == StringIPConfigAttributeType)
|
||||
{
|
||||
free(value->string);
|
||||
}
|
||||
|
||||
else if (attribute->type == LinkIPConfigAttributeType)
|
||||
{
|
||||
free(value->link.address);
|
||||
}
|
||||
|
||||
else if (attribute->type == RouteIPConfigAttributeType)
|
||||
{
|
||||
if (value->route.destination.address)
|
||||
{
|
||||
free(value->route.destination.address);
|
||||
}
|
||||
|
||||
if (value->route.nextHop)
|
||||
{
|
||||
free(value->route.nextHop);
|
||||
}
|
||||
}
|
||||
|
||||
next = attribute->next;
|
||||
free(attribute->key);
|
||||
free(attribute);
|
||||
attribute = next;
|
||||
}
|
||||
}
|
||||
|
||||
bool writePackedIPConfig(struct IPConfig *config, FILE *stream)
|
||||
{
|
||||
bool terminated = false;
|
||||
struct IPConfigAttribute *attribute = config->attributes;
|
||||
|
||||
if (!writePackedUInt32(config->version, stream))
|
||||
{
|
||||
printError("failed to write file version");
|
||||
return false;
|
||||
}
|
||||
|
||||
while (attribute)
|
||||
{
|
||||
union IPConfigValue *value = &attribute->value;
|
||||
|
||||
if (!writePackedString(attribute->key, stream))
|
||||
{
|
||||
printError("failed to write key");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (attribute->type == TerminalIPConfigAttributeType)
|
||||
{
|
||||
terminated = true;
|
||||
break;
|
||||
}
|
||||
|
||||
else if (attribute->type == IntegerIPConfigAttributeType)
|
||||
{
|
||||
if (!writePackedUInt32(value->integer, stream))
|
||||
{
|
||||
printError("failed to write integer");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
else if (attribute->type == StringIPConfigAttributeType)
|
||||
{
|
||||
if (!writePackedString(value->string, stream))
|
||||
{
|
||||
printError("failed to write string");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
else if (attribute->type == LinkIPConfigAttributeType)
|
||||
{
|
||||
if (!writePackedLink(&value->link, stream))
|
||||
{
|
||||
printError("failed to write link");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
else if (attribute->type == RouteIPConfigAttributeType)
|
||||
{
|
||||
if (!writePackedRoute(&value->route, stream))
|
||||
{
|
||||
printError("failed to write route");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
attribute = attribute->next;
|
||||
}
|
||||
|
||||
if (!terminated)
|
||||
{
|
||||
if (!writePackedString(IPConfigTerminatorKey, stream))
|
||||
{
|
||||
printError("failed to write terminator");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool writeUnpackedIPConfig(struct IPConfig *config, FILE *stream)
|
||||
{
|
||||
struct IPConfigAttribute *attribute = config->attributes;
|
||||
|
||||
while (attribute)
|
||||
{
|
||||
if (attribute->type == IntegerIPConfigAttributeType)
|
||||
{
|
||||
fprintf(stream, "%s: %" PRIu32 "\n",
|
||||
attribute->key,
|
||||
attribute->value.integer);
|
||||
}
|
||||
|
||||
else if (attribute->type == StringIPConfigAttributeType)
|
||||
{
|
||||
fprintf(stream, "%s: %s\n",
|
||||
attribute->key,
|
||||
attribute->value.string);
|
||||
}
|
||||
|
||||
else if (attribute->type == LinkIPConfigAttributeType)
|
||||
{
|
||||
struct IPConfigLink *link = &attribute->value.link;
|
||||
|
||||
fprintf(stream, "%s: %s/%" PRIu32 "\n",
|
||||
attribute->key,
|
||||
link->address,
|
||||
link->prefix);
|
||||
}
|
||||
|
||||
else if (attribute->type == RouteIPConfigAttributeType)
|
||||
{
|
||||
struct IPConfigRoute *route = &attribute->value.route;
|
||||
struct IPConfigLink *destination = &route->destination;
|
||||
|
||||
if (destination->address && destination->prefix)
|
||||
{
|
||||
fprintf(stream, "%s: %s/%" PRIu32 " %s\n",
|
||||
attribute->key,
|
||||
destination->address,
|
||||
destination->prefix,
|
||||
route->nextHop);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
fprintf(stream, "%s: %s\n",
|
||||
attribute->key,
|
||||
route->nextHop);
|
||||
}
|
||||
}
|
||||
|
||||
attribute = attribute->next;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool readUnpackedIPConfig(FILE *stream, struct IPConfig *config)
|
||||
{
|
||||
if (config->version < IPConfigFileMinimumVersion ||
|
||||
config->version > IPConfigFileMaximumVersion)
|
||||
{
|
||||
printError("unrecognized file version");
|
||||
return false;
|
||||
}
|
||||
|
||||
while (!feof(stream))
|
||||
{
|
||||
char *line = NULL;
|
||||
char *value = NULL;
|
||||
|
||||
struct IPConfigAttribute *attribute = NULL;
|
||||
attribute = calloc(1, sizeof(struct IPConfigAttribute));
|
||||
|
||||
if (!attribute)
|
||||
{
|
||||
printLibraryError("calloc");
|
||||
deinitializeIPConfig(config);
|
||||
return false;
|
||||
}
|
||||
|
||||
appendAttribute(attribute, config);
|
||||
|
||||
if (!readUnpackedLine(stream, &line))
|
||||
{
|
||||
printError("failed to read line");
|
||||
deinitializeIPConfig(config);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strlen(line) == 0)
|
||||
{
|
||||
free(line);
|
||||
|
||||
if (feof(stream))
|
||||
{
|
||||
attribute->key = strdup(IPConfigTerminatorKey);
|
||||
break;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!parseUnpackedPair(line, &attribute->key, &value))
|
||||
{
|
||||
printError("failed to read pair");
|
||||
deinitializeIPConfig(config);
|
||||
free(line);
|
||||
return false;
|
||||
}
|
||||
|
||||
free(line);
|
||||
attribute->type = getAttributeType(config->version,
|
||||
attribute->key);
|
||||
|
||||
if (!attribute->type)
|
||||
{
|
||||
printError("unrecognized attribute type");
|
||||
deinitializeIPConfig(config);
|
||||
free(value);
|
||||
return false;
|
||||
}
|
||||
|
||||
else if (attribute->type == IntegerIPConfigAttributeType)
|
||||
{
|
||||
uint32_t *integer = &attribute->value.integer;
|
||||
|
||||
if (!parseUnpackedUInt32(value, integer))
|
||||
{
|
||||
printError("failed to read integer");
|
||||
deinitializeIPConfig(config);
|
||||
free(value);
|
||||
return false;
|
||||
}
|
||||
|
||||
free(value);
|
||||
}
|
||||
|
||||
else if (attribute->type == StringIPConfigAttributeType)
|
||||
{
|
||||
attribute->value.string = value;
|
||||
}
|
||||
|
||||
else if (attribute->type == LinkIPConfigAttributeType)
|
||||
{
|
||||
if (!parseUnpackedLink(value, &attribute->value.link))
|
||||
{
|
||||
printError("failed to read link");
|
||||
deinitializeIPConfig(config);
|
||||
free(value);
|
||||
return false;
|
||||
}
|
||||
|
||||
free(value);
|
||||
}
|
||||
|
||||
else if (attribute->type == RouteIPConfigAttributeType)
|
||||
{
|
||||
struct IPConfigRoute *route = &attribute->value.route;
|
||||
|
||||
if (!parseUnpackedRoute(value, route))
|
||||
{
|
||||
printError("failed to read route");
|
||||
deinitializeIPConfig(config);
|
||||
free(value);
|
||||
return false;
|
||||
}
|
||||
|
||||
free(value);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
64
android13/vendor/brcm/ipconfigstore/ipconfig.h
vendored
Normal file
64
android13/vendor/brcm/ipconfigstore/ipconfig.h
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
#ifndef IPCONFIG_H
|
||||
#define IPCONFIG_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
enum IPConfigAttributeType
|
||||
{
|
||||
InvalidIPConfigAttributeType = -1,
|
||||
TerminalIPConfigAttributeType = 0,
|
||||
IntegerIPConfigAttributeType = 1,
|
||||
StringIPConfigAttributeType = 2,
|
||||
LinkIPConfigAttributeType = 3,
|
||||
RouteIPConfigAttributeType = 4
|
||||
};
|
||||
|
||||
struct IPConfigAttributeKey
|
||||
{
|
||||
char *key;
|
||||
enum IPConfigAttributeType type;
|
||||
};
|
||||
|
||||
struct IPConfigLink
|
||||
{
|
||||
char *address;
|
||||
uint32_t prefix;
|
||||
};
|
||||
|
||||
struct IPConfigRoute
|
||||
{
|
||||
struct IPConfigLink destination;
|
||||
char *nextHop;
|
||||
};
|
||||
|
||||
union IPConfigValue
|
||||
{
|
||||
uint32_t integer;
|
||||
char *string;
|
||||
struct IPConfigLink link;
|
||||
struct IPConfigRoute route;
|
||||
};
|
||||
|
||||
struct IPConfigAttribute
|
||||
{
|
||||
enum IPConfigAttributeType type;
|
||||
char *key;
|
||||
union IPConfigValue value;
|
||||
struct IPConfigAttribute *next;
|
||||
};
|
||||
|
||||
struct IPConfig
|
||||
{
|
||||
uint32_t version;
|
||||
struct IPConfigAttribute *attributes;
|
||||
};
|
||||
|
||||
bool readPackedIPConfig(FILE *stream, struct IPConfig *config);
|
||||
bool readUnpackedIPConfig(FILE *stream, struct IPConfig *config);
|
||||
bool writePackedIPConfig(struct IPConfig *config, FILE *stream);
|
||||
bool writeUnpackedIPConfig(struct IPConfig *config, FILE *stream);
|
||||
|
||||
void deinitializeIPConfig(struct IPConfig *config);
|
||||
|
||||
#endif
|
||||
71
android13/vendor/brcm/ipconfigstore/main.c
vendored
Normal file
71
android13/vendor/brcm/ipconfigstore/main.c
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
#define _XOPEN_SOURCE
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "ipconfig.h"
|
||||
#include "error.h"
|
||||
|
||||
static void usage(FILE *stream)
|
||||
{
|
||||
fprintf(stream, "usage: ipconfigstore OPTION\n");
|
||||
fprintf(stream, "\n");
|
||||
fprintf(stream, "Options:\n");
|
||||
fprintf(stream, " -p VERSION Pack IP configuration\n");
|
||||
fprintf(stream, " -u Unpack IP configuration\n");
|
||||
fprintf(stream, "\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int option = 0;
|
||||
struct IPConfig config = {0};
|
||||
|
||||
option = getopt(argc, argv, "hp:u");
|
||||
|
||||
if (option == 'h')
|
||||
{
|
||||
usage(stdout);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
else if (option == 'p')
|
||||
{
|
||||
config.version = *optarg - 0x30;
|
||||
|
||||
if (!readUnpackedIPConfig(stdin, &config))
|
||||
{
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (!writePackedIPConfig(&config, stdout))
|
||||
{
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
deinitializeIPConfig(&config);
|
||||
}
|
||||
|
||||
else if (option == 'u')
|
||||
{
|
||||
if (!readPackedIPConfig(stdin, &config))
|
||||
{
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (!writeUnpackedIPConfig(&config, stdout))
|
||||
{
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
deinitializeIPConfig(&config);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
usage(stderr);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
17
android13/vendor/brcm/microg/Android.mk
vendored
Normal file
17
android13/vendor/brcm/microg/Android.mk
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := microg
|
||||
LOCAL_SRC_FILES := microg.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
LOCAL_PRIVILEGED_MODULE = true
|
||||
# LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/microg/microg.apk
vendored
Normal file
BIN
android13/vendor/brcm/microg/microg.apk
vendored
Normal file
Binary file not shown.
7
android13/vendor/brcm/rpi4/Android.bp
vendored
Normal file
7
android13/vendor/brcm/rpi4/Android.bp
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
// Automatically generated file. DO NOT MODIFY
|
||||
//
|
||||
// This file is generated by device/brcm/rpi4/setup-makefiles.sh
|
||||
|
||||
soong_namespace {
|
||||
}
|
||||
|
||||
9
android13/vendor/brcm/rpi4/Android.mk
vendored
Normal file
9
android13/vendor/brcm/rpi4/Android.mk
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# Automatically generated file. DO NOT MODIFY
|
||||
#
|
||||
# This file is generated by device/brcm/rpi4/setup-makefiles.sh
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
ifeq ($(TARGET_DEVICE),rpi4)
|
||||
|
||||
endif
|
||||
4
android13/vendor/brcm/rpi4/BoardConfigVendor.mk
vendored
Normal file
4
android13/vendor/brcm/rpi4/BoardConfigVendor.mk
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# Automatically generated file. DO NOT MODIFY
|
||||
#
|
||||
# This file is generated by device/brcm/rpi4/setup-makefiles.sh
|
||||
|
||||
31
android13/vendor/brcm/rpi4/proprietary/boot/LICENCE.broadcom
vendored
Normal file
31
android13/vendor/brcm/rpi4/proprietary/boot/LICENCE.broadcom
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
Copyright (c) 2006, Broadcom Corporation.
|
||||
Copyright (c) 2015, Raspberry Pi (Trading) Ltd
|
||||
All rights reserved.
|
||||
|
||||
Redistribution. Redistribution and use in binary form, without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* This software may only be used for the purposes of developing for,
|
||||
running or using a Raspberry Pi device, or authorised derivative
|
||||
device manufactured via the element14 Raspberry Pi Customization Service
|
||||
* Redistributions must reproduce the above copyright notice and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
* Neither the name of Broadcom Corporation nor the names of its suppliers
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
||||
|
||||
BIN
android13/vendor/brcm/rpi4/proprietary/boot/fixup4.dat
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/boot/fixup4.dat
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/boot/fixup4x.dat
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/boot/fixup4x.dat
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/boot/start4.elf
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/boot/start4.elf
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/boot/start4x.elf
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/boot/start4x.elf
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/BCM4345C0.hcd
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/BCM4345C0.hcd
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/BCM4345C5.hcd
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/BCM4345C5.hcd
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43455-sdio.bin
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43455-sdio.bin
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43455-sdio.clm_blob
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43455-sdio.clm_blob
vendored
Normal file
Binary file not shown.
98
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43455-sdio.txt
vendored
Normal file
98
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43455-sdio.txt
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
# Cloned from bcm94345wlpagb_p2xx.txt
|
||||
NVRAMRev=$Rev: 498373 $
|
||||
sromrev=11
|
||||
vendid=0x14e4
|
||||
devid=0x43ab
|
||||
manfid=0x2d0
|
||||
prodid=0x06e4
|
||||
#macaddr=00:90:4c:c5:12:38
|
||||
macaddr=b8:27:eb:74:f2:6c
|
||||
nocrc=1
|
||||
boardtype=0x6e4
|
||||
boardrev=0x1304
|
||||
|
||||
#XTAL 37.4MHz
|
||||
xtalfreq=37400
|
||||
|
||||
btc_mode=1
|
||||
#------------------------------------------------------
|
||||
#boardflags: 5GHz eTR switch by default
|
||||
# 2.4GHz eTR switch by default
|
||||
# bit1 for btcoex
|
||||
boardflags=0x00480201
|
||||
boardflags2=0x40800000
|
||||
boardflags3=0x44200100
|
||||
phycal_tempdelta=15
|
||||
rxchain=1
|
||||
txchain=1
|
||||
aa2g=1
|
||||
aa5g=1
|
||||
tssipos5g=1
|
||||
tssipos2g=1
|
||||
femctrl=0
|
||||
AvVmid_c0=1,165,2,100,2,100,2,100,2,100
|
||||
pa2ga0=-129,6525,-718
|
||||
pa2ga1=-149,4408,-601
|
||||
pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818
|
||||
pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575
|
||||
itrsw=1
|
||||
pdoffsetcckma0=2
|
||||
pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
|
||||
pdoffset2g40ma0=16
|
||||
pdoffset40ma0=0x8888
|
||||
pdoffset80ma0=0x8888
|
||||
extpagain5g=2
|
||||
extpagain2g=2
|
||||
tworangetssi2g=1
|
||||
tworangetssi5g=1
|
||||
# LTECX flags
|
||||
# WCI2
|
||||
ltecxmux=0
|
||||
ltecxpadnum=0x0504
|
||||
ltecxfnsel=0x22
|
||||
ltecxgcigpio=0x32
|
||||
|
||||
maxp2ga0=80
|
||||
ofdmlrbw202gpo=0x0022
|
||||
dot11agofdmhrbw202gpo=0x4442
|
||||
mcsbw202gpo=0x98444422
|
||||
mcsbw402gpo=0x98444422
|
||||
maxp5ga0=82,82,82,82
|
||||
mcsbw205glpo=0xb9555000
|
||||
mcsbw205gmpo=0xb9555000
|
||||
mcsbw205ghpo=0xb9555000
|
||||
mcsbw405glpo=0xb9555000
|
||||
mcsbw405gmpo=0xb9555000
|
||||
mcsbw405ghpo=0xb9555000
|
||||
mcsbw805glpo=0xb9555000
|
||||
mcsbw805gmpo=0xb9555000
|
||||
mcsbw805ghpo=0xb9555000
|
||||
|
||||
swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
|
||||
swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
|
||||
swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
|
||||
swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3
|
||||
|
||||
vcodivmode=1
|
||||
deadman_to=481500000
|
||||
|
||||
ed_thresh2g=-54
|
||||
ed_thresh5g=-54
|
||||
eu_edthresh2g=-54
|
||||
eu_edthresh5g=-54
|
||||
ldo1=4
|
||||
rawtempsense=0x1ff
|
||||
cckPwrIdxCorr=3
|
||||
cckTssiDelay=150
|
||||
ofdmTssiDelay=150
|
||||
txpwr2gAdcScale=1
|
||||
txpwr5gAdcScale=1
|
||||
dot11b_opts=0x3aa85
|
||||
cbfilttype=1
|
||||
fdsslevel_ch11=6
|
||||
|
||||
# Improved Bluetooth coexistence parameters from Cypress
|
||||
btc_mode=1
|
||||
btc_params8=0x4e20
|
||||
btc_params1=0x7530
|
||||
btc_params50=0x972c
|
||||
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43456-sdio.bin
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43456-sdio.bin
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43456-sdio.clm_blob
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43456-sdio.clm_blob
vendored
Normal file
Binary file not shown.
97
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43456-sdio.txt
vendored
Normal file
97
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/brcm/brcmfmac43456-sdio.txt
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
# Cloned from bcm94345wlpagb_p2xx.txt
|
||||
NVRAMRev=$Rev: 498373 $
|
||||
sromrev=11
|
||||
vendid=0x14e4
|
||||
devid=0x43ab
|
||||
manfid=0x2d0
|
||||
prodid=0x06e4
|
||||
#macaddr=00:90:4c:c5:12:38
|
||||
macaddr=b8:27:eb:74:f2:6c
|
||||
nocrc=1
|
||||
boardtype=0x6e4
|
||||
boardrev=0x1304
|
||||
|
||||
#XTAL 37.4MHz
|
||||
xtalfreq=37400
|
||||
|
||||
btc_mode=1
|
||||
#------------------------------------------------------
|
||||
#boardflags: 5GHz eTR switch by default
|
||||
# 2.4GHz eTR switch by default
|
||||
# bit1 for btcoex
|
||||
boardflags=0x00480201
|
||||
boardflags2=0x40800000
|
||||
boardflags3=0x44200100
|
||||
phycal_tempdelta=15
|
||||
rxchain=1
|
||||
txchain=1
|
||||
aa2g=1
|
||||
aa5g=1
|
||||
tssipos5g=1
|
||||
tssipos2g=1
|
||||
femctrl=0
|
||||
AvVmid_c0=0,157,1,126,1,126,1,126,1,126
|
||||
pa2ga0=-170,5896,-680
|
||||
pa2ga1=-156,4032,-547
|
||||
pa5ga0=-150,5547,-628,-150,5583,-640,-158,5608,-649,-160,5757,-673
|
||||
pa5ga1=-109,3831,-519,-88,3821,-512,-125,3731,-528,-103,3829,-516
|
||||
itrsw=1
|
||||
pdoffsetcckma0=2
|
||||
pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
|
||||
pdoffset2g40ma0=16
|
||||
pdoffset40ma0=0x8888
|
||||
pdoffset80ma0=0x8888
|
||||
extpagain5g=2
|
||||
extpagain2g=2
|
||||
tworangetssi2g=1
|
||||
tworangetssi5g=1
|
||||
# LTECX flags
|
||||
# WCI2
|
||||
ltecxmux=0
|
||||
ltecxpadnum=0x0504
|
||||
ltecxfnsel=0x22
|
||||
ltecxgcigpio=0x32
|
||||
|
||||
maxp2ga0=80
|
||||
ofdmlrbw202gpo=0x0022
|
||||
dot11agofdmhrbw202gpo=0x4442
|
||||
mcsbw202gpo=0x98444422
|
||||
mcsbw402gpo=0x98444422
|
||||
maxp5ga0=82,82,82,82
|
||||
mcsbw205glpo=0xb9555000
|
||||
mcsbw205gmpo=0xb9555000
|
||||
mcsbw205ghpo=0xb9555000
|
||||
mcsbw405glpo=0xb9555000
|
||||
mcsbw405gmpo=0xb9555000
|
||||
mcsbw405ghpo=0xb9555000
|
||||
mcsbw805glpo=0xb9555000
|
||||
mcsbw805gmpo=0xb9555000
|
||||
mcsbw805ghpo=0xb9555000
|
||||
|
||||
swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
|
||||
swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
|
||||
swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
|
||||
swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3
|
||||
|
||||
vcodivmode=1
|
||||
deadman_to=481500000
|
||||
|
||||
ed_thresh2g=-54
|
||||
ed_thresh5g=-54
|
||||
eu_edthresh2g=-54
|
||||
eu_edthresh5g=-54
|
||||
ldo1=4
|
||||
rawtempsense=0x1ff
|
||||
cckPwrIdxCorr=3
|
||||
cckTssiDelay=150
|
||||
ofdmTssiDelay=150
|
||||
txpwr2gAdcScale=1
|
||||
txpwr5gAdcScale=1
|
||||
dot11b_opts=0x3aa85
|
||||
cbfilttype=1
|
||||
fdsslevel_ch11=6
|
||||
|
||||
# Improved Bluetooth coexistence parameters from Cypress
|
||||
btc_mode=1
|
||||
btc_params8=0x4e20
|
||||
btc_params1=0x7530
|
||||
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/regulatory.db
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/regulatory.db
vendored
Normal file
Binary file not shown.
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/regulatory.db.p7s
vendored
Normal file
BIN
android13/vendor/brcm/rpi4/proprietary/vendor/firmware/regulatory.db.p7s
vendored
Normal file
Binary file not shown.
6
android13/vendor/brcm/rpi4/rpi4-vendor.mk
vendored
Normal file
6
android13/vendor/brcm/rpi4/rpi4-vendor.mk
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Automatically generated file. DO NOT MODIFY
|
||||
#
|
||||
# This file is generated by device/brcm/rpi4/setup-makefiles.sh
|
||||
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/brcm/rpi4
|
||||
18
android13/vendor/brcm/spotify/Android.mk
vendored
Normal file
18
android13/vendor/brcm/spotify/Android.mk
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := spotify
|
||||
LOCAL_SRC_FILES := spotify.apk
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
#LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_CERTIFICATE := platform
|
||||
#LOCAL_PRIVILEGED_MODULE = true
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
|
||||
#LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)
|
||||
# LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
|
||||
LOCAL_OPTIONAL_USES_LIBRARIES := org.apache.http.legacy androidx.window.extensions androidx.window.sidecar
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
||||
BIN
android13/vendor/brcm/spotify/spotify.apk
vendored
Normal file
BIN
android13/vendor/brcm/spotify/spotify.apk
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user