diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c4d0dec..17ddaa1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ diff --git a/README.md b/README.md index ceaeb17..5367dbb 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,36 @@ -# MiniABS +# Podlite -A tiny Audiobookshelf **podcast** client for the Samsung Galaxy Mini (GT-S5570) and other Android 2.2+ phones. Native Java, no libraries, ~130 KB. The interface is in Galician, with large text and touch targets sized for the Mini's 240×320 screen. Its purple colour scheme and launcher icon come from the Audiobookshelf icon pack (`art/icon_master_512.png`); `tools/make_icons.py` derives the notification and player icons from it. +A tiny Audiobookshelf **podcast** client for the Samsung Galaxy Mini (GT-S5570) and other Android 2.2+ phones. Native Java; the APK is about 1.1 MB, nearly all of it the bundled TLS stack. Formerly MiniABS. The interface is in Galician, with large text and touch targets sized for the Mini's 240×320 screen. The launcher icon is the "Podcasts Radio" pack (master in `art/icon-master.png`); `tools/make_icons.py` draws the notification icon (a white radio silhouette) and the player icons. Its warm dark colours and amber accent come from the radio: brass and the glow of its dial. ## Install -1. Copy `MiniABS.apk` to the phone (USB to the SD card, or download it in the browser). +1. Copy `Podlite.apk` to the phone (USB to the SD card, or download it in the browser). 2. On the phone: **Settings → Applications → Unknown sources** → tick it. -3. Open the APK from a file manager and install. It can be moved to the SD card (Settings → Applications → Manage applications → MiniABS → Move to SD card). +3. Open the APK from a file manager and install. It can be moved to the SD card (Settings → Applications → Manage applications → Podlite → Move to SD card). ## Connecting At home, the simplest option is your server's **local http:// address**, e.g. `http://192.168.1.10:13378`. -Sign in with your username and password, or tick "Use an API key instead". It works with both current servers (2.26+, short-lived access tokens that MiniABS refreshes automatically) and older ones (single long-lived token). +Sign in with your username and password, or tick "Use an API key instead". It works with both current servers (2.26+, short-lived access tokens that Podlite refreshes automatically) and older ones (single long-lived token). ## HTTPS (from outside your home) -Android 2.3 only speaks **TLS 1.0**, which modern servers refuse. So HTTPS needs one change on the server and is handled by the app from there. - -### Server: a legacy HTTPS port - -Add a second `server` block to nginx, on its own port, used only by the phone. Your normal HTTPS site stays strict. - -```nginx -server { - listen 8443 ssl; - server_name abs.example.com; - ssl_certificate /etc/letsencrypt/live/abs.example.com/fullchain.pem; # must be an RSA certificate - ssl_certificate_key /etc/letsencrypt/live/abs.example.com/privkey.pem; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - # @SECLEVEL=0 is required: OpenSSL 3 refuses TLS 1.0 without it - ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-SHA:@SECLEVEL=0"; - ssl_prefer_server_ciphers on; - client_max_body_size 0; - location / { - proxy_pass http://127.0.0.1:13378; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_http_version 1.1; - proxy_buffering off; - } -} -``` - -Then sign in with `https://abs.example.com:8443`. - -- **RSA certificate:** Android 2.3 can't use ECDSA certificates. With certbot, request one with `--key-type rsa`. -- **Security:** TLS 1.0 with these ciphers is weak by today's standards, but much better than plain HTTP over the internet. Only open this port if you need it. -- **Caddy** can't serve TLS 1.0; put nginx (or HAProxy) in front for this port. +Android 2.3 only speaks TLS 1.0, which modern servers refuse, so since 1.7 Podlite brings its own +**TLS 1.2** (Bouncy Castle, the same client as Plexamp Lite, with Mozilla's root certificates, +keep-alive and session resumption). Sign in with your server's normal `https://` address, at +home or away; nothing changes on the server. (A legacy TLS 1.0 port set up for older versions +keeps working too.) ### App: certificates -- **Built-in roots:** MiniABS trusts what the phone trusts, plus modern root certificates the phone's 2011-era list lacks: Let's Encrypt, Google Trust Services, Sectigo/ZeroSSL, DigiCert G2, Amazon and others. Most certificates just work. -- **Anything else** (self-signed, a private CA, a new root): MiniABS shows the certificate's SHA-256 fingerprint and asks once. Compare it with the fingerprint your computer's browser shows for the site before tapping Trust. It then trusts the CA that issued it, so renewals keep working. +- **Built-in roots:** Podlite checks certificates against Mozilla's current root list (`assets/roots`), so Let's Encrypt, Google Trust Services, Sectigo/ZeroSSL and the rest just work. +- **Anything else** (self-signed, a private CA, a new root): Podlite shows the certificate's SHA-256 fingerprint and asks once. Compare it with the fingerprint your computer's browser shows for the site before tapping Trust. It then trusts the CA that issued it, so renewals keep working. - **Settings → Certificates you trusted** lets you forget them. ### App: streaming -Android 2.x's media player can't stream https:// URLs, so for HTTPS servers MiniABS runs a small proxy on the phone (127.0.0.1 only, random unguessable URLs). It forwards seeks and gets a fresh sign-in token for each request, so long episodes don't break when the token expires. +Android 2.x's media player can't stream modern https:// URLs, so for HTTPS servers Podlite runs a small proxy on the phone (127.0.0.1 only, random unguessable URLs). It forwards seeks and gets a fresh sign-in token for each request, so long episodes don't break when the token expires. ## Using it @@ -68,15 +38,15 @@ Android 2.x's media player can't stream https:// URLs, so for HTTPS servers Mini - **Shows**: every podcast; tap one for its episodes. Menu key → sort oldest/newest, hide played. - **Saved**: episodes downloaded to the SD card, plus download progress. - **Tap** an episode to play. **Long-press** for Download, Delete download, Mark as played/unplayed, Go to show. -- **Player**: skip back/forward (set the amounts in Settings), seek bar, show notes. Menu key → sleep timer, mark as played, download, stop, close MiniABS. -- **Close**: Menu key → *Pechar MiniABS* (on the Latest/Shows/Saved screen or the player) saves the position, stops playback and closes the app. +- **Player**: skip back/forward (set the amounts in Settings), seek bar, show notes. Menu key → sleep timer, mark as played, download, stop, close Podlite. +- **Close**: Menu key → *Pechar Podlite* (on the Latest/Shows/Saved screen or the player) saves the position, stops playback and closes the app. - **Headset buttons**: play/pause; next/previous skip forward/back. Playback pauses when headphones are unplugged and during calls. Colored dots: blue = new, amber = in progress (with a bar), grey = played. ## Progress sync -Playback opens an Audiobookshelf session and syncs every 15 seconds and on pause, so progress follows you to other apps. An episode only counts as played when playback gets within a minute of its end: a stream that drops or a saved file cut short is retried or reported, never marked as played. If playback says it's playing but stops moving for 12 seconds, MiniABS says so. Saved episodes play offline; their positions are kept on the phone and sent to the server next time you're online (or tap refresh on the Saved tab). +Playback opens an Audiobookshelf session and syncs every 15 seconds and on pause, so progress follows you to other apps. An episode only counts as played when playback gets within a minute of its end: a stream that drops or a saved file cut short is retried or reported, never marked as played. If playback says it's playing but stops moving for 12 seconds, Podlite says so. Saved episodes play offline; their positions are kept on the phone and sent to the server next time you're online (or tap refresh on the Saved tab). ## Limits @@ -86,7 +56,7 @@ Playback opens an Audiobookshelf session and syncs every 15 seconds and on pause ## Building -Needs a JDK, `aapt`, `dalvik-exchange` (dx), `zipalign`, `apksigner` (Ubuntu: `apt install aapt dalvik-exchange zipalign apksigner`) and an API 8 `android.jar`: +Needs a JDK, `aapt`, `dalvik-exchange` (dx), `zipalign`, `apksigner` (Ubuntu: `apt install aapt dalvik-exchange zipalign apksigner`), an API 8 `android.jar`, and the renamed Bouncy Castle sources from Plexamp Lite's `tools/setup_toolchain.sh` (`BC_SRC`, default `~/android-toolchain/bcsrc`): ANDROID_JAR=/path/to/android-8/android.jar ./build.sh @@ -94,6 +64,6 @@ Compiling against the API 8 jar guarantees no newer Android APIs are used. The A All sizes (text, rows, buttons, covers) are in `res/values/dimens.xml`; change them there and rebuild. -`tools/gen_roots.py` regenerates the bundled root certificates from a system CA store. +`src/com/miniabs/net/` is the bundled HTTP/TLS client shared with Plexamp Lite, Noticias Lite and Calendar Lite; `assets/roots/` holds Mozilla's roots (regenerate with Plexamp Lite's `tools/make_roots.py`). -`test/run_tests.sh` runs the API, JSON, progress, HTTPS-trust and streaming-proxy code on the desktop JVM against a mock Audiobookshelf server (`test/mock_abs.py`), over plain HTTP and over TLS with good, expired, wrong-host, forged and self-signed certificates (`test/make_pki.sh`). +`JSON_JAR=/path/to/json.jar test/run_tests.sh` (any org.json jar) runs the API, JSON, progress, HTTPS-trust and streaming-proxy code on the desktop JVM against a mock Audiobookshelf server (`test/mock_abs.py`), over plain HTTP and over TLS with good, expired, wrong-host, forged and self-signed certificates (`test/make_pki.sh`). diff --git a/art/icon-master.png b/art/icon-master.png new file mode 100644 index 0000000..0b8d874 Binary files /dev/null and b/art/icon-master.png differ diff --git a/art/icon_master_512.png b/art/icon_master_512.png deleted file mode 100644 index b7e4589..0000000 Binary files a/art/icon_master_512.png and /dev/null differ diff --git a/assets/roots/032d371dbf31afaf7ded8c4817d515f8152ed5a6-0.der b/assets/roots/032d371dbf31afaf7ded8c4817d515f8152ed5a6-0.der new file mode 100644 index 0000000..47bfc6f Binary files /dev/null and b/assets/roots/032d371dbf31afaf7ded8c4817d515f8152ed5a6-0.der differ diff --git a/assets/roots/03eb97b4e8a522a943a90d3301b19f99a8e6fcaf-0.der b/assets/roots/03eb97b4e8a522a943a90d3301b19f99a8e6fcaf-0.der new file mode 100644 index 0000000..cb9a586 Binary files /dev/null and b/assets/roots/03eb97b4e8a522a943a90d3301b19f99a8e6fcaf-0.der differ diff --git a/assets/roots/0c0ed0137e724ee890170d0a0797ca406897614d-0.der b/assets/roots/0c0ed0137e724ee890170d0a0797ca406897614d-0.der new file mode 100644 index 0000000..1dd645c Binary files /dev/null and b/assets/roots/0c0ed0137e724ee890170d0a0797ca406897614d-0.der differ diff --git a/assets/roots/0f4efcf05175b60e4914344f85fcf18b3f826fd8-0.der b/assets/roots/0f4efcf05175b60e4914344f85fcf18b3f826fd8-0.der new file mode 100644 index 0000000..c4347d3 Binary files /dev/null and b/assets/roots/0f4efcf05175b60e4914344f85fcf18b3f826fd8-0.der differ diff --git a/assets/roots/0f5b4ff6887b4722adb4859609e6a925212174e0-0.der b/assets/roots/0f5b4ff6887b4722adb4859609e6a925212174e0-0.der new file mode 100644 index 0000000..7031f88 Binary files /dev/null and b/assets/roots/0f5b4ff6887b4722adb4859609e6a925212174e0-0.der differ diff --git a/assets/roots/108abf716ef774bd28f3e2cd3949cc2eaa52316a-0.der b/assets/roots/108abf716ef774bd28f3e2cd3949cc2eaa52316a-0.der new file mode 100644 index 0000000..a0cd3ec Binary files /dev/null and b/assets/roots/108abf716ef774bd28f3e2cd3949cc2eaa52316a-0.der differ diff --git a/assets/roots/1336799a38ebd57730aa49f89be555490ab47bf8-0.der b/assets/roots/1336799a38ebd57730aa49f89be555490ab47bf8-0.der new file mode 100644 index 0000000..ae5ae35 Binary files /dev/null and b/assets/roots/1336799a38ebd57730aa49f89be555490ab47bf8-0.der differ diff --git a/assets/roots/14146f28d9038bfbf04a2093c205456baf4034b2-0.der b/assets/roots/14146f28d9038bfbf04a2093c205456baf4034b2-0.der new file mode 100644 index 0000000..96e02ca Binary files /dev/null and b/assets/roots/14146f28d9038bfbf04a2093c205456baf4034b2-0.der differ diff --git a/assets/roots/14c0f884650ebfb1564d3da153a0d7f1c7c670a8-0.der b/assets/roots/14c0f884650ebfb1564d3da153a0d7f1c7c670a8-0.der new file mode 100644 index 0000000..cf6588c Binary files /dev/null and b/assets/roots/14c0f884650ebfb1564d3da153a0d7f1c7c670a8-0.der differ diff --git a/assets/roots/17a7d72a82ce8c8116af6a12f0701505259f816d-0.der b/assets/roots/17a7d72a82ce8c8116af6a12f0701505259f816d-0.der new file mode 100644 index 0000000..f63cc7f Binary files /dev/null and b/assets/roots/17a7d72a82ce8c8116af6a12f0701505259f816d-0.der differ diff --git a/assets/roots/1ca566add30938e8135505ffd08b5a70c488b73b-0.der b/assets/roots/1ca566add30938e8135505ffd08b5a70c488b73b-0.der new file mode 100644 index 0000000..d1531f6 Binary files /dev/null and b/assets/roots/1ca566add30938e8135505ffd08b5a70c488b73b-0.der differ diff --git a/assets/roots/1d236f8e064b971fdddfa11523e1aee502be2b1b-0.der b/assets/roots/1d236f8e064b971fdddfa11523e1aee502be2b1b-0.der new file mode 100644 index 0000000..3cdad66 Binary files /dev/null and b/assets/roots/1d236f8e064b971fdddfa11523e1aee502be2b1b-0.der differ diff --git a/assets/roots/20dd24a4280ef8840064866941b494f3f30de194-0.der b/assets/roots/20dd24a4280ef8840064866941b494f3f30de194-0.der new file mode 100644 index 0000000..7508480 Binary files /dev/null and b/assets/roots/20dd24a4280ef8840064866941b494f3f30de194-0.der differ diff --git a/assets/roots/220f44b97081f27eb2d32757ef0242567e51fed9-0.der b/assets/roots/220f44b97081f27eb2d32757ef0242567e51fed9-0.der new file mode 100644 index 0000000..fed8dab Binary files /dev/null and b/assets/roots/220f44b97081f27eb2d32757ef0242567e51fed9-0.der differ diff --git a/assets/roots/229a8437e3d9edafce3dc9904897b48fdeb436d3-0.der b/assets/roots/229a8437e3d9edafce3dc9904897b48fdeb436d3-0.der new file mode 100644 index 0000000..6eb01cc Binary files /dev/null and b/assets/roots/229a8437e3d9edafce3dc9904897b48fdeb436d3-0.der differ diff --git a/assets/roots/254d769250bbe91e2178c18a2240319eaf17e365-0.der b/assets/roots/254d769250bbe91e2178c18a2240319eaf17e365-0.der new file mode 100644 index 0000000..354b346 Binary files /dev/null and b/assets/roots/254d769250bbe91e2178c18a2240319eaf17e365-0.der differ diff --git a/assets/roots/262175b10d1adadd3525515deb67dda91edf2154-0.der b/assets/roots/262175b10d1adadd3525515deb67dda91edf2154-0.der new file mode 100644 index 0000000..5a3dc50 Binary files /dev/null and b/assets/roots/262175b10d1adadd3525515deb67dda91edf2154-0.der differ diff --git a/assets/roots/281aea4e6a11200e3949b766237385489c2e8792-0.der b/assets/roots/281aea4e6a11200e3949b766237385489c2e8792-0.der new file mode 100644 index 0000000..9d2132e Binary files /dev/null and b/assets/roots/281aea4e6a11200e3949b766237385489c2e8792-0.der differ diff --git a/assets/roots/2c7a348b4c3fe39c4b2f2a1919788781b2fde745-0.der b/assets/roots/2c7a348b4c3fe39c4b2f2a1919788781b2fde745-0.der new file mode 100644 index 0000000..2913bb0 Binary files /dev/null and b/assets/roots/2c7a348b4c3fe39c4b2f2a1919788781b2fde745-0.der differ diff --git a/assets/roots/3053402c7b5dbe592758be81f8b1a0c89bd9db40-0.der b/assets/roots/3053402c7b5dbe592758be81f8b1a0c89bd9db40-0.der new file mode 100644 index 0000000..45ac938 Binary files /dev/null and b/assets/roots/3053402c7b5dbe592758be81f8b1a0c89bd9db40-0.der differ diff --git a/assets/roots/3091c2d60f82ea189edb13b0755d9b046e67f050-0.der b/assets/roots/3091c2d60f82ea189edb13b0755d9b046e67f050-0.der new file mode 100644 index 0000000..e193a05 Binary files /dev/null and b/assets/roots/3091c2d60f82ea189edb13b0755d9b046e67f050-0.der differ diff --git a/assets/roots/31e4c31bde81d32ad0d8ecacd40c3da4e71aeb38-0.der b/assets/roots/31e4c31bde81d32ad0d8ecacd40c3da4e71aeb38-0.der new file mode 100644 index 0000000..f81b63a Binary files /dev/null and b/assets/roots/31e4c31bde81d32ad0d8ecacd40c3da4e71aeb38-0.der differ diff --git a/assets/roots/322ad42b3fe752585a7c1435fd71b9763f2c7bd9-0.der b/assets/roots/322ad42b3fe752585a7c1435fd71b9763f2c7bd9-0.der new file mode 100644 index 0000000..a8b2d8e Binary files /dev/null and b/assets/roots/322ad42b3fe752585a7c1435fd71b9763f2c7bd9-0.der differ diff --git a/assets/roots/3366ae4363646a8c15060a3b4adff12e8c1809af-0.der b/assets/roots/3366ae4363646a8c15060a3b4adff12e8c1809af-0.der new file mode 100644 index 0000000..02ab364 Binary files /dev/null and b/assets/roots/3366ae4363646a8c15060a3b4adff12e8c1809af-0.der differ diff --git a/assets/roots/3582a277b57e01b32d31d926b4f7b4366493d235-0.der b/assets/roots/3582a277b57e01b32d31d926b4f7b4366493d235-0.der new file mode 100644 index 0000000..62d354a Binary files /dev/null and b/assets/roots/3582a277b57e01b32d31d926b4f7b4366493d235-0.der differ diff --git a/assets/roots/36341f8404085341117cfe8fc657667384b14135-0.der b/assets/roots/36341f8404085341117cfe8fc657667384b14135-0.der new file mode 100644 index 0000000..e5e2343 Binary files /dev/null and b/assets/roots/36341f8404085341117cfe8fc657667384b14135-0.der differ diff --git a/assets/roots/369df24e274d52c0b46a58590043b883b4f6b096-0.der b/assets/roots/369df24e274d52c0b46a58590043b883b4f6b096-0.der new file mode 100644 index 0000000..40db2f3 Binary files /dev/null and b/assets/roots/369df24e274d52c0b46a58590043b883b4f6b096-0.der differ diff --git a/assets/roots/39d28b71fe1d19b65fb3f1288f23bc04595c4395-0.der b/assets/roots/39d28b71fe1d19b65fb3f1288f23bc04595c4395-0.der new file mode 100644 index 0000000..1e927a7 Binary files /dev/null and b/assets/roots/39d28b71fe1d19b65fb3f1288f23bc04595c4395-0.der differ diff --git a/assets/roots/3f1855d3c9a93b24f8b4f95a07ae048c20cea42d-0.der b/assets/roots/3f1855d3c9a93b24f8b4f95a07ae048c20cea42d-0.der new file mode 100644 index 0000000..2f6e59f Binary files /dev/null and b/assets/roots/3f1855d3c9a93b24f8b4f95a07ae048c20cea42d-0.der differ diff --git a/assets/roots/41655b67500e9a2e2c0cdcba7a9247f773f77269-0.der b/assets/roots/41655b67500e9a2e2c0cdcba7a9247f773f77269-0.der new file mode 100644 index 0000000..3e49eba Binary files /dev/null and b/assets/roots/41655b67500e9a2e2c0cdcba7a9247f773f77269-0.der differ diff --git a/assets/roots/41fc0249061723abd565d5bce6f9562e79c7c8e8-0.der b/assets/roots/41fc0249061723abd565d5bce6f9562e79c7c8e8-0.der new file mode 100644 index 0000000..6160479 Binary files /dev/null and b/assets/roots/41fc0249061723abd565d5bce6f9562e79c7c8e8-0.der differ diff --git a/assets/roots/4264562253e3c442d08ec17f32fb2d58f406ace3-0.der b/assets/roots/4264562253e3c442d08ec17f32fb2d58f406ace3-0.der new file mode 100644 index 0000000..71f9f88 Binary files /dev/null and b/assets/roots/4264562253e3c442d08ec17f32fb2d58f406ace3-0.der differ diff --git a/assets/roots/42aaaa5ea487b4f18a25daaf86f22533b7ee39ab-0.der b/assets/roots/42aaaa5ea487b4f18a25daaf86f22533b7ee39ab-0.der new file mode 100644 index 0000000..db0e85a Binary files /dev/null and b/assets/roots/42aaaa5ea487b4f18a25daaf86f22533b7ee39ab-0.der differ diff --git a/assets/roots/42d0b7e6a82098efcfb77957c139770ef5df885f-0.der b/assets/roots/42d0b7e6a82098efcfb77957c139770ef5df885f-0.der new file mode 100644 index 0000000..e7ad806 Binary files /dev/null and b/assets/roots/42d0b7e6a82098efcfb77957c139770ef5df885f-0.der differ diff --git a/assets/roots/481f557ae1206403ecc941543a54504072f2c1df-0.der b/assets/roots/481f557ae1206403ecc941543a54504072f2c1df-0.der new file mode 100644 index 0000000..d46aa38 Binary files /dev/null and b/assets/roots/481f557ae1206403ecc941543a54504072f2c1df-0.der differ diff --git a/assets/roots/4a7cdaf39dfbf67800700df49cd84af1531b0969-0.der b/assets/roots/4a7cdaf39dfbf67800700df49cd84af1531b0969-0.der new file mode 100644 index 0000000..1449f86 Binary files /dev/null and b/assets/roots/4a7cdaf39dfbf67800700df49cd84af1531b0969-0.der differ diff --git a/assets/roots/4b1ec7d2704f8539cb63fb2d863f09b26393e823-0.der b/assets/roots/4b1ec7d2704f8539cb63fb2d863f09b26393e823-0.der new file mode 100644 index 0000000..70a9ec9 Binary files /dev/null and b/assets/roots/4b1ec7d2704f8539cb63fb2d863f09b26393e823-0.der differ diff --git a/assets/roots/4e9b3837a2d6eb46985ae7cc638568fdaced325b-0.der b/assets/roots/4e9b3837a2d6eb46985ae7cc638568fdaced325b-0.der new file mode 100644 index 0000000..3bbe4a9 Binary files /dev/null and b/assets/roots/4e9b3837a2d6eb46985ae7cc638568fdaced325b-0.der differ diff --git a/assets/roots/4f59a39453cfb9559e7f6bd8c54da53da642b714-0.der b/assets/roots/4f59a39453cfb9559e7f6bd8c54da53da642b714-0.der new file mode 100644 index 0000000..86b7dcd Binary files /dev/null and b/assets/roots/4f59a39453cfb9559e7f6bd8c54da53da642b714-0.der differ diff --git a/assets/roots/538933b9a76ad7c55cbf4dc2d4769ce2bb50d20b-0.der b/assets/roots/538933b9a76ad7c55cbf4dc2d4769ce2bb50d20b-0.der new file mode 100644 index 0000000..603c65e Binary files /dev/null and b/assets/roots/538933b9a76ad7c55cbf4dc2d4769ce2bb50d20b-0.der differ diff --git a/assets/roots/5588e1fad8ea116388ec542a0110b63fb5c826e6-0.der b/assets/roots/5588e1fad8ea116388ec542a0110b63fb5c826e6-0.der new file mode 100644 index 0000000..ecd8c9d Binary files /dev/null and b/assets/roots/5588e1fad8ea116388ec542a0110b63fb5c826e6-0.der differ diff --git a/assets/roots/55f003ec26723b65ec4b936600e5d1af9fa80fa9-0.der b/assets/roots/55f003ec26723b65ec4b936600e5d1af9fa80fa9-0.der new file mode 100644 index 0000000..91d8e47 Binary files /dev/null and b/assets/roots/55f003ec26723b65ec4b936600e5d1af9fa80fa9-0.der differ diff --git a/assets/roots/5cd9dcebfc1a5bb0aa6923e532de48a56851f8ec-0.der b/assets/roots/5cd9dcebfc1a5bb0aa6923e532de48a56851f8ec-0.der new file mode 100644 index 0000000..10ef441 Binary files /dev/null and b/assets/roots/5cd9dcebfc1a5bb0aa6923e532de48a56851f8ec-0.der differ diff --git a/assets/roots/5e021b686c5cd3be1691995789dfc41472163d03-0.der b/assets/roots/5e021b686c5cd3be1691995789dfc41472163d03-0.der new file mode 100644 index 0000000..83fdeb7 Binary files /dev/null and b/assets/roots/5e021b686c5cd3be1691995789dfc41472163d03-0.der differ diff --git a/assets/roots/62fbb4c96c7627f44989f56d3795e701ecff86ed-0.der b/assets/roots/62fbb4c96c7627f44989f56d3795e701ecff86ed-0.der new file mode 100644 index 0000000..3492b95 Binary files /dev/null and b/assets/roots/62fbb4c96c7627f44989f56d3795e701ecff86ed-0.der differ diff --git a/assets/roots/6435ac18333cfe8ca49f61b4f2151d005ee86ce9-0.der b/assets/roots/6435ac18333cfe8ca49f61b4f2151d005ee86ce9-0.der new file mode 100644 index 0000000..7a991b7 Binary files /dev/null and b/assets/roots/6435ac18333cfe8ca49f61b4f2151d005ee86ce9-0.der differ diff --git a/assets/roots/64f5c98fa750327769f72ce76ccfd9ea956526f3-0.der b/assets/roots/64f5c98fa750327769f72ce76ccfd9ea956526f3-0.der new file mode 100644 index 0000000..fa25f67 Binary files /dev/null and b/assets/roots/64f5c98fa750327769f72ce76ccfd9ea956526f3-0.der differ diff --git a/assets/roots/69ad4bafb45c7a8423a7fb924545dff35aab46eb-0.der b/assets/roots/69ad4bafb45c7a8423a7fb924545dff35aab46eb-0.der new file mode 100644 index 0000000..a59a90b Binary files /dev/null and b/assets/roots/69ad4bafb45c7a8423a7fb924545dff35aab46eb-0.der differ diff --git a/assets/roots/6cf8311aae93dc3feadb1abc64d44c38494b2940-0.der b/assets/roots/6cf8311aae93dc3feadb1abc64d44c38494b2940-0.der new file mode 100644 index 0000000..aac1822 Binary files /dev/null and b/assets/roots/6cf8311aae93dc3feadb1abc64d44c38494b2940-0.der differ diff --git a/assets/roots/6f43c3357b52a21924146518f9cb7d4dbe05a82f-0.der b/assets/roots/6f43c3357b52a21924146518f9cb7d4dbe05a82f-0.der new file mode 100644 index 0000000..5aea734 Binary files /dev/null and b/assets/roots/6f43c3357b52a21924146518f9cb7d4dbe05a82f-0.der differ diff --git a/assets/roots/7036af3c2bea54342640b3ff78c70768e0fdfd68-0.der b/assets/roots/7036af3c2bea54342640b3ff78c70768e0fdfd68-0.der new file mode 100644 index 0000000..316a530 Binary files /dev/null and b/assets/roots/7036af3c2bea54342640b3ff78c70768e0fdfd68-0.der differ diff --git a/assets/roots/704b80e92c15138ab8bef8cad0f2ed793ab3697c-0.der b/assets/roots/704b80e92c15138ab8bef8cad0f2ed793ab3697c-0.der new file mode 100644 index 0000000..235e186 Binary files /dev/null and b/assets/roots/704b80e92c15138ab8bef8cad0f2ed793ab3697c-0.der differ diff --git a/assets/roots/71719c5ecfe502b0b8bdccfe3aac3b0057a13809-0.der b/assets/roots/71719c5ecfe502b0b8bdccfe3aac3b0057a13809-0.der new file mode 100644 index 0000000..22d99a4 Binary files /dev/null and b/assets/roots/71719c5ecfe502b0b8bdccfe3aac3b0057a13809-0.der differ diff --git a/assets/roots/724dba45ab521e8115a29d695c1fc06daee1671c-0.der b/assets/roots/724dba45ab521e8115a29d695c1fc06daee1671c-0.der new file mode 100644 index 0000000..63ce66e Binary files /dev/null and b/assets/roots/724dba45ab521e8115a29d695c1fc06daee1671c-0.der differ diff --git a/assets/roots/72c74580524922e9a5b62e238cb16cd887402dde-0.der b/assets/roots/72c74580524922e9a5b62e238cb16cd887402dde-0.der new file mode 100644 index 0000000..47d3400 Binary files /dev/null and b/assets/roots/72c74580524922e9a5b62e238cb16cd887402dde-0.der differ diff --git a/assets/roots/79e688bd141d71bbcfed90e833ca29c89162f156-0.der b/assets/roots/79e688bd141d71bbcfed90e833ca29c89162f156-0.der new file mode 100644 index 0000000..24e5adb Binary files /dev/null and b/assets/roots/79e688bd141d71bbcfed90e833ca29c89162f156-0.der differ diff --git a/assets/roots/79eabcd4a06fa193dda974a7c6cf184c1fbb4f14-0.der b/assets/roots/79eabcd4a06fa193dda974a7c6cf184c1fbb4f14-0.der new file mode 100644 index 0000000..e99af2e Binary files /dev/null and b/assets/roots/79eabcd4a06fa193dda974a7c6cf184c1fbb4f14-0.der differ diff --git a/assets/roots/7e63ed24cfd532db5d6e66acee1149168947a20d-0.der b/assets/roots/7e63ed24cfd532db5d6e66acee1149168947a20d-0.der new file mode 100644 index 0000000..70cd462 Binary files /dev/null and b/assets/roots/7e63ed24cfd532db5d6e66acee1149168947a20d-0.der differ diff --git a/assets/roots/7f7fad1e1daeeb75e7ecc9ad1ec5f590f5b98461-0.der b/assets/roots/7f7fad1e1daeeb75e7ecc9ad1ec5f590f5b98461-0.der new file mode 100644 index 0000000..b40648c Binary files /dev/null and b/assets/roots/7f7fad1e1daeeb75e7ecc9ad1ec5f590f5b98461-0.der differ diff --git a/assets/roots/81abd26e80718923cd527a3315639bcabc82baac-0.der b/assets/roots/81abd26e80718923cd527a3315639bcabc82baac-0.der new file mode 100644 index 0000000..d0e4cf3 Binary files /dev/null and b/assets/roots/81abd26e80718923cd527a3315639bcabc82baac-0.der differ diff --git a/assets/roots/83cf671cc5fe6cef98a1dba2ad2bdd787607c611-0.der b/assets/roots/83cf671cc5fe6cef98a1dba2ad2bdd787607c611-0.der new file mode 100644 index 0000000..056eace Binary files /dev/null and b/assets/roots/83cf671cc5fe6cef98a1dba2ad2bdd787607c611-0.der differ diff --git a/assets/roots/83fcdde3ff2a744eb4370369af62cd497095e486-0.der b/assets/roots/83fcdde3ff2a744eb4370369af62cd497095e486-0.der new file mode 100644 index 0000000..452e549 Binary files /dev/null and b/assets/roots/83fcdde3ff2a744eb4370369af62cd497095e486-0.der differ diff --git a/assets/roots/843eb9be7c5fcf0311180cf2f1e3ecb9d5e36027-0.der b/assets/roots/843eb9be7c5fcf0311180cf2f1e3ecb9d5e36027-0.der new file mode 100644 index 0000000..cbccb43 Binary files /dev/null and b/assets/roots/843eb9be7c5fcf0311180cf2f1e3ecb9d5e36027-0.der differ diff --git a/assets/roots/887da4445e67ea7c94774e43189c3ecee4c87312-0.der b/assets/roots/887da4445e67ea7c94774e43189c3ecee4c87312-0.der new file mode 100644 index 0000000..42f3c1b Binary files /dev/null and b/assets/roots/887da4445e67ea7c94774e43189c3ecee4c87312-0.der differ diff --git a/assets/roots/8a938d24845c923b512b1cd0ac0e7a64a33b4cf0-0.der b/assets/roots/8a938d24845c923b512b1cd0ac0e7a64a33b4cf0-0.der new file mode 100644 index 0000000..0f5f95f Binary files /dev/null and b/assets/roots/8a938d24845c923b512b1cd0ac0e7a64a33b4cf0-0.der differ diff --git a/assets/roots/8aa2eaae98f84c6b1703fefce5ee0bc9afed2fa6-0.der b/assets/roots/8aa2eaae98f84c6b1703fefce5ee0bc9afed2fa6-0.der new file mode 100644 index 0000000..c568023 Binary files /dev/null and b/assets/roots/8aa2eaae98f84c6b1703fefce5ee0bc9afed2fa6-0.der differ diff --git a/assets/roots/8df6bca2fa8dd4f6a68eaf461bf2091e9aa77576-0.der b/assets/roots/8df6bca2fa8dd4f6a68eaf461bf2091e9aa77576-0.der new file mode 100644 index 0000000..1a0c2e2 Binary files /dev/null and b/assets/roots/8df6bca2fa8dd4f6a68eaf461bf2091e9aa77576-0.der differ diff --git a/assets/roots/8e88f59059604b03df43780a8094a649cdb975f6-0.der b/assets/roots/8e88f59059604b03df43780a8094a649cdb975f6-0.der new file mode 100644 index 0000000..d0e8f0b Binary files /dev/null and b/assets/roots/8e88f59059604b03df43780a8094a649cdb975f6-0.der differ diff --git a/assets/roots/9370a55f7c274e0d3a10562231c60a406a8d98a6-0.der b/assets/roots/9370a55f7c274e0d3a10562231c60a406a8d98a6-0.der new file mode 100644 index 0000000..6927c52 Binary files /dev/null and b/assets/roots/9370a55f7c274e0d3a10562231c60a406a8d98a6-0.der differ diff --git a/assets/roots/953e4462a2852855675a4a4f8a790c5e904cfa5a-0.der b/assets/roots/953e4462a2852855675a4a4f8a790c5e904cfa5a-0.der new file mode 100644 index 0000000..09438c8 Binary files /dev/null and b/assets/roots/953e4462a2852855675a4a4f8a790c5e904cfa5a-0.der differ diff --git a/assets/roots/96db2813a1d464fed7792b0db6d29e5d8308bbf9-0.der b/assets/roots/96db2813a1d464fed7792b0db6d29e5d8308bbf9-0.der new file mode 100644 index 0000000..a4dfe1f Binary files /dev/null and b/assets/roots/96db2813a1d464fed7792b0db6d29e5d8308bbf9-0.der differ diff --git a/assets/roots/9717ccde7d8296f32c79363127c7d366c7ccf94c-0.der b/assets/roots/9717ccde7d8296f32c79363127c7d366c7ccf94c-0.der new file mode 100644 index 0000000..12f481e Binary files /dev/null and b/assets/roots/9717ccde7d8296f32c79363127c7d366c7ccf94c-0.der differ diff --git a/assets/roots/984a0a63fba1d7069deb8931aef39c24ea7a5c47-0.der b/assets/roots/984a0a63fba1d7069deb8931aef39c24ea7a5c47-0.der new file mode 100644 index 0000000..d618f1e Binary files /dev/null and b/assets/roots/984a0a63fba1d7069deb8931aef39c24ea7a5c47-0.der differ diff --git a/assets/roots/9b55f064e2c8498d97481114eeaf435fe0cd3a39-0.der b/assets/roots/9b55f064e2c8498d97481114eeaf435fe0cd3a39-0.der new file mode 100644 index 0000000..16a364d Binary files /dev/null and b/assets/roots/9b55f064e2c8498d97481114eeaf435fe0cd3a39-0.der differ diff --git a/assets/roots/9bbd65196c3a9fffbf0bc4bfdb20299bf0d6df8f-0.der b/assets/roots/9bbd65196c3a9fffbf0bc4bfdb20299bf0d6df8f-0.der new file mode 100644 index 0000000..58d018a Binary files /dev/null and b/assets/roots/9bbd65196c3a9fffbf0bc4bfdb20299bf0d6df8f-0.der differ diff --git a/assets/roots/9be242c83e15138e38e53cc701da3ab52d475144-0.der b/assets/roots/9be242c83e15138e38e53cc701da3ab52d475144-0.der new file mode 100644 index 0000000..6a62de1 Binary files /dev/null and b/assets/roots/9be242c83e15138e38e53cc701da3ab52d475144-0.der differ diff --git a/assets/roots/a27cf103f952a9ba8cd636012f4adfffe82b92af-0.der b/assets/roots/a27cf103f952a9ba8cd636012f4adfffe82b92af-0.der new file mode 100644 index 0000000..e4795f3 Binary files /dev/null and b/assets/roots/a27cf103f952a9ba8cd636012f4adfffe82b92af-0.der differ diff --git a/assets/roots/a4c867427bbd6f1c2a429387154ec72447e68508-0.der b/assets/roots/a4c867427bbd6f1c2a429387154ec72447e68508-0.der new file mode 100644 index 0000000..c1258ee Binary files /dev/null and b/assets/roots/a4c867427bbd6f1c2a429387154ec72447e68508-0.der differ diff --git a/assets/roots/a4d7c276adf4f0fa5b7b3606db53807f3cd79d09-0.der b/assets/roots/a4d7c276adf4f0fa5b7b3606db53807f3cd79d09-0.der new file mode 100644 index 0000000..c676be5 Binary files /dev/null and b/assets/roots/a4d7c276adf4f0fa5b7b3606db53807f3cd79d09-0.der differ diff --git a/assets/roots/a76e38b989c88f14809cb8826da96b75cadeeb8d-0.der b/assets/roots/a76e38b989c88f14809cb8826da96b75cadeeb8d-0.der new file mode 100644 index 0000000..1ff0c9c Binary files /dev/null and b/assets/roots/a76e38b989c88f14809cb8826da96b75cadeeb8d-0.der differ diff --git a/assets/roots/aab38011e10133cb69cdf7f710e973cf9577abbf-0.der b/assets/roots/aab38011e10133cb69cdf7f710e973cf9577abbf-0.der new file mode 100644 index 0000000..8c59853 Binary files /dev/null and b/assets/roots/aab38011e10133cb69cdf7f710e973cf9577abbf-0.der differ diff --git a/assets/roots/abf377b2272de78e18d5a67e5b1297dce8c5dac1-0.der b/assets/roots/abf377b2272de78e18d5a67e5b1297dce8c5dac1-0.der new file mode 100644 index 0000000..9c53496 Binary files /dev/null and b/assets/roots/abf377b2272de78e18d5a67e5b1297dce8c5dac1-0.der differ diff --git a/assets/roots/b0e31e6fe1b4e58b38cd4664dd9184b2eead11f6-0.der b/assets/roots/b0e31e6fe1b4e58b38cd4664dd9184b2eead11f6-0.der new file mode 100644 index 0000000..194de84 Binary files /dev/null and b/assets/roots/b0e31e6fe1b4e58b38cd4664dd9184b2eead11f6-0.der differ diff --git a/assets/roots/b63a54aeb7c096b2c72835b60f7d423e851e811a-0.der b/assets/roots/b63a54aeb7c096b2c72835b60f7d423e851e811a-0.der new file mode 100644 index 0000000..dd740ab Binary files /dev/null and b/assets/roots/b63a54aeb7c096b2c72835b60f7d423e851e811a-0.der differ diff --git a/assets/roots/b7e7d918696e6d071cafa898ed1bf22538e71ab2-0.der b/assets/roots/b7e7d918696e6d071cafa898ed1bf22538e71ab2-0.der new file mode 100644 index 0000000..53919a6 Binary files /dev/null and b/assets/roots/b7e7d918696e6d071cafa898ed1bf22538e71ab2-0.der differ diff --git a/assets/roots/badf8ae3f7eb508c94c1bae31e7cdc3a713d4437-0.der b/assets/roots/badf8ae3f7eb508c94c1bae31e7cdc3a713d4437-0.der new file mode 100644 index 0000000..d6aa0f4 Binary files /dev/null and b/assets/roots/badf8ae3f7eb508c94c1bae31e7cdc3a713d4437-0.der differ diff --git a/assets/roots/bece0f14569371822ea32fed5faa588deb9a03a2-0.der b/assets/roots/bece0f14569371822ea32fed5faa588deb9a03a2-0.der new file mode 100644 index 0000000..0642a03 Binary files /dev/null and b/assets/roots/bece0f14569371822ea32fed5faa588deb9a03a2-0.der differ diff --git a/assets/roots/c17e0d0305d965b2bf298a6c492a3b0bea8ba25f-0.der b/assets/roots/c17e0d0305d965b2bf298a6c492a3b0bea8ba25f-0.der new file mode 100644 index 0000000..86d70df Binary files /dev/null and b/assets/roots/c17e0d0305d965b2bf298a6c492a3b0bea8ba25f-0.der differ diff --git a/assets/roots/c5c7806f3b0ec8c5ac7df8fd9922dcc8b15bd0bf-0.der b/assets/roots/c5c7806f3b0ec8c5ac7df8fd9922dcc8b15bd0bf-0.der new file mode 100644 index 0000000..0911a56 Binary files /dev/null and b/assets/roots/c5c7806f3b0ec8c5ac7df8fd9922dcc8b15bd0bf-0.der differ diff --git a/assets/roots/c90a620226764c614af7a3e7549b6b1dac6b0f55-0.der b/assets/roots/c90a620226764c614af7a3e7549b6b1dac6b0f55-0.der new file mode 100644 index 0000000..675cbeb Binary files /dev/null and b/assets/roots/c90a620226764c614af7a3e7549b6b1dac6b0f55-0.der differ diff --git a/assets/roots/c9770b343f6c16083e2a9e9be4f9ee2de35dd3d9-0.der b/assets/roots/c9770b343f6c16083e2a9e9be4f9ee2de35dd3d9-0.der new file mode 100644 index 0000000..982345d Binary files /dev/null and b/assets/roots/c9770b343f6c16083e2a9e9be4f9ee2de35dd3d9-0.der differ diff --git a/assets/roots/cc74fc3960063bc493f2540de8ccc3b47e59d84a-0.der b/assets/roots/cc74fc3960063bc493f2540de8ccc3b47e59d84a-0.der new file mode 100644 index 0000000..86658ae Binary files /dev/null and b/assets/roots/cc74fc3960063bc493f2540de8ccc3b47e59d84a-0.der differ diff --git a/assets/roots/cd30d24c343a82ab1f0570158ad7a107762992e9-0.der b/assets/roots/cd30d24c343a82ab1f0570158ad7a107762992e9-0.der new file mode 100644 index 0000000..2fa45b2 Binary files /dev/null and b/assets/roots/cd30d24c343a82ab1f0570158ad7a107762992e9-0.der differ diff --git a/assets/roots/cf3ab99d14f558ddad1db1c0c87dd6b76685ff6b-0.der b/assets/roots/cf3ab99d14f558ddad1db1c0c87dd6b76685ff6b-0.der new file mode 100644 index 0000000..26f98a8 Binary files /dev/null and b/assets/roots/cf3ab99d14f558ddad1db1c0c87dd6b76685ff6b-0.der differ diff --git a/assets/roots/d07c43a2a0f778fed080dff8600e49515c1d05c2-0.der b/assets/roots/d07c43a2a0f778fed080dff8600e49515c1d05c2-0.der new file mode 100644 index 0000000..ff212ef Binary files /dev/null and b/assets/roots/d07c43a2a0f778fed080dff8600e49515c1d05c2-0.der differ diff --git a/assets/roots/d422b47d649377b28a8d0620f4ffafe3444e309c-0.der b/assets/roots/d422b47d649377b28a8d0620f4ffafe3444e309c-0.der new file mode 100644 index 0000000..7a8caf9 Binary files /dev/null and b/assets/roots/d422b47d649377b28a8d0620f4ffafe3444e309c-0.der differ diff --git a/assets/roots/d83a4cebac21908f4f278d95db510429928526b9-0.der b/assets/roots/d83a4cebac21908f4f278d95db510429928526b9-0.der new file mode 100644 index 0000000..cf29ccc Binary files /dev/null and b/assets/roots/d83a4cebac21908f4f278d95db510429928526b9-0.der differ diff --git a/assets/roots/db967dfe40104bbb8a15f44c45067d6d9ca0117a-0.der b/assets/roots/db967dfe40104bbb8a15f44c45067d6d9ca0117a-0.der new file mode 100644 index 0000000..339a109 Binary files /dev/null and b/assets/roots/db967dfe40104bbb8a15f44c45067d6d9ca0117a-0.der differ diff --git a/assets/roots/dd8ae898b225382efd64f9f3c37486534fa9cbda-0.der b/assets/roots/dd8ae898b225382efd64f9f3c37486534fa9cbda-0.der new file mode 100644 index 0000000..3f6981b Binary files /dev/null and b/assets/roots/dd8ae898b225382efd64f9f3c37486534fa9cbda-0.der differ diff --git a/assets/roots/ddb36391a7eefac7df3e47972cdd9c04be806e9d-0.der b/assets/roots/ddb36391a7eefac7df3e47972cdd9c04be806e9d-0.der new file mode 100644 index 0000000..b21a344 Binary files /dev/null and b/assets/roots/ddb36391a7eefac7df3e47972cdd9c04be806e9d-0.der differ diff --git a/assets/roots/de1d43c47af5f1bc86ab36437e021703f89ccf5c-0.der b/assets/roots/de1d43c47af5f1bc86ab36437e021703f89ccf5c-0.der new file mode 100644 index 0000000..56039c0 Binary files /dev/null and b/assets/roots/de1d43c47af5f1bc86ab36437e021703f89ccf5c-0.der differ diff --git a/assets/roots/df22cf8b8c3b46c10d3d5c407561eabeb57f8181-0.der b/assets/roots/df22cf8b8c3b46c10d3d5c407561eabeb57f8181-0.der new file mode 100644 index 0000000..99bcc84 Binary files /dev/null and b/assets/roots/df22cf8b8c3b46c10d3d5c407561eabeb57f8181-0.der differ diff --git a/assets/roots/e24e78259c056c7f870c7b62f5b043d96fab7725-0.der b/assets/roots/e24e78259c056c7f870c7b62f5b043d96fab7725-0.der new file mode 100644 index 0000000..9519275 Binary files /dev/null and b/assets/roots/e24e78259c056c7f870c7b62f5b043d96fab7725-0.der differ diff --git a/assets/roots/e7e9ceba6df839282ba96295895cca12e56e2cd6-0.der b/assets/roots/e7e9ceba6df839282ba96295895cca12e56e2cd6-0.der new file mode 100644 index 0000000..f61e2f8 Binary files /dev/null and b/assets/roots/e7e9ceba6df839282ba96295895cca12e56e2cd6-0.der differ diff --git a/assets/roots/e9c6f2faacfba8533a5d58a04d4f76d1fa532b0b-0.der b/assets/roots/e9c6f2faacfba8533a5d58a04d4f76d1fa532b0b-0.der new file mode 100644 index 0000000..f88e810 Binary files /dev/null and b/assets/roots/e9c6f2faacfba8533a5d58a04d4f76d1fa532b0b-0.der differ diff --git a/assets/roots/eb25d890fe2720f41d7d6ac15eef76cf62cfab78-0.der b/assets/roots/eb25d890fe2720f41d7d6ac15eef76cf62cfab78-0.der new file mode 100644 index 0000000..9e42698 Binary files /dev/null and b/assets/roots/eb25d890fe2720f41d7d6ac15eef76cf62cfab78-0.der differ diff --git a/assets/roots/eb8ebc9d472b7e0291771923f2a5f1c1c51e57b5-0.der b/assets/roots/eb8ebc9d472b7e0291771923f2a5f1c1c51e57b5-0.der new file mode 100644 index 0000000..6dda6a3 Binary files /dev/null and b/assets/roots/eb8ebc9d472b7e0291771923f2a5f1c1c51e57b5-0.der differ diff --git a/assets/roots/ef58da4b2284f3860c68b18b916a064a520a9728-0.der b/assets/roots/ef58da4b2284f3860c68b18b916a064a520a9728-0.der new file mode 100644 index 0000000..9c1e26c Binary files /dev/null and b/assets/roots/ef58da4b2284f3860c68b18b916a064a520a9728-0.der differ diff --git a/assets/roots/f026813c6ea2e5bbca921b4b884a50f107f0cbff-0.der b/assets/roots/f026813c6ea2e5bbca921b4b884a50f107f0cbff-0.der new file mode 100644 index 0000000..507b842 Binary files /dev/null and b/assets/roots/f026813c6ea2e5bbca921b4b884a50f107f0cbff-0.der differ diff --git a/assets/roots/f180fc731db5ec5a468e4ba9bc8ab856319ceda9-0.der b/assets/roots/f180fc731db5ec5a468e4ba9bc8ab856319ceda9-0.der new file mode 100644 index 0000000..72e48c3 Binary files /dev/null and b/assets/roots/f180fc731db5ec5a468e4ba9bc8ab856319ceda9-0.der differ diff --git a/assets/roots/f20ef3e3718f19d130d9cc7a2dc303161cb29cd0-0.der b/assets/roots/f20ef3e3718f19d130d9cc7a2dc303161cb29cd0-0.der new file mode 100644 index 0000000..a42b519 Binary files /dev/null and b/assets/roots/f20ef3e3718f19d130d9cc7a2dc303161cb29cd0-0.der differ diff --git a/assets/roots/f33f2ef9470df6a3ca848f278ea48015299c54f1-0.der b/assets/roots/f33f2ef9470df6a3ca848f278ea48015299c54f1-0.der new file mode 100644 index 0000000..767b3c2 Binary files /dev/null and b/assets/roots/f33f2ef9470df6a3ca848f278ea48015299c54f1-0.der differ diff --git a/assets/roots/f4ee867f8a28dc57b3dfe2c74facf594b917520b-0.der b/assets/roots/f4ee867f8a28dc57b3dfe2c74facf594b917520b-0.der new file mode 100644 index 0000000..b29eefd Binary files /dev/null and b/assets/roots/f4ee867f8a28dc57b3dfe2c74facf594b917520b-0.der differ diff --git a/assets/roots/f5042d4a785f7dab303cd2dc815d90dee6995f09-0.der b/assets/roots/f5042d4a785f7dab303cd2dc815d90dee6995f09-0.der new file mode 100644 index 0000000..6a336d4 Binary files /dev/null and b/assets/roots/f5042d4a785f7dab303cd2dc815d90dee6995f09-0.der differ diff --git a/assets/roots/f59639270d6a2019f1683191887f7f3edb1f2013-0.der b/assets/roots/f59639270d6a2019f1683191887f7f3edb1f2013-0.der new file mode 100644 index 0000000..d5f8989 Binary files /dev/null and b/assets/roots/f59639270d6a2019f1683191887f7f3edb1f2013-0.der differ diff --git a/assets/roots/f59c687f2418d62a790f7592330756ea85e94707-0.der b/assets/roots/f59c687f2418d62a790f7592330756ea85e94707-0.der new file mode 100644 index 0000000..232c4b6 Binary files /dev/null and b/assets/roots/f59c687f2418d62a790f7592330756ea85e94707-0.der differ diff --git a/assets/roots/f7025660b8bbc206931faf24a7161c03980f6301-0.der b/assets/roots/f7025660b8bbc206931faf24a7161c03980f6301-0.der new file mode 100644 index 0000000..e18997f Binary files /dev/null and b/assets/roots/f7025660b8bbc206931faf24a7161c03980f6301-0.der differ diff --git a/assets/roots/f85cf300817f2b6cd6f5d220fd224155c466d35b-0.der b/assets/roots/f85cf300817f2b6cd6f5d220fd224155c466d35b-0.der new file mode 100644 index 0000000..c55cb68 Binary files /dev/null and b/assets/roots/f85cf300817f2b6cd6f5d220fd224155c466d35b-0.der differ diff --git a/assets/roots/f9780538aed47baadb39e8710440f329a43a372a-0.der b/assets/roots/f9780538aed47baadb39e8710440f329a43a372a-0.der new file mode 100644 index 0000000..3a08309 Binary files /dev/null and b/assets/roots/f9780538aed47baadb39e8710440f329a43a372a-0.der differ diff --git a/assets/roots/fbb2191bc63ac8ff27f29ee542bf779ce0c298a1-0.der b/assets/roots/fbb2191bc63ac8ff27f29ee542bf779ce0c298a1-0.der new file mode 100644 index 0000000..3cd7112 Binary files /dev/null and b/assets/roots/fbb2191bc63ac8ff27f29ee542bf779ce0c298a1-0.der differ diff --git a/assets/roots/fcc3e143973af986f6b33251f56e17bbee86f58c-0.der b/assets/roots/fcc3e143973af986f6b33251f56e17bbee86f58c-0.der new file mode 100644 index 0000000..bcafb43 Binary files /dev/null and b/assets/roots/fcc3e143973af986f6b33251f56e17bbee86f58c-0.der differ diff --git a/build.sh b/build.sh index c9364e2..9ba9f7d 100755 --- a/build.sh +++ b/build.sh @@ -1,37 +1,38 @@ #!/bin/sh -# Builds MiniABS.apk for Android 2.2+ (API 8) using the plain SDK tools, no Gradle. +# Builds Podlite.apk for Android 2.2+ (API 8) using the plain SDK tools, no Gradle. # ANDROID_JAR android.jar for API 8 (compiling against it guarantees no newer APIs sneak in) # KEYSTORE signing keystore (created on first build if missing) set -e cd "$(dirname "$0")" ANDROID_JAR=${ANDROID_JAR:-/home/claude/sable/android-platforms/android-8/android.jar} KEYSTORE=${KEYSTORE:-miniabs.keystore} +BC_SRC=${BC_SRC:-$HOME/android-toolchain/bcsrc} # Bouncy Castle renamed to com.minamp.bc (Minamp's tools/setup_toolchain.sh) OUT=build rm -rf "$OUT" mkdir -p "$OUT/gen" "$OUT/classes" echo "== resources" -aapt package -f -m -J "$OUT/gen" -M AndroidManifest.xml -S res -I "$ANDROID_JAR" \ - -F "$OUT/MiniABS.unsigned.apk" +aapt package -f -m -J "$OUT/gen" -M AndroidManifest.xml -S res -A assets -I "$ANDROID_JAR" \ + -F "$OUT/Podlite.unsigned.apk" echo "== compile (Java 8 bytecode, API 8 class library)" javac -nowarn -Xlint:-options -encoding UTF-8 -source 8 -target 8 \ - -bootclasspath "$ANDROID_JAR" -classpath "$ANDROID_JAR" \ + -bootclasspath "$ANDROID_JAR" -classpath "$ANDROID_JAR" -sourcepath "src:$BC_SRC:$OUT/gen" \ -d "$OUT/classes" $(find src "$OUT/gen" -name '*.java') echo "== dex" dalvik-exchange --dex --min-sdk-version=8 --output="$OUT/classes.dex" "$OUT/classes" -(cd "$OUT" && aapt add MiniABS.unsigned.apk classes.dex > /dev/null) +(cd "$OUT" && aapt add Podlite.unsigned.apk classes.dex > /dev/null) echo "== align + sign (v1 JAR signature with SHA-1, which Android 2.x requires)" if [ ! -f "$KEYSTORE" ]; then keytool -genkeypair -keystore "$KEYSTORE" -storepass miniabs -keypass miniabs -alias miniabs \ - -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=MiniABS" > /dev/null 2>&1 + -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Podlite" > /dev/null 2>&1 fi -zipalign -f 4 "$OUT/MiniABS.unsigned.apk" "$OUT/MiniABS.aligned.apk" +zipalign -f 4 "$OUT/Podlite.unsigned.apk" "$OUT/Podlite.aligned.apk" apksigner sign --ks "$KEYSTORE" --ks-pass pass:miniabs --key-pass pass:miniabs --ks-key-alias miniabs \ --min-sdk-version 8 --v1-signing-enabled true --v2-signing-enabled false --v3-signing-enabled false \ - --out "$OUT/MiniABS.apk" "$OUT/MiniABS.aligned.apk" -apksigner verify --min-sdk-version 8 "$OUT/MiniABS.apk" -ls -l "$OUT/MiniABS.apk" + --out "$OUT/Podlite.apk" "$OUT/Podlite.aligned.apk" +apksigner verify --min-sdk-version 8 "$OUT/Podlite.apk" +ls -l "$OUT/Podlite.apk" diff --git a/res/drawable-hdpi/ic_launcher.png b/res/drawable-hdpi/ic_launcher.png index 3587b89..d39fb05 100644 Binary files a/res/drawable-hdpi/ic_launcher.png and b/res/drawable-hdpi/ic_launcher.png differ diff --git a/res/drawable-hdpi/ic_pause_small.png b/res/drawable-hdpi/ic_pause_small.png index e059b77..00c20d3 100644 Binary files a/res/drawable-hdpi/ic_pause_small.png and b/res/drawable-hdpi/ic_pause_small.png differ diff --git a/res/drawable-hdpi/ic_play_small.png b/res/drawable-hdpi/ic_play_small.png index 9094cdc..ac214fc 100644 Binary files a/res/drawable-hdpi/ic_play_small.png and b/res/drawable-hdpi/ic_play_small.png differ diff --git a/res/drawable-hdpi/ic_stat.png b/res/drawable-hdpi/ic_stat.png index b8d2bda..ed00982 100644 Binary files a/res/drawable-hdpi/ic_stat.png and b/res/drawable-hdpi/ic_stat.png differ diff --git a/res/drawable-ldpi/ic_launcher.png b/res/drawable-ldpi/ic_launcher.png index 36ff689..580e518 100644 Binary files a/res/drawable-ldpi/ic_launcher.png and b/res/drawable-ldpi/ic_launcher.png differ diff --git a/res/drawable-ldpi/ic_pause_small.png b/res/drawable-ldpi/ic_pause_small.png index f755ddd..db35237 100644 Binary files a/res/drawable-ldpi/ic_pause_small.png and b/res/drawable-ldpi/ic_pause_small.png differ diff --git a/res/drawable-ldpi/ic_play_small.png b/res/drawable-ldpi/ic_play_small.png index 42780ee..71a775c 100644 Binary files a/res/drawable-ldpi/ic_play_small.png and b/res/drawable-ldpi/ic_play_small.png differ diff --git a/res/drawable-ldpi/ic_stat.png b/res/drawable-ldpi/ic_stat.png index 8eba59d..05b6c5e 100644 Binary files a/res/drawable-ldpi/ic_stat.png and b/res/drawable-ldpi/ic_stat.png differ diff --git a/res/drawable-mdpi/ic_launcher.png b/res/drawable-mdpi/ic_launcher.png index a7fad24..3c42a68 100644 Binary files a/res/drawable-mdpi/ic_launcher.png and b/res/drawable-mdpi/ic_launcher.png differ diff --git a/res/drawable-mdpi/ic_pause_small.png b/res/drawable-mdpi/ic_pause_small.png index d4abd96..be0df96 100644 Binary files a/res/drawable-mdpi/ic_pause_small.png and b/res/drawable-mdpi/ic_pause_small.png differ diff --git a/res/drawable-mdpi/ic_play_small.png b/res/drawable-mdpi/ic_play_small.png index a7df024..ed3c6e3 100644 Binary files a/res/drawable-mdpi/ic_play_small.png and b/res/drawable-mdpi/ic_play_small.png differ diff --git a/res/drawable-mdpi/ic_stat.png b/res/drawable-mdpi/ic_stat.png index acc9748..f220484 100644 Binary files a/res/drawable-mdpi/ic_stat.png and b/res/drawable-mdpi/ic_stat.png differ diff --git a/res/drawable-xhdpi/ic_launcher.png b/res/drawable-xhdpi/ic_launcher.png index 6fd6c0f..3590432 100644 Binary files a/res/drawable-xhdpi/ic_launcher.png and b/res/drawable-xhdpi/ic_launcher.png differ diff --git a/res/drawable/btn_accent.xml b/res/drawable/btn_accent.xml index 4537e4d..4f82403 100644 --- a/res/drawable/btn_accent.xml +++ b/res/drawable/btn_accent.xml @@ -1,7 +1,7 @@ - + diff --git a/res/drawable/btn_round.xml b/res/drawable/btn_round.xml index 1730d8a..654bbdf 100644 --- a/res/drawable/btn_round.xml +++ b/res/drawable/btn_round.xml @@ -1,7 +1,7 @@ - + diff --git a/res/layout/activity_home.xml b/res/layout/activity_home.xml index 184ef0b..ca90592 100644 --- a/res/layout/activity_home.xml +++ b/res/layout/activity_home.xml @@ -9,7 +9,7 @@ diff --git a/res/layout/activity_login.xml b/res/layout/activity_login.xml index 3a84314..ccf088e 100644 --- a/res/layout/activity_login.xml +++ b/res/layout/activity_login.xml @@ -31,7 +31,7 @@ @@ -99,6 +99,6 @@ android:textSize="@dimen/login_tip" android:textColor="@color/dim" android:lineSpacingExtra="2dp" - android:text="Na casa, usa o enderezo local http:// do servidor. Para https://, Android 2.3 precisa que o servidor ofreza TLS 1.0 nun porto á parte (ve o README). Se o certificado non se recoñece, amosaráseche a súa pegada dixital para que a comprobes." /> + android:text="Usa o enderezo https:// normal do servidor, na casa ou fóra: Podlite trae o seu propio TLS moderno. Na casa tamén vale o enderezo local http://. Se o certificado non se recoñece, amosaráseche a súa pegada dixital para que a comprobes." /> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 6c803fb..0295e92 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -1,6 +1,6 @@ diff --git a/res/values/values.xml b/res/values/values.xml index 86e3c47..c7dbf0d 100644 --- a/res/values/values.xml +++ b/res/values/values.xml @@ -1,21 +1,21 @@ - MiniABS + Podlite - - #13111A - #1D1928 - #0C0A12 - #2C2638 - #EEEBF3 - #ADA6BC - #736C82 - #7A25EC - #BC8AFC - #9437FC - #5A11D3 + + #15120F + #211C17 + #0E0B09 + #342A21 + #F2EDE6 + #BFB4A6 + #827567 + #C27A1E + #E8A64A + #D98C2B + #A35F14 #6EC1E4 - #2E2642 + #3B2D20