Add module template files
Current AOSP keybox can be found at: https://cs.android.com/android/platform/superproject/main/+/main:device/generic/trusty/keymaster_soft_wrapped_attestation_keys.xml However, the support of parsing private keys in iecs format is not implemented yet.
This commit is contained in:
@@ -0,0 +1,89 @@
|
|||||||
|
# shellcheck disable=SC2034
|
||||||
|
SKIPUNZIP=1
|
||||||
|
MIN_SDK=29
|
||||||
|
CONFIG_DIR=/data/adb/tricky_store
|
||||||
|
|
||||||
|
# --- Installation Context Check ---
|
||||||
|
if [ "$BOOTMODE" != true ]; then
|
||||||
|
ui_print "! Please install in Magisk Manager or KernelSU Manager"
|
||||||
|
abort "! Install from recovery is NOT supported"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$KSU" = true ] && [ "$KSU_VER_CODE" -lt 10670 ]; then
|
||||||
|
abort "! Please update your KernelSU and KernelSU Manager"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Version Info ---
|
||||||
|
VERSION=$(grep_prop version "${TMPDIR}/module.prop")
|
||||||
|
ui_print "- Installing TEESimulator $VERSION"
|
||||||
|
ui_print ""
|
||||||
|
|
||||||
|
# --- Architecture Handling ---
|
||||||
|
case "$ARCH" in
|
||||||
|
arm64) ABI_DIR="arm64-v8a" ;;
|
||||||
|
arm) ABI_DIR="armeabi-v7a" ;;
|
||||||
|
x64) ABI_DIR="x86_64" ;;
|
||||||
|
x86) ABI_DIR="x86" ;;
|
||||||
|
*) abort "! Unsupported architecture: $ARCH" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ui_print "- Device platform: $ARCH"
|
||||||
|
ui_print "- Using ABI dir: $ABI_DIR"
|
||||||
|
|
||||||
|
# --- SDK Check ---
|
||||||
|
if [ "$API" -lt "$MIN_SDK" ]; then
|
||||||
|
abort "! Unsupported SDK: $API. Minimum required is $MIN_SDK"
|
||||||
|
else
|
||||||
|
ui_print "- Device SDK: $API"
|
||||||
|
fi
|
||||||
|
ui_print ""
|
||||||
|
|
||||||
|
# --- Helper to install files ---
|
||||||
|
install_file() {
|
||||||
|
if ! unzip -qqjo "$ZIPFILE" "$1" -d "$2"; then
|
||||||
|
abort "! Failed to extract $1"
|
||||||
|
fi
|
||||||
|
ui_print "- Extracted $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Installation ---
|
||||||
|
ui_print "- Extracting module files"
|
||||||
|
for file in customize.sh module.prop service.sh sepolicy.rule daemon; do
|
||||||
|
install_file "$file" "$MODPATH"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Handle service.apk or classes.dex
|
||||||
|
if unzip -l "$ZIPFILE" | grep -q "service.apk"; then
|
||||||
|
install_file "service.apk" "$MODPATH"
|
||||||
|
elif unzip -l "$ZIPFILE" | grep -q "classes.dex"; then
|
||||||
|
install_file "classes.dex" "$MODPATH"
|
||||||
|
else
|
||||||
|
abort "! Neither service.apk nor classes.dex found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
chmod 755 "$MODPATH/daemon"
|
||||||
|
ui_print ""
|
||||||
|
|
||||||
|
ui_print "- Extracting $ARCH libraries"
|
||||||
|
install_file "lib/$ABI_DIR/libTEESimulator.so" "$MODPATH"
|
||||||
|
install_file "lib/$ABI_DIR/libinject.so" "$MODPATH"
|
||||||
|
ui_print ""
|
||||||
|
|
||||||
|
mv "$MODPATH/libinject.so" "$MODPATH/inject"
|
||||||
|
chmod 755 "$MODPATH/inject"
|
||||||
|
|
||||||
|
# --- Configuration Files ---
|
||||||
|
if [ ! -d "$CONFIG_DIR" ]; then
|
||||||
|
ui_print "- Creating configuration directory"
|
||||||
|
mkdir -p "$CONFIG_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$CONFIG_DIR/keybox.xml" ]; then
|
||||||
|
ui_print "- Adding AOSP software keybox"
|
||||||
|
install_file "keybox.xml" "$CONFIG_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$CONFIG_DIR/target.txt" ]; then
|
||||||
|
ui_print "- Adding default target scope"
|
||||||
|
install_file "target.txt" "$CONFIG_DIR"
|
||||||
|
fi
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/system/bin/sh
|
||||||
|
|
||||||
|
MODDIR=$1
|
||||||
|
|
||||||
|
# Determine classpath
|
||||||
|
if [ -f "$MODDIR/classes.dex" ]; then
|
||||||
|
CLASSPATH="$MODDIR/classes.dex"
|
||||||
|
elif [ -f "$MODDIR/service.apk" ]; then
|
||||||
|
CLASSPATH="$MODDIR/service.apk"
|
||||||
|
else
|
||||||
|
echo "Error: Neither classes.dex nor service.apk found in $MODDIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec /system/bin/app_process -Djava.class.path="$CLASSPATH" "$MODDIR" --nice-name=TEESimulator org.matrix.TEESimulator.App
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<AndroidAttestation>
|
||||||
|
<NumberOfKeyboxes>2</NumberOfKeyboxes>
|
||||||
|
<Keybox DeviceID="dev1">
|
||||||
|
<Key algorithm="ecdsa">
|
||||||
|
<PrivateKey format="pem">
|
||||||
|
-----BEGIN EC PRIVATE KEY-----
|
||||||
|
MHcCAQEEICHghkMqFRmEWc82OlD8FMnarfk19SfC39ceTW28QuVEoAoGCCqGSM49
|
||||||
|
AwEHoUQDQgAE6555+EJjWazLKpFMiYbMcK2QZpOCqXMmE/6sy/ghJ0whdJdKKv6l
|
||||||
|
uU1/ZtTgZRBmNbxTt6CjpnFYPts+Ea4QFA==
|
||||||
|
-----END EC PRIVATE KEY-----
|
||||||
|
</PrivateKey>
|
||||||
|
<CertificateChain>
|
||||||
|
<NumberOfCertificates>2</NumberOfCertificates>
|
||||||
|
<Certificate format="pem">
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICeDCCAh6gAwIBAgICEAEwCgYIKoZIzj0EAwIwgZgxCzAJBgNVBAYTAlVTMRMw
|
||||||
|
EQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRUwEwYD
|
||||||
|
VQQKDAxHb29nbGUsIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQxMzAxBgNVBAMMKkFu
|
||||||
|
ZHJvaWQgS2V5c3RvcmUgU29mdHdhcmUgQXR0ZXN0YXRpb24gUm9vdDAeFw0xNjAx
|
||||||
|
MTEwMDQ2MDlaFw0yNjAxMDgwMDQ2MDlaMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE
|
||||||
|
CAwKQ2FsaWZvcm5pYTEVMBMGA1UECgwMR29vZ2xlLCBJbmMuMRAwDgYDVQQLDAdB
|
||||||
|
bmRyb2lkMTswOQYDVQQDDDJBbmRyb2lkIEtleXN0b3JlIFNvZnR3YXJlIEF0dGVz
|
||||||
|
dGF0aW9uIEludGVybWVkaWF0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOue
|
||||||
|
efhCY1msyyqRTImGzHCtkGaTgqlzJhP+rMv4ISdMIXSXSir+pblNf2bU4GUQZjW8
|
||||||
|
U7ego6ZxWD7bPhGuEBSjZjBkMB0GA1UdDgQWBBQ//KzWGrE6noEguNUlHMVlux6R
|
||||||
|
qTAfBgNVHSMEGDAWgBTIrel3TEXDo88NFhDkeUM6IVowzzASBgNVHRMBAf8ECDAG
|
||||||
|
AQH/AgEAMA4GA1UdDwEB/wQEAwIChDAKBggqhkjOPQQDAgNIADBFAiBLipt77oK8
|
||||||
|
wDOHri/AiZi03cONqycqRZ9pDMfDktQPjgIhAO7aAV229DLp1IQ7YkyUBO86fMy9
|
||||||
|
Xvsiu+f+uXc/WT/7
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
</Certificate>
|
||||||
|
<Certificate format="pem">
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICizCCAjKgAwIBAgIJAKIFntEOQ1tXMAoGCCqGSM49BAMCMIGYMQswCQYDVQQG
|
||||||
|
EwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmll
|
||||||
|
dzEVMBMGA1UECgwMR29vZ2xlLCBJbmMuMRAwDgYDVQQLDAdBbmRyb2lkMTMwMQYD
|
||||||
|
VQQDDCpBbmRyb2lkIEtleXN0b3JlIFNvZnR3YXJlIEF0dGVzdGF0aW9uIFJvb3Qw
|
||||||
|
HhcNMTYwMTExMDA0MzUwWhcNMzYwMTA2MDA0MzUwWjCBmDELMAkGA1UEBhMCVVMx
|
||||||
|
EzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxFTAT
|
||||||
|
BgNVBAoMDEdvb2dsZSwgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEzMDEGA1UEAwwq
|
||||||
|
QW5kcm9pZCBLZXlzdG9yZSBTb2Z0d2FyZSBBdHRlc3RhdGlvbiBSb290MFkwEwYH
|
||||||
|
KoZIzj0CAQYIKoZIzj0DAQcDQgAE7l1ex+HA220Dpn7mthvsTWpdamguD/9/SQ59
|
||||||
|
dx9EIm29sa/6FsvHrcV30lacqrewLVQBXT5DKyqO107sSHVBpKNjMGEwHQYDVR0O
|
||||||
|
BBYEFMit6XdMRcOjzw0WEOR5QzohWjDPMB8GA1UdIwQYMBaAFMit6XdMRcOjzw0W
|
||||||
|
EOR5QzohWjDPMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgKEMAoGCCqG
|
||||||
|
SM49BAMCA0cAMEQCIDUho++LNEYenNVg8x1YiSBq3KNlQfYNns6KGYxmSGB7AiBN
|
||||||
|
C/NR2TB8fVvaNTQdqEcbY6WFZTytTySn502vQX3xvw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
</Certificate>
|
||||||
|
</CertificateChain>
|
||||||
|
</Key>
|
||||||
|
</Keybox>
|
||||||
|
<Keybox DeviceID="dev1">
|
||||||
|
<Key algorithm="rsa">
|
||||||
|
<PrivateKey format="pem">
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIICXQIBAAKBgQDAgyPcVogbuDAgafWwhWHG7r5/BeL1qEIEir6LR752/q7yXPKb
|
||||||
|
KvoyABQWAUKZiaFfz8aBXrNjWDwv0vIL5Jgyg92BSxbX4YVBeuVKvClqOm21wAQI
|
||||||
|
O2jFVsHwIzmRZBmGTVC3TUCuykhMdzVsiVoMJ1q/rEmdXX0jYvKcXgLocQIDAQAB
|
||||||
|
AoGBAL6GCwuZqAKm+xpZQ4p7txUGWwmjbcbpysxr88AsNNfXnpTGYGQo2Ix7f2V3
|
||||||
|
wc3qZAdKvo5yht8fCBHclygmCGjeldMu/Ja20IT/JxpfYN78xwPno45uKbqaPF/C
|
||||||
|
woB2tqiWrx0014gozpvdsfNPnJQEQweBKY4gExZyW728mTpBAkEA4cbZJ2RsCRbs
|
||||||
|
NoJtWUmDdAwh8bB0xKGlmGfGaXlchdPcRkxbkp6Uv7NODcxQFLEPEzQat/3V9gQU
|
||||||
|
0qMmytQcxQJBANpIWZd4XNVjD7D9jFJU+Y5TjhiYOq6ea35qWntdNDdVuSGOvUAy
|
||||||
|
DSg4fXifdvohi8wti2il9kGPu+ylF5qzr70CQFD+/DJklVlhbtZTThVFCTKdk6PY
|
||||||
|
ENvlvbmCKSz3i9i624Agro1X9LcdBThv/p6dsnHKNHejSZnbdvjl7OnA1J0CQBW3
|
||||||
|
TPJ8zv+Ls2vwTZ2DRrCaL3DS9EObDyasfgP36dH3fUuRX9KbKCPwOstdUgDghX/y
|
||||||
|
qAPpPu6W1iNc6VRCvCECQQCQp0XaiXCyzWSWYDJCKMX4KFb/1mW6moXI1g8bi+5x
|
||||||
|
fs0scurgHa2GunZU1M9FrbXx8rMdn4Eiz6XxpVcPmy0l
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
</PrivateKey>
|
||||||
|
<CertificateChain>
|
||||||
|
<NumberOfCertificates>2</NumberOfCertificates>
|
||||||
|
<Certificate format="pem">
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICtjCCAh+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMx
|
||||||
|
EzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxFTAT
|
||||||
|
BgNVBAoMDEdvb2dsZSwgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDAeFw0xNjAxMDQx
|
||||||
|
MjQwNTNaFw0zNTEyMzAxMjQwNTNaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApD
|
||||||
|
YWxpZm9ybmlhMRUwEwYDVQQKDAxHb29nbGUsIEluYy4xEDAOBgNVBAsMB0FuZHJv
|
||||||
|
aWQxKTAnBgNVBAMMIEFuZHJvaWQgU29mdHdhcmUgQXR0ZXN0YXRpb24gS2V5MIGf
|
||||||
|
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAgyPcVogbuDAgafWwhWHG7r5/BeL1
|
||||||
|
qEIEir6LR752/q7yXPKbKvoyABQWAUKZiaFfz8aBXrNjWDwv0vIL5Jgyg92BSxbX
|
||||||
|
4YVBeuVKvClqOm21wAQIO2jFVsHwIzmRZBmGTVC3TUCuykhMdzVsiVoMJ1q/rEmd
|
||||||
|
XX0jYvKcXgLocQIDAQABo2YwZDAdBgNVHQ4EFgQU1AwQG/jNY7n3OVK1DhNcpteZ
|
||||||
|
k4YwHwYDVR0jBBgwFoAUKfrxrMxN0kyWQCd1trDpMuUH/i4wEgYDVR0TAQH/BAgw
|
||||||
|
BgEB/wIBADAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZIhvcNAQELBQADgYEAni1IX4xn
|
||||||
|
M9waha2Z11Aj6hTsQ7DhnerCI0YecrUZ3GAi5KVoMWwLVcTmnKItnzpPk2sxixZ4
|
||||||
|
Fg2Iy9mLzICdhPDCJ+NrOPH90ecXcjFZNX2W88V/q52PlmEmT7K+gbsNSQQiis6f
|
||||||
|
9/VCLiVE+iEHElqDtVWtGIL4QBSbnCBjBH8=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
</Certificate>
|
||||||
|
<Certificate format="pem">
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICpzCCAhCgAwIBAgIJAP+U2d2fB8gMMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV
|
||||||
|
BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW
|
||||||
|
aWV3MRUwEwYDVQQKDAxHb29nbGUsIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQwHhcN
|
||||||
|
MTYwMTA0MTIzMTA4WhcNMzUxMjMwMTIzMTA4WjBjMQswCQYDVQQGEwJVUzETMBEG
|
||||||
|
A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEVMBMGA1UE
|
||||||
|
CgwMR29vZ2xlLCBJbmMuMRAwDgYDVQQLDAdBbmRyb2lkMIGfMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4GNADCBiQKBgQCia63rbi5EYe/VDoLmt5TRdSMfd5tjkWP/96r/C3JHTsAs
|
||||||
|
Q+wzfNes7UA+jCigZtX3hwszl94OuE4TQKuvpSe/lWmgMdsGUmX4RFlXYfC78hdL
|
||||||
|
t0GAZMAoDo9Sd47b0ke2RekZyOmLw9vCkT/X11DEHTVm+Vfkl5YLCazOkjWFmwID
|
||||||
|
AQABo2MwYTAdBgNVHQ4EFgQUKfrxrMxN0kyWQCd1trDpMuUH/i4wHwYDVR0jBBgw
|
||||||
|
FoAUKfrxrMxN0kyWQCd1trDpMuUH/i4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
||||||
|
Af8EBAMCAoQwDQYJKoZIhvcNAQELBQADgYEAT3LzNlmNDsG5dFsxWfbwjSVJMJ6j
|
||||||
|
HBwp0kUtILlNX2S06IDHeHqcOd6os/W/L3BfRxBcxebrTQaZYdKumgf/93y4q+uc
|
||||||
|
DyQHXrF/unlx/U1bnt8Uqf7f7XzAiF343ZtkMlbVNZriE/mPzsF83O+kqrJVw4Op
|
||||||
|
Lvtc9mL1J1IXvmM=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
</Certificate>
|
||||||
|
</CertificateChain>
|
||||||
|
</Key>
|
||||||
|
</Keybox>
|
||||||
|
</AndroidAttestation>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
allow keystore system_file unix_dgram_socket *
|
||||||
|
allow system_file keystore unix_dgram_socket *
|
||||||
|
allow keystore system_file file *
|
||||||
|
allow crash_dump keystore process *
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
DEBUG=false
|
||||||
|
|
||||||
|
MODDIR=${0%/*}
|
||||||
|
|
||||||
|
cd $MODDIR
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
./daemon "$MODDIR" || exit 1
|
||||||
|
# ensure keystore initialized
|
||||||
|
sleep 2
|
||||||
|
done &
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
com.android.vending
|
||||||
|
com.google.android.gms
|
||||||
|
io.github.vvb2060.keyattestation
|
||||||
|
io.github.vvb2060.mahoshojo
|
||||||
|
icu.nullptr.nativetest
|
||||||
|
com.reveny.nativecheck
|
||||||
|
com.zhenxi.hunter
|
||||||
|
io.github.qwq233.keyattestation
|
||||||
|
com.android.nativetest
|
||||||
|
io.liankong.riskdetector
|
||||||
|
luna.safe.luna
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"version": "v1.0",
|
||||||
|
"versionCode": 74,
|
||||||
|
"zipUrl": "https://github.com/JingMatrix/TEESimulator/releases/download/v1.0/TEESimulator-v1.0-74-release.zip",
|
||||||
|
"changelog": "https://raw.githubusercontent.com/JingMatrix/TEESimulator/main/module/changelog.md"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user