Compare commits
5
Commits
b0d63c9f0f
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55a69c743a | ||
|
|
f22d954105 | ||
|
|
86d3a3b47f | ||
|
|
8a95abf18b | ||
|
|
552c009120 |
No files matched your search
Generated
+230
-20
@@ -10,7 +10,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -123,12 +123,28 @@ dependencies = [
|
||||
"shlex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cesu8"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "1.0.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
|
||||
|
||||
[[package]]
|
||||
name = "combine"
|
||||
version = "4.6.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4356eba6976435498d05a311ee9fc486da3bc81c200d3f0d7dd9703b41913f92"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.17"
|
||||
@@ -172,7 +188,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -229,7 +245,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -517,6 +533,50 @@ version = "1.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
||||
|
||||
[[package]]
|
||||
name = "jni"
|
||||
version = "0.21.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
|
||||
dependencies = [
|
||||
"cesu8",
|
||||
"cfg-if",
|
||||
"combine",
|
||||
"jni-sys 0.3.1",
|
||||
"log",
|
||||
"thiserror",
|
||||
"walkdir",
|
||||
"windows-sys 0.45.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jni-sys"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258"
|
||||
dependencies = [
|
||||
"jni-sys 0.4.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jni-sys"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
|
||||
dependencies = [
|
||||
"jni-sys-macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jni-sys-macros"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"syn 2.0.119",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.106"
|
||||
@@ -675,7 +735,20 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ramshare_ui"
|
||||
name = "ramshare-android-jni"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"jni",
|
||||
"parking_lot",
|
||||
"ramshare-core",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
"tokio-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ramshare-core"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"axum",
|
||||
@@ -700,6 +773,18 @@ dependencies = [
|
||||
"tokio-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ramshare_ui"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"ramshare-core",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
"tokio-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rcgen"
|
||||
version = "0.13.2"
|
||||
@@ -821,6 +906,15 @@ version = "1.0.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
|
||||
|
||||
[[package]]
|
||||
name = "same-file"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
||||
dependencies = [
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "scopeguard"
|
||||
version = "1.2.0"
|
||||
@@ -854,7 +948,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -964,6 +1058,17 @@ version = "2.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.119"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "3.0.9"
|
||||
@@ -992,7 +1097,27 @@ checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.69"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "1.0.69"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.119",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1048,7 +1173,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1199,6 +1324,16 @@ version = "0.9.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
||||
|
||||
[[package]]
|
||||
name = "walkdir"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
||||
dependencies = [
|
||||
"same-file",
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "want"
|
||||
version = "0.3.2"
|
||||
@@ -1257,7 +1392,7 @@ dependencies = [
|
||||
"bumpalo",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
@@ -1293,19 +1428,37 @@ dependencies = [
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-util"
|
||||
version = "0.1.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
||||
dependencies = [
|
||||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-link"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.45.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
|
||||
dependencies = [
|
||||
"windows-targets 0.42.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.52.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1314,7 +1467,7 @@ version = "0.59.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1326,34 +1479,67 @@ dependencies = [
|
||||
"windows-link",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-targets"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
|
||||
dependencies = [
|
||||
"windows_aarch64_gnullvm 0.42.2",
|
||||
"windows_aarch64_msvc 0.42.2",
|
||||
"windows_i686_gnu 0.42.2",
|
||||
"windows_i686_msvc 0.42.2",
|
||||
"windows_x86_64_gnu 0.42.2",
|
||||
"windows_x86_64_gnullvm 0.42.2",
|
||||
"windows_x86_64_msvc 0.42.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-targets"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
||||
dependencies = [
|
||||
"windows_aarch64_gnullvm",
|
||||
"windows_aarch64_msvc",
|
||||
"windows_i686_gnu",
|
||||
"windows_aarch64_gnullvm 0.52.6",
|
||||
"windows_aarch64_msvc 0.52.6",
|
||||
"windows_i686_gnu 0.52.6",
|
||||
"windows_i686_gnullvm",
|
||||
"windows_i686_msvc",
|
||||
"windows_x86_64_gnu",
|
||||
"windows_x86_64_gnullvm",
|
||||
"windows_x86_64_msvc",
|
||||
"windows_i686_msvc 0.52.6",
|
||||
"windows_x86_64_gnu 0.52.6",
|
||||
"windows_x86_64_gnullvm 0.52.6",
|
||||
"windows_x86_64_msvc 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_gnullvm"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_msvc"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnu"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnu"
|
||||
version = "0.52.6"
|
||||
@@ -1366,24 +1552,48 @@ version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_msvc"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnu"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnu"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnullvm"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.52.6"
|
||||
@@ -1424,7 +1634,7 @@ checksum = "ec8ebde2db3681e8c9980cc27822030e68752690ddfa9473e739aeb4dbde6d71"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
"synstructure",
|
||||
]
|
||||
|
||||
@@ -1445,7 +1655,7 @@ checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
"synstructure",
|
||||
]
|
||||
|
||||
@@ -1485,7 +1695,7 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"syn 3.0.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
+11
-5
@@ -1,9 +1,16 @@
|
||||
[package]
|
||||
name = "ramshare_ui"
|
||||
[workspace]
|
||||
members = [
|
||||
"crates/core",
|
||||
"crates/desktop",
|
||||
"crates/android-jni",
|
||||
]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
version = "0.4.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
[workspace.dependencies]
|
||||
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "fs", "time", "sync", "io-util", "signal"] }
|
||||
tokio-stream = "0.1"
|
||||
tokio-util = { version = "0.7", features = ["io"] }
|
||||
@@ -14,9 +21,8 @@ axum = { version = "0.7" }
|
||||
hyper = { version = "1", features = ["http1", "server"] }
|
||||
hyper-util = { version = "0.1", features = ["tokio", "server", "http1", "service"] }
|
||||
|
||||
# 0.12.9+: нужен ClientBuilder::read_timeout / tls_info / use_preconfigured_tls
|
||||
reqwest = { version = "0.12.9", default-features = false, features = ["rustls-tls-no-provider", "stream"] }
|
||||
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] } # TLS 1.2 не нужен
|
||||
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
|
||||
rcgen = "0.13"
|
||||
sha2 = "0.10"
|
||||
hex = "0.4"
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
[package]
|
||||
name = "ramshare_ui"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
tokio = { version = "1.40", features = ["full"] }
|
||||
axum = { version = "0.7" }
|
||||
axum-server = { version = "0.7", features = ["tls-rustls"] }
|
||||
bytes = "1.7"
|
||||
|
||||
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
|
||||
|
||||
rcgen = "0.13"
|
||||
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] }
|
||||
sha2 = "0.10"
|
||||
hex = "0.4"
|
||||
|
||||
mdns-sd = "0.11"
|
||||
local-ip-address = "0.6"
|
||||
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
@@ -0,0 +1,232 @@
|
||||
# ramshare_ui
|
||||
|
||||
Легковесная, автономная утилита для безопасного обмена текстом и файлами внутри локальных сетей (Wi-Fi, точки доступа со смартфонов, офисные LAN, домашние роутеры, VPN/Tailscale `100.64.0.0/10`).
|
||||
|
||||
Приложение спроектировано для работы в условиях нестабильного окружения и роуминга устройств (ноутбуки, телефоны, сменяющие IP-адреса при переходе между сетями). Работает как в виде локального веб-интерфейса, так и через полноценный CLI без графической оболочки.
|
||||
|
||||
---
|
||||
|
||||
## Ключевые особенности
|
||||
|
||||
* **Криптографическая безопасность из коробки:**
|
||||
* Соединения работают строго по **TLS 1.3** с обязательной взаимной аутентификацией (**mTLS**) через самоподписанные сертификаты.
|
||||
* Пиннинг сертификатов: соединение устанавливается только с известным и явно подтверждённым отпечатком (SHA-256).
|
||||
* **SAS-коды сверки (Short Authentication String):** 80-битный симметричный верификационный код вида `XXXX-XXXX-XXXX`, вычисляемый из отпечатков обоих узлов, предотвращает атаки типа Man-in-the-Middle (MitM).
|
||||
* Двусторонняя верификация: передача данных блокируется до тех пор, пока **оба** участника не подтвердят код на своих экранах.
|
||||
|
||||
|
||||
* **Приватность и потоковая передача:**
|
||||
* **Текст принимается исключительно в ОЗУ** (до 64 КБ на сообщение, кольцевой буфер на 50 записей). При закрытии процесса или нажатии кнопки очистки текст бесследно исчезает.
|
||||
* **Потоковая передача файлов с backpressure:** чтение и запись производятся чанками с константным потреблением памяти ($O(1)$ RAM), поддерживаются файлы объёмом до 2 ГБ.
|
||||
* Файлы записываются во временные `.part_*` файлы с атомарным переименованием и очисткой битых передач по таймауту.
|
||||
|
||||
|
||||
* **Адаптивность к смене сетей и роумингу:**
|
||||
* Автоматическое отслеживание изменений сетевых интерфейсов и актуального IP-адреса без перезапуска.
|
||||
* Приоритезация IP-адресов: узлы сначала опрашивают адреса из своей текущей `/24` подсети.
|
||||
* Поддержка частных диапазонов RFC 1918 (`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`), Link-Local (`169.254.0.0/16`) и CGNAT / Carrier VPN (`100.64.0.0/10`).
|
||||
|
||||
|
||||
* **Энергоэффективный опрос (Smart Ping):**
|
||||
* Если устройство перестаёт отвечать, система делает до **5 попыток** опроса, после чего переводит пир в `offline` и **полностью прекращает фоновый опрос**, экономя заряд батареи и сетевой трафик.
|
||||
* Опрос возобновляется автоматически при ручном пинге, общем сканировании подсети или если пир сам пришлёт UDP-маяк/данные.
|
||||
|
||||
|
||||
* **Автономное обнаружение:**
|
||||
* Быстрое обнаружение через UDP-рассылку (порт `5354`) без зависимости от тяжелых сервисов mDNS / Avahi / Bonjour.
|
||||
* Встроенный многопоточный сканер диапазонов IPv4 (CIDR, списки, диапазоны тире).
|
||||
|
||||
|
||||
* **Интерфейс без внешних зависимостей:**
|
||||
* Web UI встроен непосредственно в бинарный файл (zero-external-assets, никаких внешних CDN и шрифтов).
|
||||
* Работает прямо на `[http://127.0.0.1:8080/](http://127.0.0.1:8080/)` без необходимости ввода одноразовых токенов.
|
||||
* Защита от межсайтовых атак: валидация заголовков `Host` и `Origin` (защита от DNS-rebinding и CSRF), строгие CSP-заголовки.
|
||||
* Разделение интерфейса на активные устройства и отдельную вкладку со всеми ранее заверенными пирами.
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Архитектура сетевого взаимодействия
|
||||
|
||||
```
|
||||
+-------------+ +-------------+
|
||||
| Node A | | Node B |
|
||||
+-------------+ +-------------+
|
||||
| |
|
||||
| --- 1. UDP Broadcast Beacon (порт 5354) ------------> |
|
||||
| |
|
||||
| <--- 2. HTTPS/TLS 1.3 Handshake (mTLS /p2p/info) ---> |
|
||||
| (Обмен именами, портами и статусом доверия) |
|
||||
| |
|
||||
| === 3. Сверка SAS-кода пользователями на экранах === |
|
||||
| |
|
||||
| --- 4. Запрос доверия: x-node-trusts: <FP_B> -------> |
|
||||
| <--- Ответ: trusts_you: true --------------------- |
|
||||
| |
|
||||
| [Взаимное доверие установлено (Status: mutual)] |
|
||||
| |
|
||||
| --- 5. POST /p2p/text (Только в ОЗУ) ---------------> |
|
||||
| --- 6. POST /p2p/media (Поток на диск) -------------> |
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Сборка и установка
|
||||
|
||||
Требуется компилятор Rust версии **1.75+** (Cargo).
|
||||
|
||||
```bash
|
||||
# Клонирование репозитория
|
||||
git clone https://github.com/your-username/ramshare_ui.git
|
||||
cd ramshare_ui
|
||||
|
||||
# Сборка оптимизированного релиза (LTO + Strip)
|
||||
cargo build --release
|
||||
|
||||
# Исполняемый файл появится по пути:
|
||||
./target/release/ramshare_ui
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### 1. Запуск узла с веб-интерфейсом
|
||||
|
||||
Запустите узел на обоих устройствах в сети:
|
||||
|
||||
```bash
|
||||
# Запуск с параметрами по умолчанию (P2P: 8443, UI: 8080)
|
||||
ramshare_ui serve
|
||||
|
||||
# Либо с явным указанием имени узла
|
||||
ramshare_ui serve --name "Laptop-Work"
|
||||
|
||||
```
|
||||
|
||||
После старта откройте в браузере: **`[http://127.0.0.1:8080](http://127.0.0.1:8080)`**.
|
||||
|
||||
### 2. Запуск в headless-режиме (сервер/терминал)
|
||||
|
||||
Если веб-интерфейс не нужен (например, на удалённом сервере или Raspberry Pi):
|
||||
|
||||
```bash
|
||||
ramshare_ui serve --no-ui --name "Home-Server"
|
||||
|
||||
```
|
||||
|
||||
*Входящие текстовые сообщения будут выводиться прямо в stdout терминала, а принятые файлы сохраняться в папку `received_media/`.*
|
||||
|
||||
---
|
||||
|
||||
## Использование через CLI
|
||||
|
||||
Все операции можно выполнять через консоль без открытия веб-интерфейса.
|
||||
|
||||
### Поиск устройств в сети
|
||||
|
||||
```bash
|
||||
# Показать устройства, которые видны прямо сейчас
|
||||
ramshare_ui peers
|
||||
|
||||
# Вывод списка в формате JSON
|
||||
ramshare_ui peers --json
|
||||
|
||||
# Сканирование текущей подсети (например, 192.168.1.1-254)
|
||||
ramshare_ui scan
|
||||
|
||||
# Сканирование произвольного диапазона
|
||||
ramshare_ui scan 192.168.1.50-100
|
||||
ramshare_ui scan 10.0.0.0/24
|
||||
|
||||
```
|
||||
|
||||
### Заверение устройства (Trust)
|
||||
|
||||
Для отправки данных устройства должны взаимно подтвердить SAS-код:
|
||||
|
||||
```bash
|
||||
# Заверить по имени, IP или префиксу ID
|
||||
ramshare_ui trust Laptop
|
||||
|
||||
# С ожиданием подтверждения с противоположной стороны (до 60 секунд)
|
||||
ramshare_ui trust 192.168.1.45 --confirm-wait 60
|
||||
|
||||
# Отозвать доверие
|
||||
ramshare_ui untrust Laptop
|
||||
|
||||
```
|
||||
|
||||
### Отправка текста и файлов
|
||||
|
||||
```bash
|
||||
# Отправить текст в оперативную память устройства
|
||||
ramshare_ui send-text Laptop "Привет! Пароль от архива: secret123"
|
||||
|
||||
# Передача содержимого через конвейер (stdin)
|
||||
cat dump.sql | ramshare_ui send-text Laptop -
|
||||
echo "токен_авторизации" | ramshare_ui send-text 192.168.1.50 -
|
||||
|
||||
# Отправка одного или нескольких файлов
|
||||
ramshare_ui send-file Laptop ./document.pdf ./archive.tar.gz
|
||||
|
||||
```
|
||||
|
||||
### Просмотр параметров узла
|
||||
|
||||
```bash
|
||||
ramshare_ui config
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Структура каталогов
|
||||
|
||||
По умолчанию приложение хранит данные рядом с бинарным файлом (или в пути, переданном через `--data-dir`):
|
||||
|
||||
```text
|
||||
.
|
||||
├── ramshare_ui # Исполняемый файл
|
||||
├── config/ # Каталог конфигурации
|
||||
│ ├── config.json # Идентичность узла (приватный ключ, сертификат, имя)
|
||||
│ └── trusted.json # База данных заверенных устройств и их адресов
|
||||
└── received_media/ # Папка принятых файлов
|
||||
├── report.pdf
|
||||
└── 1774500000_a1b2c3_photo.png
|
||||
|
||||
```
|
||||
|
||||
*Файл `config.json` генерируется автоматически при первом запуске с правами доступа `0600` (Unix).*
|
||||
|
||||
---
|
||||
|
||||
## Параметры командной строки
|
||||
|
||||
| Параметр | По умолчанию | Описание |
|
||||
| --- | --- | --- |
|
||||
| `--name <имя>` | Имя хоста ОС | Имя устройства, отображаемое другим пирам в сети |
|
||||
| `--p2p-port <порт>` | `8443` | Порт для HTTPS / mTLS соединений передачи данных |
|
||||
| `--ui-port <порт>` | `8080` | Порт веб-интерфейса (привязывается строго к `127.0.0.1`) |
|
||||
| `--ip <IPv4>` | Авто | Принудительная привязка к конкретному локальному адресу |
|
||||
| `--data-dir <путь>` | Рядом с бинарником | Базовая папка для каталогов `config/` и `received_media/` |
|
||||
| `--ping-interval <с>` | `15` | Интервал периодического опроса устройств (от `10` до `30` с) |
|
||||
| `--no-ui` | `false` | Запуск сервера без поднятия локального веб-сервера |
|
||||
| `--wait <с>` | `4` | Время прослушивания UDP-маяков при выполнении CLI-команд |
|
||||
| `--scan <диапазон>` | `None` | Автоматически сканировать указанную сеть, если пир не найден |
|
||||
| `--confirm-wait <с>` | `0` | Время ожидания подтверждения со второго устройства при `trust` |
|
||||
| `--json` | `false` | Вывод списков узлов (`peers`, `scan`) в формате JSON |
|
||||
| `-y, --yes` | `false` | Пропуск интерактивного запроса подтверждения в CLI |
|
||||
| `-h, --help` | — | Вывод справки по доступным командам |
|
||||
|
||||
---
|
||||
|
||||
## Безопасность и модель угроз
|
||||
|
||||
1. **Защита от прослушивания в открытых сетях:** Весь трафик шифруется TLS 1.3 с современными наборами шифров (AEAD). Провайдер сети или сосед по Wi-Fi не видят передаваемый контент или имена файлов.
|
||||
2. **Защита от подмены (MitM):** Если злоумышленник пытается перехватить трафик и подменить самоподписанный сертификат на лету, у пользователей **не совпадут SAS-коды сверки**. При несовпадении кодов подтверждать соединение запрещено.
|
||||
3. **Безопасность Web UI:** Сервер интерфейса слушает только `127.0.0.1`. При попытке внешнего сайта выполнить запрос в локальный браузер (CSRF / DNS-rebinding) запрос отклоняется благодаря проверке заголовков `Origin` и `Host`, а также строгой политике CSP (`frame-ancestors 'none'`, `default-src 'none'`).
|
||||
4. **Защита файловой системы:** Имена входящих файлов нормализуются с вырезанием управляющих символов и попыток выхода из каталога (`../`). Файлы с исполняемыми расширениями (`.sh`, `.exe`, `.bat` и др.) помечаются в интерфейсе как потенциально опасные и не открываются автоматически.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Whitespace-only changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Whitespace-only changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Whitespace-only changes.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
#Mon Oct 26 23:25:03 MSK 2026
|
||||
gradle.version=8.5
|
||||
Binary file not shown.
Binary file not shown.
Whitespace-only changes.
@@ -0,0 +1,74 @@
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.ramshare.app"
|
||||
compileSdk = 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.ramshare.app"
|
||||
minSdk = 26
|
||||
targetSdk = 34
|
||||
versionCode = 5
|
||||
versionName = "0.5.0"
|
||||
|
||||
ndk {
|
||||
abiFilters += listOf("arm64-v8a")
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
getByName("main") {
|
||||
jniLibs.srcDirs("src/main/jniLibs")
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
abortOnError = false
|
||||
checkReleaseBuilds = false
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
isShrinkResources = false
|
||||
signingConfig = signingConfigs.getByName("debug")
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = "1.5.10"
|
||||
}
|
||||
|
||||
packaging {
|
||||
resources {
|
||||
excludes += "/META-INF/{AL2.0,LGPL2.1}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
val composeBom = platform("androidx.compose:compose-bom:2024.02.02")
|
||||
implementation(composeBom)
|
||||
implementation("androidx.core:core-ktx:1.12.0")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
|
||||
implementation("androidx.activity:activity-compose:1.8.2")
|
||||
implementation("androidx.compose.ui:ui")
|
||||
implementation("androidx.compose.material3:material3")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
-keep class androidx.core.app.CoreComponentFactory { <init>(); }
|
||||
-keep class androidx.core.content.FileProvider { <init>(); }
|
||||
-keep class androidx.profileinstaller.ProfileInstallReceiver { <init>(); }
|
||||
-keep class androidx.startup.InitializationProvider { <init>(); }
|
||||
-keep class com.ramshare.app.MainActivity { <init>(); }
|
||||
-keep class com.ramshare.app.RamshareService { <init>(); }
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -0,0 +1,2 @@
|
||||
#- File Locator -
|
||||
listingFile=../../../outputs/apk/release/output-metadata.json
|
||||
@@ -0,0 +1,2 @@
|
||||
appMetadataVersion=1.1
|
||||
androidGradlePluginVersion=8.2.2
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.ramshare.app"
|
||||
android:versionCode="4"
|
||||
android:versionName="0.4.0" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="29"
|
||||
android:targetSdkVersion="34" />
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
|
||||
<permission
|
||||
android:name="com.ramshare.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
|
||||
android:protectionLevel="signature" />
|
||||
|
||||
<uses-permission android:name="com.ramshare.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
|
||||
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
android:appComponentFactory="androidx.core.app.CoreComponentFactory"
|
||||
android:extractNativeLibs="false"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.RamShare"
|
||||
android:usesCleartextTraffic="true" >
|
||||
<activity
|
||||
android:name="com.ramshare.app.MainActivity"
|
||||
android:configChanges="orientation|screenSize|keyboardHidden"
|
||||
android:exported="true"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<service
|
||||
android:name="com.ramshare.app.RamshareService"
|
||||
android:enabled="true"
|
||||
android:exported="false"
|
||||
android:foregroundServiceType="dataSync" />
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.ramshare.app.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true" >
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
<provider
|
||||
android:name="androidx.startup.InitializationProvider"
|
||||
android:authorities="com.ramshare.app.androidx-startup"
|
||||
android:exported="false" >
|
||||
<meta-data
|
||||
android:name="androidx.emoji2.text.EmojiCompatInitializer"
|
||||
android:value="androidx.startup" />
|
||||
<meta-data
|
||||
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
|
||||
android:value="androidx.startup" />
|
||||
<meta-data
|
||||
android:name="androidx.profileinstaller.ProfileInstallerInitializer"
|
||||
android:value="androidx.startup" />
|
||||
</provider>
|
||||
|
||||
<receiver
|
||||
android:name="androidx.profileinstaller.ProfileInstallReceiver"
|
||||
android:directBootAware="false"
|
||||
android:enabled="true"
|
||||
android:exported="true"
|
||||
android:permission="android.permission.DUMP" >
|
||||
<intent-filter>
|
||||
<action android:name="androidx.profileinstaller.action.INSTALL_PROFILE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="androidx.profileinstaller.action.SKIP_FILE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="androidx.profileinstaller.action.SAVE_PROFILE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"version": 3,
|
||||
"artifactType": {
|
||||
"type": "COMPATIBLE_SCREEN_MANIFEST",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.ramshare.app",
|
||||
"variantName": "release",
|
||||
"elements": []
|
||||
}
|
||||
BIN
Binary file not shown.
+117
@@ -0,0 +1,117 @@
|
||||
# This is a configuration file for ProGuard.
|
||||
# http://proguard.sourceforge.net/index.html#manual/usage.html
|
||||
#
|
||||
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
|
||||
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
|
||||
# will be ignored by new version of the Android plugin for Gradle.
|
||||
|
||||
# Optimizations: If you don't want to optimize, use the proguard-android.txt configuration file
|
||||
# instead of this one, which turns off the optimization flags.
|
||||
# Adding optimization introduces certain risks, since for example not all optimizations performed by
|
||||
# ProGuard works on all versions of Dalvik. The following flags turn off various optimizations
|
||||
# known to have issues, but the list may not be complete or up to date. (The "arithmetic"
|
||||
# optimization can be used if you are only targeting Android 2.0 or later.) Make sure you test
|
||||
# thoroughly if you go this route.
|
||||
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
|
||||
-optimizationpasses 5
|
||||
-allowaccessmodification
|
||||
|
||||
-dontusemixedcaseclassnames
|
||||
-dontskipnonpubliclibraryclasses
|
||||
-verbose
|
||||
|
||||
# Preserve some attributes that may be required for reflection.
|
||||
-keepattributes AnnotationDefault,
|
||||
EnclosingMethod,
|
||||
InnerClasses,
|
||||
RuntimeVisibleAnnotations,
|
||||
RuntimeVisibleParameterAnnotations,
|
||||
RuntimeVisibleTypeAnnotations,
|
||||
Signature
|
||||
|
||||
-keep public class com.google.vending.licensing.ILicensingService
|
||||
-keep public class com.android.vending.licensing.ILicensingService
|
||||
-keep public class com.google.android.vending.licensing.ILicensingService
|
||||
-dontnote com.android.vending.licensing.ILicensingService
|
||||
-dontnote com.google.vending.licensing.ILicensingService
|
||||
-dontnote com.google.android.vending.licensing.ILicensingService
|
||||
|
||||
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Keep setters in Views so that animations can still work.
|
||||
-keepclassmembers public class * extends android.view.View {
|
||||
void set*(***);
|
||||
*** get*();
|
||||
}
|
||||
|
||||
# We want to keep methods in Activity that could be used in the XML attribute onClick.
|
||||
-keepclassmembers class * extends android.app.Activity {
|
||||
public void *(android.view.View);
|
||||
}
|
||||
|
||||
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
|
||||
-keepclassmembers enum * {
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
|
||||
-keepclassmembers class * implements android.os.Parcelable {
|
||||
public static final ** CREATOR;
|
||||
}
|
||||
|
||||
# Preserve annotated Javascript interface methods.
|
||||
-keepclassmembers class * {
|
||||
@android.webkit.JavascriptInterface <methods>;
|
||||
}
|
||||
|
||||
# The support libraries contains references to newer platform versions.
|
||||
# Don't warn about those in case this app is linking against an older
|
||||
# platform version. We know about them, and they are safe.
|
||||
-dontnote android.support.**
|
||||
-dontnote androidx.**
|
||||
-dontwarn android.support.**
|
||||
-dontwarn androidx.**
|
||||
|
||||
# This class is deprecated, but remains for backward compatibility.
|
||||
-dontwarn android.util.FloatMath
|
||||
|
||||
# Understand the @Keep support annotation.
|
||||
-keep class android.support.annotation.Keep
|
||||
-keep class androidx.annotation.Keep
|
||||
|
||||
-keep @android.support.annotation.Keep class * {*;}
|
||||
-keep @androidx.annotation.Keep class * {*;}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <methods>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <methods>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <fields>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <fields>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <init>(...);
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <init>(...);
|
||||
}
|
||||
|
||||
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
|
||||
-dontnote org.apache.http.**
|
||||
-dontnote android.net.http.**
|
||||
|
||||
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
|
||||
-dontnote java.lang.invoke.**
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
# This is a configuration file for ProGuard.
|
||||
# http://proguard.sourceforge.net/index.html#manual/usage.html
|
||||
#
|
||||
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
|
||||
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
|
||||
# will be ignored by new version of the Android plugin for Gradle.
|
||||
|
||||
# Optimization is turned off by default. Dex does not like code run
|
||||
# through the ProGuard optimize steps (and performs some
|
||||
# of these optimizations on its own).
|
||||
# Note that if you want to enable optimization, you cannot just
|
||||
# include optimization flags in your own project configuration file;
|
||||
# instead you will need to point to the
|
||||
# "proguard-android-optimize.txt" file instead of this one from your
|
||||
# project.properties file.
|
||||
-dontoptimize
|
||||
|
||||
-dontusemixedcaseclassnames
|
||||
-dontskipnonpubliclibraryclasses
|
||||
-verbose
|
||||
|
||||
# Preserve some attributes that may be required for reflection.
|
||||
-keepattributes AnnotationDefault,
|
||||
EnclosingMethod,
|
||||
InnerClasses,
|
||||
RuntimeVisibleAnnotations,
|
||||
RuntimeVisibleParameterAnnotations,
|
||||
RuntimeVisibleTypeAnnotations,
|
||||
Signature
|
||||
|
||||
-keep public class com.google.vending.licensing.ILicensingService
|
||||
-keep public class com.android.vending.licensing.ILicensingService
|
||||
-keep public class com.google.android.vending.licensing.ILicensingService
|
||||
-dontnote com.android.vending.licensing.ILicensingService
|
||||
-dontnote com.google.vending.licensing.ILicensingService
|
||||
-dontnote com.google.android.vending.licensing.ILicensingService
|
||||
|
||||
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Keep setters in Views so that animations can still work.
|
||||
-keepclassmembers public class * extends android.view.View {
|
||||
void set*(***);
|
||||
*** get*();
|
||||
}
|
||||
|
||||
# We want to keep methods in Activity that could be used in the XML attribute onClick.
|
||||
-keepclassmembers class * extends android.app.Activity {
|
||||
public void *(android.view.View);
|
||||
}
|
||||
|
||||
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
|
||||
-keepclassmembers enum * {
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
|
||||
-keepclassmembers class * implements android.os.Parcelable {
|
||||
public static final ** CREATOR;
|
||||
}
|
||||
|
||||
# Preserve annotated Javascript interface methods.
|
||||
-keepclassmembers class * {
|
||||
@android.webkit.JavascriptInterface <methods>;
|
||||
}
|
||||
|
||||
# The support libraries contains references to newer platform versions.
|
||||
# Don't warn about those in case this app is linking against an older
|
||||
# platform version. We know about them, and they are safe.
|
||||
-dontnote android.support.**
|
||||
-dontnote androidx.**
|
||||
-dontwarn android.support.**
|
||||
-dontwarn androidx.**
|
||||
|
||||
# This class is deprecated, but remains for backward compatibility.
|
||||
-dontwarn android.util.FloatMath
|
||||
|
||||
# Understand the @Keep support annotation.
|
||||
-keep class android.support.annotation.Keep
|
||||
-keep class androidx.annotation.Keep
|
||||
|
||||
-keep @android.support.annotation.Keep class * {*;}
|
||||
-keep @androidx.annotation.Keep class * {*;}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <methods>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <methods>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <fields>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <fields>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <init>(...);
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <init>(...);
|
||||
}
|
||||
|
||||
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
|
||||
-dontnote org.apache.http.**
|
||||
-dontnote android.net.http.**
|
||||
|
||||
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
|
||||
-dontnote java.lang.invoke.**
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
# This is a configuration file for ProGuard.
|
||||
# http://proguard.sourceforge.net/index.html#manual/usage.html
|
||||
#
|
||||
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
|
||||
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
|
||||
# will be ignored by new version of the Android plugin for Gradle.
|
||||
|
||||
# Optimizations can be turned on and off in the 'postProcessing' DSL block.
|
||||
# The configuration below is applied if optimizations are enabled.
|
||||
# Adding optimization introduces certain risks, since for example not all optimizations performed by
|
||||
# ProGuard works on all versions of Dalvik. The following flags turn off various optimizations
|
||||
# known to have issues, but the list may not be complete or up to date. (The "arithmetic"
|
||||
# optimization can be used if you are only targeting Android 2.0 or later.) Make sure you test
|
||||
# thoroughly if you go this route.
|
||||
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
|
||||
-optimizationpasses 5
|
||||
-allowaccessmodification
|
||||
|
||||
-dontusemixedcaseclassnames
|
||||
-dontskipnonpubliclibraryclasses
|
||||
-verbose
|
||||
|
||||
# Preserve some attributes that may be required for reflection.
|
||||
-keepattributes AnnotationDefault,
|
||||
EnclosingMethod,
|
||||
InnerClasses,
|
||||
RuntimeVisibleAnnotations,
|
||||
RuntimeVisibleParameterAnnotations,
|
||||
RuntimeVisibleTypeAnnotations,
|
||||
Signature
|
||||
|
||||
-keep public class com.google.vending.licensing.ILicensingService
|
||||
-keep public class com.android.vending.licensing.ILicensingService
|
||||
-keep public class com.google.android.vending.licensing.ILicensingService
|
||||
-dontnote com.android.vending.licensing.ILicensingService
|
||||
-dontnote com.google.vending.licensing.ILicensingService
|
||||
-dontnote com.google.android.vending.licensing.ILicensingService
|
||||
|
||||
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Keep setters in Views so that animations can still work.
|
||||
-keepclassmembers public class * extends android.view.View {
|
||||
void set*(***);
|
||||
*** get*();
|
||||
}
|
||||
|
||||
# We want to keep methods in Activity that could be used in the XML attribute onClick.
|
||||
-keepclassmembers class * extends android.app.Activity {
|
||||
public void *(android.view.View);
|
||||
}
|
||||
|
||||
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
|
||||
-keepclassmembers enum * {
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
|
||||
-keepclassmembers class * implements android.os.Parcelable {
|
||||
public static final ** CREATOR;
|
||||
}
|
||||
|
||||
# Preserve annotated Javascript interface methods.
|
||||
-keepclassmembers class * {
|
||||
@android.webkit.JavascriptInterface <methods>;
|
||||
}
|
||||
|
||||
# The support libraries contains references to newer platform versions.
|
||||
# Don't warn about those in case this app is linking against an older
|
||||
# platform version. We know about them, and they are safe.
|
||||
-dontnote android.support.**
|
||||
-dontnote androidx.**
|
||||
-dontwarn android.support.**
|
||||
-dontwarn androidx.**
|
||||
|
||||
# This class is deprecated, but remains for backward compatibility.
|
||||
-dontwarn android.util.FloatMath
|
||||
|
||||
# Understand the @Keep support annotation.
|
||||
-keep class android.support.annotation.Keep
|
||||
-keep class androidx.annotation.Keep
|
||||
|
||||
-keep @android.support.annotation.Keep class * {*;}
|
||||
-keep @androidx.annotation.Keep class * {*;}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <methods>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <methods>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <fields>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <fields>;
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@android.support.annotation.Keep <init>(...);
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
@androidx.annotation.Keep <init>(...);
|
||||
}
|
||||
|
||||
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
|
||||
-dontnote org.apache.http.**
|
||||
-dontnote android.net.http.**
|
||||
|
||||
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
|
||||
-dontnote java.lang.invoke.**
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
4
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,18 @@
|
||||
<lint-module
|
||||
format="1"
|
||||
dir="/home/xuser/Projects/rust/fileshare/android/app"
|
||||
name=":app"
|
||||
type="APP"
|
||||
maven="RamShare:app:"
|
||||
agpVersion="8.2.2"
|
||||
buildFolder="build"
|
||||
bootClassPath="/home/xuser/Android/Sdk/platforms/android-34/android.jar:/home/xuser/Android/Sdk/build-tools/34.0.0/core-lambda-stubs.jar"
|
||||
javaSourceLevel="17"
|
||||
compileTarget="android-34">
|
||||
<lintOptions
|
||||
abortOnError="true"
|
||||
absolutePaths="true"
|
||||
checkReleaseBuilds="true"
|
||||
explainIssues="true"/>
|
||||
<variant name="release"/>
|
||||
</lint-module>
|
||||
+287
@@ -0,0 +1,287 @@
|
||||
<dependencies>
|
||||
<compile
|
||||
roots="androidx.activity:activity:1.8.2@aar,androidx.activity:activity-compose:1.8.2@aar,androidx.activity:activity-ktx:1.8.2@aar,androidx.lifecycle:lifecycle-livedata-core:2.7.0@aar,androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0@aar,androidx.lifecycle:lifecycle-viewmodel:2.7.0@aar,androidx.lifecycle:lifecycle-runtime-ktx:2.7.0@aar,androidx.core:core:1.12.0@aar,androidx.lifecycle:lifecycle-runtime:2.7.0@aar,androidx.lifecycle:lifecycle-common:2.7.0@jar,androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0@aar,androidx.core:core-ktx:1.12.0@aar,androidx.compose.material3:material3-android:1.2.1@aar,androidx.compose.ui:ui-util-android:1.6.3@aar,androidx.compose.ui:ui-unit-android:1.6.3@aar,androidx.compose.ui:ui-text-android:1.6.3@aar,androidx.compose.ui:ui-graphics-android:1.6.3@aar,androidx.compose.foundation:foundation-layout-android:1.6.3@aar,androidx.compose.material:material-icons-core-android:1.6.3@aar,androidx.compose.material:material-ripple-android:1.6.3@aar,androidx.compose.foundation:foundation-android:1.6.3@aar,androidx.compose.animation:animation-core-android:1.6.3@aar,androidx.compose.animation:animation-android:1.6.3@aar,androidx.compose.ui:ui-geometry-android:1.6.3@aar,androidx.compose.ui:ui-android:1.6.3@aar,androidx.compose.runtime:runtime-saveable-android:1.6.3@aar,androidx.compose.runtime:runtime-android:1.6.3@aar,org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3@jar,org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3@jar,org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20@jar,androidx.versionedparcelable:versionedparcelable:1.1.1@aar,androidx.arch.core:core-common:2.2.0@jar,androidx.savedstate:savedstate-ktx:1.2.1@aar,androidx.savedstate:savedstate:1.2.1@aar,androidx.collection:collection-jvm:1.4.0@jar,androidx.annotation:annotation-jvm:1.7.0@jar,androidx.annotation:annotation-experimental:1.4.0@aar,org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20@jar,org.jetbrains.kotlin:kotlin-stdlib:1.9.22@jar,org.jetbrains:annotations:23.0.0@jar">
|
||||
<dependency
|
||||
name="androidx.activity:activity:1.8.2@aar"
|
||||
simpleName="androidx.activity:activity"/>
|
||||
<dependency
|
||||
name="androidx.activity:activity-compose:1.8.2@aar"
|
||||
simpleName="androidx.activity:activity-compose"/>
|
||||
<dependency
|
||||
name="androidx.activity:activity-ktx:1.8.2@aar"
|
||||
simpleName="androidx.activity:activity-ktx"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-livedata-core:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-livedata-core"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-viewmodel-ktx"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-viewmodel:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-viewmodel"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-runtime-ktx:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-runtime-ktx"/>
|
||||
<dependency
|
||||
name="androidx.core:core:1.12.0@aar"
|
||||
simpleName="androidx.core:core"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-runtime:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-runtime"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-common:2.7.0@jar"
|
||||
simpleName="androidx.lifecycle:lifecycle-common"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-viewmodel-savedstate"/>
|
||||
<dependency
|
||||
name="androidx.core:core-ktx:1.12.0@aar"
|
||||
simpleName="androidx.core:core-ktx"/>
|
||||
<dependency
|
||||
name="androidx.compose.material3:material3-android:1.2.1@aar"
|
||||
simpleName="androidx.compose.material3:material3-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-util-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-util-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-unit-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-unit-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-text-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-text-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-graphics-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-graphics-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.foundation:foundation-layout-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.foundation:foundation-layout-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.material:material-icons-core-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.material:material-icons-core-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.material:material-ripple-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.material:material-ripple-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.foundation:foundation-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.foundation:foundation-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.animation:animation-core-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.animation:animation-core-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.animation:animation-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.animation:animation-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-geometry-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-geometry-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.runtime:runtime-saveable-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.runtime:runtime-saveable-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.runtime:runtime-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.runtime:runtime-android"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3@jar"
|
||||
simpleName="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3@jar"
|
||||
simpleName="org.jetbrains.kotlinx:kotlinx-coroutines-android"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20@jar"
|
||||
simpleName="org.jetbrains.kotlin:kotlin-stdlib-jdk8"/>
|
||||
<dependency
|
||||
name="androidx.versionedparcelable:versionedparcelable:1.1.1@aar"
|
||||
simpleName="androidx.versionedparcelable:versionedparcelable"/>
|
||||
<dependency
|
||||
name="androidx.arch.core:core-common:2.2.0@jar"
|
||||
simpleName="androidx.arch.core:core-common"/>
|
||||
<dependency
|
||||
name="androidx.savedstate:savedstate-ktx:1.2.1@aar"
|
||||
simpleName="androidx.savedstate:savedstate-ktx"/>
|
||||
<dependency
|
||||
name="androidx.savedstate:savedstate:1.2.1@aar"
|
||||
simpleName="androidx.savedstate:savedstate"/>
|
||||
<dependency
|
||||
name="androidx.collection:collection-jvm:1.4.0@jar"
|
||||
simpleName="androidx.collection:collection-jvm"/>
|
||||
<dependency
|
||||
name="androidx.annotation:annotation-jvm:1.7.0@jar"
|
||||
simpleName="androidx.annotation:annotation-jvm"/>
|
||||
<dependency
|
||||
name="androidx.annotation:annotation-experimental:1.4.0@aar"
|
||||
simpleName="androidx.annotation:annotation-experimental"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20@jar"
|
||||
simpleName="org.jetbrains.kotlin:kotlin-stdlib-jdk7"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib:1.9.22@jar"
|
||||
simpleName="org.jetbrains.kotlin:kotlin-stdlib"/>
|
||||
<dependency
|
||||
name="org.jetbrains:annotations:23.0.0@jar"
|
||||
simpleName="org.jetbrains:annotations"/>
|
||||
</compile>
|
||||
<package
|
||||
roots="androidx.activity:activity:1.8.2@aar,androidx.activity:activity-ktx:1.8.2@aar,androidx.compose.material3:material3-android:1.2.1@aar,androidx.activity:activity-compose:1.8.2@aar,androidx.compose.material:material-icons-core-android:1.6.3@aar,androidx.compose.material:material-ripple-android:1.6.3@aar,androidx.compose.foundation:foundation-android:1.6.3@aar,androidx.compose.animation:animation-android:1.6.3@aar,androidx.compose.foundation:foundation-layout-android:1.6.3@aar,androidx.compose.animation:animation-core-android:1.6.3@aar,androidx.compose.ui:ui-unit-android:1.6.3@aar,androidx.compose.ui:ui-geometry-android:1.6.3@aar,androidx.compose.ui:ui-util-android:1.6.3@aar,androidx.compose.ui:ui-text-android:1.6.3@aar,androidx.compose.ui:ui-graphics-android:1.6.3@aar,androidx.compose.ui:ui-android:1.6.3@aar,androidx.autofill:autofill:1.0.0@aar,androidx.emoji2:emoji2:1.3.0@aar,androidx.core:core:1.12.0@aar,androidx.core:core:1.12.0@aar,androidx.customview:customview-poolingcontainer:1.0.0@aar,androidx.lifecycle:lifecycle-process:2.7.0@aar,androidx.lifecycle:lifecycle-livedata-core:2.7.0@aar,androidx.lifecycle:lifecycle-common-java8:2.7.0@jar,androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0@aar,androidx.lifecycle:lifecycle-viewmodel:2.7.0@aar,androidx.lifecycle:lifecycle-runtime-ktx:2.7.0@aar,androidx.lifecycle:lifecycle-runtime:2.7.0@aar,androidx.savedstate:savedstate-ktx:1.2.1@aar,androidx.savedstate:savedstate:1.2.1@aar,androidx.lifecycle:lifecycle-common:2.7.0@jar,androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0@aar,androidx.core:core-ktx:1.12.0@aar,androidx.compose.runtime:runtime-saveable-android:1.6.3@aar,androidx.compose.runtime:runtime-android:1.6.3@aar,org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3@jar,org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3@jar,org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20@jar,androidx.annotation:annotation-experimental:1.4.0@aar,org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20@jar,androidx.versionedparcelable:versionedparcelable:1.1.1@aar,androidx.collection:collection-ktx:1.4.0@jar,androidx.collection:collection-jvm:1.4.0@jar,androidx.interpolator:interpolator:1.0.0@aar,androidx.arch.core:core-runtime:2.2.0@aar,androidx.arch.core:core-common:2.2.0@jar,androidx.profileinstaller:profileinstaller:1.3.0@aar,androidx.concurrent:concurrent-futures:1.1.0@jar,androidx.startup:startup-runtime:1.1.1@aar,androidx.tracing:tracing:1.0.0@aar,androidx.annotation:annotation-jvm:1.7.0@jar,org.jetbrains.kotlin:kotlin-stdlib:1.9.22@jar,org.jetbrains:annotations:23.0.0@jar,com.google.guava:listenablefuture:1.0@jar">
|
||||
<dependency
|
||||
name="androidx.activity:activity:1.8.2@aar"
|
||||
simpleName="androidx.activity:activity"/>
|
||||
<dependency
|
||||
name="androidx.activity:activity-ktx:1.8.2@aar"
|
||||
simpleName="androidx.activity:activity-ktx"/>
|
||||
<dependency
|
||||
name="androidx.compose.material3:material3-android:1.2.1@aar"
|
||||
simpleName="androidx.compose.material3:material3-android"/>
|
||||
<dependency
|
||||
name="androidx.activity:activity-compose:1.8.2@aar"
|
||||
simpleName="androidx.activity:activity-compose"/>
|
||||
<dependency
|
||||
name="androidx.compose.material:material-icons-core-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.material:material-icons-core-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.material:material-ripple-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.material:material-ripple-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.foundation:foundation-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.foundation:foundation-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.animation:animation-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.animation:animation-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.foundation:foundation-layout-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.foundation:foundation-layout-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.animation:animation-core-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.animation:animation-core-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-unit-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-unit-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-geometry-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-geometry-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-util-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-util-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-text-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-text-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-graphics-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-graphics-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.ui:ui-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.ui:ui-android"/>
|
||||
<dependency
|
||||
name="androidx.autofill:autofill:1.0.0@aar"
|
||||
simpleName="androidx.autofill:autofill"/>
|
||||
<dependency
|
||||
name="androidx.emoji2:emoji2:1.3.0@aar"
|
||||
simpleName="androidx.emoji2:emoji2"/>
|
||||
<dependency
|
||||
name="androidx.core:core:1.12.0@aar"
|
||||
simpleName="androidx.core:core"/>
|
||||
<dependency
|
||||
name="androidx.customview:customview-poolingcontainer:1.0.0@aar"
|
||||
simpleName="androidx.customview:customview-poolingcontainer"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-process:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-process"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-livedata-core:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-livedata-core"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-common-java8:2.7.0@jar"
|
||||
simpleName="androidx.lifecycle:lifecycle-common-java8"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-viewmodel-ktx"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-viewmodel:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-viewmodel"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-runtime-ktx:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-runtime-ktx"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-runtime:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-runtime"/>
|
||||
<dependency
|
||||
name="androidx.savedstate:savedstate-ktx:1.2.1@aar"
|
||||
simpleName="androidx.savedstate:savedstate-ktx"/>
|
||||
<dependency
|
||||
name="androidx.savedstate:savedstate:1.2.1@aar"
|
||||
simpleName="androidx.savedstate:savedstate"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-common:2.7.0@jar"
|
||||
simpleName="androidx.lifecycle:lifecycle-common"/>
|
||||
<dependency
|
||||
name="androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0@aar"
|
||||
simpleName="androidx.lifecycle:lifecycle-viewmodel-savedstate"/>
|
||||
<dependency
|
||||
name="androidx.core:core-ktx:1.12.0@aar"
|
||||
simpleName="androidx.core:core-ktx"/>
|
||||
<dependency
|
||||
name="androidx.compose.runtime:runtime-saveable-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.runtime:runtime-saveable-android"/>
|
||||
<dependency
|
||||
name="androidx.compose.runtime:runtime-android:1.6.3@aar"
|
||||
simpleName="androidx.compose.runtime:runtime-android"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3@jar"
|
||||
simpleName="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3@jar"
|
||||
simpleName="org.jetbrains.kotlinx:kotlinx-coroutines-android"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20@jar"
|
||||
simpleName="org.jetbrains.kotlin:kotlin-stdlib-jdk8"/>
|
||||
<dependency
|
||||
name="androidx.annotation:annotation-experimental:1.4.0@aar"
|
||||
simpleName="androidx.annotation:annotation-experimental"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20@jar"
|
||||
simpleName="org.jetbrains.kotlin:kotlin-stdlib-jdk7"/>
|
||||
<dependency
|
||||
name="androidx.versionedparcelable:versionedparcelable:1.1.1@aar"
|
||||
simpleName="androidx.versionedparcelable:versionedparcelable"/>
|
||||
<dependency
|
||||
name="androidx.collection:collection-ktx:1.4.0@jar"
|
||||
simpleName="androidx.collection:collection-ktx"/>
|
||||
<dependency
|
||||
name="androidx.collection:collection-jvm:1.4.0@jar"
|
||||
simpleName="androidx.collection:collection-jvm"/>
|
||||
<dependency
|
||||
name="androidx.interpolator:interpolator:1.0.0@aar"
|
||||
simpleName="androidx.interpolator:interpolator"/>
|
||||
<dependency
|
||||
name="androidx.arch.core:core-runtime:2.2.0@aar"
|
||||
simpleName="androidx.arch.core:core-runtime"/>
|
||||
<dependency
|
||||
name="androidx.arch.core:core-common:2.2.0@jar"
|
||||
simpleName="androidx.arch.core:core-common"/>
|
||||
<dependency
|
||||
name="androidx.profileinstaller:profileinstaller:1.3.0@aar"
|
||||
simpleName="androidx.profileinstaller:profileinstaller"/>
|
||||
<dependency
|
||||
name="androidx.concurrent:concurrent-futures:1.1.0@jar"
|
||||
simpleName="androidx.concurrent:concurrent-futures"/>
|
||||
<dependency
|
||||
name="androidx.startup:startup-runtime:1.1.1@aar"
|
||||
simpleName="androidx.startup:startup-runtime"/>
|
||||
<dependency
|
||||
name="androidx.tracing:tracing:1.0.0@aar"
|
||||
simpleName="androidx.tracing:tracing"/>
|
||||
<dependency
|
||||
name="androidx.annotation:annotation-jvm:1.7.0@jar"
|
||||
simpleName="androidx.annotation:annotation-jvm"/>
|
||||
<dependency
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib:1.9.22@jar"
|
||||
simpleName="org.jetbrains.kotlin:kotlin-stdlib"/>
|
||||
<dependency
|
||||
name="org.jetbrains:annotations:23.0.0@jar"
|
||||
simpleName="org.jetbrains:annotations"/>
|
||||
<dependency
|
||||
name="com.google.guava:listenablefuture:1.0@jar"
|
||||
simpleName="com.google.guava:listenablefuture"/>
|
||||
</package>
|
||||
</dependencies>
|
||||
+565
@@ -0,0 +1,565 @@
|
||||
<libraries>
|
||||
<library
|
||||
name="androidx.activity:activity:1.8.2@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/15683ba0f4e359741be3d1ac6ec01816/transformed/activity-1.8.2/jars/classes.jar"
|
||||
resolved="androidx.activity:activity:1.8.2"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/15683ba0f4e359741be3d1ac6ec01816/transformed/activity-1.8.2"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.activity:activity-compose:1.8.2@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/32b40584c1c897379325d96151333602/transformed/activity-compose-1.8.2/jars/classes.jar"
|
||||
resolved="androidx.activity:activity-compose:1.8.2"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/32b40584c1c897379325d96151333602/transformed/activity-compose-1.8.2"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.activity:activity-ktx:1.8.2@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/46b1e779e36541f6b63e5a9150272094/transformed/activity-ktx-1.8.2/jars/classes.jar"
|
||||
resolved="androidx.activity:activity-ktx:1.8.2"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/46b1e779e36541f6b63e5a9150272094/transformed/activity-ktx-1.8.2"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-livedata-core:2.7.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/858f42a16ccff625a3fdc18f55864700/transformed/lifecycle-livedata-core-2.7.0/jars/classes.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-livedata-core:2.7.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/858f42a16ccff625a3fdc18f55864700/transformed/lifecycle-livedata-core-2.7.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/99a0ceda7a5b31e43675d93bb3cc711b/transformed/lifecycle-viewmodel-ktx-2.7.0/jars/classes.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/99a0ceda7a5b31e43675d93bb3cc711b/transformed/lifecycle-viewmodel-ktx-2.7.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-viewmodel:2.7.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/3d04aff4df0f768f379e34d5f0b314db/transformed/lifecycle-viewmodel-2.7.0/jars/classes.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-viewmodel:2.7.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/3d04aff4df0f768f379e34d5f0b314db/transformed/lifecycle-viewmodel-2.7.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-runtime-ktx:2.7.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/e988d893da54918c8afc17e2c51734b4/transformed/lifecycle-runtime-ktx-2.7.0/jars/classes.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-runtime-ktx:2.7.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/e988d893da54918c8afc17e2c51734b4/transformed/lifecycle-runtime-ktx-2.7.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.core:core:1.12.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/440a64c1659b3784956be1ef27019da1/transformed/core-1.12.0/jars/classes.jar"
|
||||
resolved="androidx.core:core:1.12.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/440a64c1659b3784956be1ef27019da1/transformed/core-1.12.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-runtime:2.7.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/c0811ff559e841342aebad900e726f1e/transformed/lifecycle-runtime-2.7.0/jars/classes.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-runtime:2.7.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/c0811ff559e841342aebad900e726f1e/transformed/lifecycle-runtime-2.7.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-common:2.7.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.7.0/85334205d65cca70ed0109c3acbd29e22a2d9cb1/lifecycle-common-2.7.0.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-common:2.7.0"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/aca27ab5518a0c1fb21b10cba587b1e9/transformed/lifecycle-viewmodel-savedstate-2.7.0/jars/classes.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/aca27ab5518a0c1fb21b10cba587b1e9/transformed/lifecycle-viewmodel-savedstate-2.7.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.core:core-ktx:1.12.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/760c49e260287e65438a700d022f8c6b/transformed/core-ktx-1.12.0/jars/classes.jar"
|
||||
resolved="androidx.core:core-ktx:1.12.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/760c49e260287e65438a700d022f8c6b/transformed/core-ktx-1.12.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.material3:material3-android:1.2.1@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/0cdddda37359c8b723cadbd3d1c70e1d/transformed/material3-release/jars/classes.jar"
|
||||
resolved="androidx.compose.material3:material3-android:1.2.1"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/0cdddda37359c8b723cadbd3d1c70e1d/transformed/material3-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.ui:ui-util-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/9584b36d008b3a8705d72de652168f0b/transformed/ui-util-release/jars/classes.jar"
|
||||
resolved="androidx.compose.ui:ui-util-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/9584b36d008b3a8705d72de652168f0b/transformed/ui-util-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.ui:ui-unit-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/71157aaae7a56ef7c40489901eae7564/transformed/ui-unit-release/jars/classes.jar"
|
||||
resolved="androidx.compose.ui:ui-unit-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/71157aaae7a56ef7c40489901eae7564/transformed/ui-unit-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.ui:ui-text-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/aede77a64633191f8f75cfa5b01f1c91/transformed/ui-text-release/jars/classes.jar"
|
||||
resolved="androidx.compose.ui:ui-text-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/aede77a64633191f8f75cfa5b01f1c91/transformed/ui-text-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.ui:ui-graphics-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/fa0c9e185a3a487e45b239547f13b2e4/transformed/ui-graphics-release/jars/classes.jar"
|
||||
resolved="androidx.compose.ui:ui-graphics-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/fa0c9e185a3a487e45b239547f13b2e4/transformed/ui-graphics-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.foundation:foundation-layout-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/8caa6fa3d8017790e6b9b46d62382f95/transformed/foundation-layout-release/jars/classes.jar"
|
||||
resolved="androidx.compose.foundation:foundation-layout-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/8caa6fa3d8017790e6b9b46d62382f95/transformed/foundation-layout-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.material:material-icons-core-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/2412de1521026c012484eceda3a40c23/transformed/material-icons-core-release/jars/classes.jar"
|
||||
resolved="androidx.compose.material:material-icons-core-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/2412de1521026c012484eceda3a40c23/transformed/material-icons-core-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.material:material-ripple-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/3226ff1fec4aa771894bb205517fb5a2/transformed/material-ripple-release/jars/classes.jar"
|
||||
resolved="androidx.compose.material:material-ripple-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/3226ff1fec4aa771894bb205517fb5a2/transformed/material-ripple-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.foundation:foundation-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/0456fb6ed6a9f65b690f7ec19420bf84/transformed/foundation-release/jars/classes.jar"
|
||||
resolved="androidx.compose.foundation:foundation-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/0456fb6ed6a9f65b690f7ec19420bf84/transformed/foundation-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.animation:animation-core-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/8c2ae47b6f9bf69f0d9a26d6f66a7bd1/transformed/animation-core-release/jars/classes.jar"
|
||||
resolved="androidx.compose.animation:animation-core-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/8c2ae47b6f9bf69f0d9a26d6f66a7bd1/transformed/animation-core-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.animation:animation-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/b45a2c0ca76feafe3dc94bd3696e92dd/transformed/animation-release/jars/classes.jar"
|
||||
resolved="androidx.compose.animation:animation-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/b45a2c0ca76feafe3dc94bd3696e92dd/transformed/animation-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.ui:ui-geometry-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/d5dcf9d9af18c9bbbf83eeb3a3c8a49f/transformed/ui-geometry-release/jars/classes.jar"
|
||||
resolved="androidx.compose.ui:ui-geometry-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/d5dcf9d9af18c9bbbf83eeb3a3c8a49f/transformed/ui-geometry-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.ui:ui-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/165148a5632eca232c7755e5d0d74563/transformed/ui-release/jars/classes.jar"
|
||||
resolved="androidx.compose.ui:ui-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/165148a5632eca232c7755e5d0d74563/transformed/ui-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.runtime:runtime-saveable-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/2bd831ff237d218f44732f400530dfb4/transformed/runtime-saveable-release/jars/classes.jar"
|
||||
resolved="androidx.compose.runtime:runtime-saveable-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/2bd831ff237d218f44732f400530dfb4/transformed/runtime-saveable-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.compose.runtime:runtime-android:1.6.3@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/bdb73c5007ed74f0c3f0ff3edd27ccd9/transformed/runtime-release/jars/classes.jar"
|
||||
resolved="androidx.compose.runtime:runtime-android:1.6.3"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/bdb73c5007ed74f0c3f0ff3edd27ccd9/transformed/runtime-release"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.7.3/2b09627576f0989a436a00a4a54b55fa5026fb86/kotlinx-coroutines-core-jvm-1.7.3.jar"
|
||||
resolved="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3"/>
|
||||
<library
|
||||
name="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-android/1.7.3/38d9cad3a0b03a10453b56577984bdeb48edeed5/kotlinx-coroutines-android-1.7.3.jar"
|
||||
resolved="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"/>
|
||||
<library
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.8.20/73576ddf378c5b4f1f6b449fe6b119b8183fc078/kotlin-stdlib-jdk8-1.8.20.jar"
|
||||
resolved="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20"/>
|
||||
<library
|
||||
name="androidx.versionedparcelable:versionedparcelable:1.1.1@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/a80f11189515b49da8eeba05c8021fb4/transformed/versionedparcelable-1.1.1/jars/classes.jar"
|
||||
resolved="androidx.versionedparcelable:versionedparcelable:1.1.1"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/a80f11189515b49da8eeba05c8021fb4/transformed/versionedparcelable-1.1.1"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.arch.core:core-common:2.2.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.2.0/5e1b8b81dfd5f52c56a8d53b18ca759c19a301f3/core-common-2.2.0.jar"
|
||||
resolved="androidx.arch.core:core-common:2.2.0"/>
|
||||
<library
|
||||
name="androidx.savedstate:savedstate-ktx:1.2.1@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/feafe4506e00f055cc53add47b9260a0/transformed/savedstate-ktx-1.2.1/jars/classes.jar"
|
||||
resolved="androidx.savedstate:savedstate-ktx:1.2.1"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/feafe4506e00f055cc53add47b9260a0/transformed/savedstate-ktx-1.2.1"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.savedstate:savedstate:1.2.1@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/040de899e265d6c45a386fd0e5e15c65/transformed/savedstate-1.2.1/jars/classes.jar"
|
||||
resolved="androidx.savedstate:savedstate:1.2.1"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/040de899e265d6c45a386fd0e5e15c65/transformed/savedstate-1.2.1"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.collection:collection-jvm:1.4.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/androidx.collection/collection-jvm/1.4.0/e209fb7bd1183032f55a0408121c6251a81acb49/collection-jvm-1.4.0.jar"
|
||||
resolved="androidx.collection:collection-jvm:1.4.0"/>
|
||||
<library
|
||||
name="androidx.annotation:annotation-jvm:1.7.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-jvm/1.7.0/920472d40adcdef5e18708976b3e314f9a636fcd/annotation-jvm-1.7.0.jar"
|
||||
resolved="androidx.annotation:annotation-jvm:1.7.0"/>
|
||||
<library
|
||||
name="androidx.annotation:annotation-experimental:1.4.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/a667965df92ed2d22f4e1ea0c8cc5625/transformed/annotation-experimental-1.4.0/jars/classes.jar"
|
||||
resolved="androidx.annotation:annotation-experimental:1.4.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/a667965df92ed2d22f4e1ea0c8cc5625/transformed/annotation-experimental-1.4.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.8.20/3aa51faf20aae8b31e1a4bc54f8370673d7b7df4/kotlin-stdlib-jdk7-1.8.20.jar"
|
||||
resolved="org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20"/>
|
||||
<library
|
||||
name="org.jetbrains.kotlin:kotlin-stdlib:1.9.22@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.22/d6c44cd08d8f3f9bece8101216dbe6553365c6e3/kotlin-stdlib-1.9.22.jar"
|
||||
resolved="org.jetbrains.kotlin:kotlin-stdlib:1.9.22"/>
|
||||
<library
|
||||
name="org.jetbrains:annotations:23.0.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/23.0.0/8cc20c07506ec18e0834947b84a864bfc094484e/annotations-23.0.0.jar"
|
||||
resolved="org.jetbrains:annotations:23.0.0"/>
|
||||
<library
|
||||
name="androidx.autofill:autofill:1.0.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/ed13784557a114bf4e20eb69e0d51286/transformed/autofill-1.0.0/jars/classes.jar"
|
||||
resolved="androidx.autofill:autofill:1.0.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/ed13784557a114bf4e20eb69e0d51286/transformed/autofill-1.0.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.emoji2:emoji2:1.3.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/161d2e0566de4dbd90cbc47319c186f1/transformed/emoji2-1.3.0/jars/classes.jar:/home/xuser/.gradle/caches/transforms-3/161d2e0566de4dbd90cbc47319c186f1/transformed/emoji2-1.3.0/jars/libs/repackaged.jar"
|
||||
resolved="androidx.emoji2:emoji2:1.3.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/161d2e0566de4dbd90cbc47319c186f1/transformed/emoji2-1.3.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.customview:customview-poolingcontainer:1.0.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/076d8f7edaad13469d92c51ab804f23a/transformed/customview-poolingcontainer-1.0.0/jars/classes.jar"
|
||||
resolved="androidx.customview:customview-poolingcontainer:1.0.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/076d8f7edaad13469d92c51ab804f23a/transformed/customview-poolingcontainer-1.0.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-process:2.7.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/01096349b0936ba7f741e909295c017b/transformed/lifecycle-process-2.7.0/jars/classes.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-process:2.7.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/01096349b0936ba7f741e909295c017b/transformed/lifecycle-process-2.7.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.lifecycle:lifecycle-common-java8:2.7.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common-java8/2.7.0/2ad14aed781c4a73ed4dbb421966d408a0a06686/lifecycle-common-java8-2.7.0.jar"
|
||||
resolved="androidx.lifecycle:lifecycle-common-java8:2.7.0"/>
|
||||
<library
|
||||
name="androidx.collection:collection-ktx:1.4.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/androidx.collection/collection-ktx/1.4.0/2ad14aed781c4a73ed4dbb421966d408a0a06686/collection-ktx-1.4.0.jar"
|
||||
resolved="androidx.collection:collection-ktx:1.4.0"/>
|
||||
<library
|
||||
name="androidx.interpolator:interpolator:1.0.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/9c3c5103c05a0f062c4aa72715398688/transformed/interpolator-1.0.0/jars/classes.jar"
|
||||
resolved="androidx.interpolator:interpolator:1.0.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/9c3c5103c05a0f062c4aa72715398688/transformed/interpolator-1.0.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.arch.core:core-runtime:2.2.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/c420bb1138b5734b642235e867f979eb/transformed/core-runtime-2.2.0/jars/classes.jar"
|
||||
resolved="androidx.arch.core:core-runtime:2.2.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/c420bb1138b5734b642235e867f979eb/transformed/core-runtime-2.2.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.profileinstaller:profileinstaller:1.3.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/4dbbd11a74d28bd64c37893cccf57482/transformed/profileinstaller-1.3.0/jars/classes.jar"
|
||||
resolved="androidx.profileinstaller:profileinstaller:1.3.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/4dbbd11a74d28bd64c37893cccf57482/transformed/profileinstaller-1.3.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.concurrent:concurrent-futures:1.1.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/androidx.concurrent/concurrent-futures/1.1.0/50b7fb98350d5f42a4e49704b03278542293ba48/concurrent-futures-1.1.0.jar"
|
||||
resolved="androidx.concurrent:concurrent-futures:1.1.0"/>
|
||||
<library
|
||||
name="androidx.startup:startup-runtime:1.1.1@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/6ff610d5b5eece47f38e51599785a189/transformed/startup-runtime-1.1.1/jars/classes.jar"
|
||||
resolved="androidx.startup:startup-runtime:1.1.1"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/6ff610d5b5eece47f38e51599785a189/transformed/startup-runtime-1.1.1"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="androidx.tracing:tracing:1.0.0@aar"
|
||||
jars="/home/xuser/.gradle/caches/transforms-3/8ed7be0de195e25f997f37fd1157ea40/transformed/tracing-1.0.0/jars/classes.jar"
|
||||
resolved="androidx.tracing:tracing:1.0.0"
|
||||
folder="/home/xuser/.gradle/caches/transforms-3/8ed7be0de195e25f997f37fd1157ea40/transformed/tracing-1.0.0"
|
||||
manifest="AndroidManifest.xml"
|
||||
resFolder="res"
|
||||
assetsFolder="assets"
|
||||
lintJar="lint.jar"
|
||||
publicResources="public.txt"
|
||||
symbolFile="R.txt"
|
||||
externalAnnotations="annotations.zip"
|
||||
proguardRules="proguard.txt"/>
|
||||
<library
|
||||
name="com.google.guava:listenablefuture:1.0@jar"
|
||||
jars="/home/xuser/.gradle/caches/modules-2/files-2.1/com.google.guava/listenablefuture/1.0/c949a840a6acbc5268d088e47b04177bf90b3cad/listenablefuture-1.0.jar"
|
||||
resolved="com.google.guava:listenablefuture:1.0"/>
|
||||
</libraries>
|
||||
@@ -0,0 +1,32 @@
|
||||
<variant
|
||||
name="release"
|
||||
package="com.ramshare.app"
|
||||
minSdkVersion="29"
|
||||
targetSdkVersion="34"
|
||||
shrinking="true"
|
||||
mergedManifest="build/intermediates/merged_manifest/release/AndroidManifest.xml"
|
||||
proguardFiles="build/intermediates/default_proguard_files/global/proguard-android-optimize.txt-8.2.2:proguard-rules.pro"
|
||||
partialResultsDir="build/intermediates/lint_vital_partial_results/release/out"
|
||||
desugaredMethodsFiles="/home/xuser/.gradle/caches/transforms-3/9800946bb6bb399df0a0c9d35948c37c/transformed/D8BackportedDesugaredMethods.txt">
|
||||
<buildFeatures
|
||||
namespacing="REQUIRED"/>
|
||||
<sourceProviders>
|
||||
<sourceProvider
|
||||
manifests="src/main/AndroidManifest.xml"
|
||||
javaDirectories="src/main/java:src/release/java:src/main/kotlin:src/release/kotlin"
|
||||
resDirectories="src/main/res:src/release/res"
|
||||
assetsDirectories="src/main/assets:src/release/assets"/>
|
||||
</sourceProviders>
|
||||
<testSourceProviders>
|
||||
</testSourceProviders>
|
||||
<testFixturesSourceProviders>
|
||||
</testFixturesSourceProviders>
|
||||
<artifact
|
||||
classOutputs="build/intermediates/javac/release/classes:build/tmp/kotlin-classes/release:build/kotlinToolingMetadata:build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/release/R.jar"
|
||||
type="MAIN"
|
||||
applicationId="com.ramshare.app"
|
||||
generatedSourceFolders="build/generated/ap_generated_sources/release/out"
|
||||
generatedResourceFolders="build/generated/res/resValues/release"
|
||||
desugaredMethodsFiles="/home/xuser/.gradle/caches/transforms-3/9800946bb6bb399df0a0c9d35948c37c/transformed/D8BackportedDesugaredMethods.txt">
|
||||
</artifact>
|
||||
</variant>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/xuser/Projects/rust/fileshare/android/app/src/main/assets"/></dataSet><dataSet config="release" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/xuser/Projects/rust/fileshare/android/app/src/release/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/xuser/Projects/rust/fileshare/android/app/build/intermediates/shader_assets/release/out"/></dataSet></merger>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/xuser/Projects/rust/fileshare/android/app/src/main/jniLibs"><file name="arm64-v8a/libramshare_ui.so" path="/home/xuser/Projects/rust/fileshare/android/app/src/main/jniLibs/arm64-v8a/libramshare_ui.so"/></source></dataSet><dataSet config="release" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/xuser/Projects/rust/fileshare/android/app/src/release/jniLibs"/></dataSet></merger>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/xuser/Projects/rust/fileshare/android/app/src/main/shaders"/></dataSet><dataSet config="release" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/xuser/Projects/rust/fileshare/android/app/src/release/shaders"/></dataSet></merger>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#Thu Oct 29 20:14:11 MSK 2026
|
||||
base.1=/home/xuser/Projects/rust/fileshare/android/app/build/intermediates/dex/release/mergeDexRelease/classes2.dex
|
||||
path.1=classes2.dex
|
||||
base.0=/home/xuser/Projects/rust/fileshare/android/app/build/intermediates/dex/release/mergeDexRelease/classes.dex
|
||||
renamed.1=classes2.dex
|
||||
renamed.0=classes.dex
|
||||
path.0=classes.dex
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Loaded 100 of 1047 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user