PurpleI2P / i2pd-android

i2pd for Android
BSD 3-Clause "New" or "Revised" License
196 stars 23 forks source link

Fix for #50 (very large change) #62

Closed nonlin-lin-chaos-order-etc-etal closed 5 months ago

nonlin-lin-chaos-order-etc-etal commented 11 months ago

A link: #50

nonlin-lin-chaos-order-etc-etal commented 7 months ago
<universalpunk_> о, я бинарник executable под андроидом из апк запустил
<universalpunk_> i2pd
<universalpunk_> jni теперь не будет
<universalpunk_> и должен жить вечно, как в InviZ Pro
<universalpunk_> и не убиваться системой
<universalpunk_> умаялся ковырять gradle
<universalpunk_> как обычно
<universalpunk_> теперь базовый UnixDaemon с обычным юниксовым main() запускается
<universalpunk_> на андроиде
<universalpunk_> готовлю PR
nonlin-lin-chaos-order-etc-etal commented 7 months ago

CI надо мне подправить

nonlin-lin-chaos-order-etc-etal commented 7 months ago

strip i2pd надо везде сделать

nonlin-lin-chaos-order-etc-etal commented 7 months ago
<universalpunk_> <universalpunk_> сука в андройде ps кривой
<universalpunk_> <universalpunk_> пиздец а не ps
<universalpunk_> <universalpunk_> и /proc/ анально ограниченный
<universalpunk_> <universalpunk_> как вычислить по pid i2pd запущен он щас или нет - хз
<universalpunk_> <universalpunk_> orignal, если второй процесс и2пд будет локать этот же пидфайл, у него исключение выскочит и процесс завершится?
<orignal> завершится
<orignal> потому что не сможет открыть этот файл
<universalpunk_> #ifndef ANDROID
<universalpunk_>     if (lockf(pidFH, F_TLOCK, 0) != 0)
<universalpunk_>     {
<universalpunk_>      LogPrint(eLogError, "Daemon: Could not lock pid file ", pidfile, ": ", strerror(errno));
<universalpunk_>      std::cerr << "i2pd: Could not lock pid file " << pidfile << ": " << strerror(errno) << std::endl;
<universalpunk_>      return false;
<universalpunk_>     }
<universalpunk_> #endif
<universalpunk_> orignal, нахуя там ифндев этот?
<universalpunk_> ифндеф
<universalpunk_> https://github.com/PurpleI2P/i2pd/blob/4f1cb74f755cbc3b880e5e9547a74215afaa3077/daemon/UnixDaemon.cpp#L163C1-L170C7
<orignal> думаю это ты его поставил
<universalpunk_> ща блейм гляну
<universalpunk_> unlnown542a committed on Apr 22, 2018 
<universalpunk_> un, ты напакостил?
<orignal> наверное там такой функции нет
<universalpunk_> да собиралось же с ней
<universalpunk_> un, ты помнишь нах этот ифндеф?
<universalpunk_> вот мне хочется его удалить
<universalpunk_> чтоб в андроиде тоже вылетало на локе
nonlin-lin-chaos-order-etc-etal commented 7 months ago

TBD и фантазии на тему ps|grep тоже вычистить, андроид так не умеет

nonlin-lin-chaos-order-etc-etal commented 7 months ago
<un> ты проверь на ведре пашет ли lockf
<un> если да - то убери ifndef
nonlin-lin-chaos-order-etc-etal commented 7 months ago
/ssd1/vcs_ssd1/i2pd-android/binary/jni/i2pd/daemon/i2pd.cpp:68:9: error: use of undeclared identifier 'lockf'
    if (lockf(pidFH, F_TLOCK, 0) != 0)
        ^
1 error generated.
nonlin-lin-chaos-order-etc-etal commented 7 months ago

android test failed - i2pd process gets spontaneously closed, with no relevant info in i2pd.log (with debug loglevel)

nonlin-lin-chaos-order-etc-etal commented 7 months ago

lockf via flock https://stackoverflow.com/a/24170314/529442

nonlin-lin-chaos-order-etc-etal commented 7 months ago

андроид утомил

nonlin-lin-chaos-order-etc-etal commented 7 months ago
<universalpunk_> андроид заебал
<universalpunk_> стопает и2пд for no reason
<universalpunk_> и2пд причём никаких матюков в дебаг лог не плюет
<orignal>  я не понимаю как должно работать под ведро
<universalpunk_> я тож не понимаю как быть
<universalpunk_> orignal, крч InviZible Pro пашет, пусть юзают. 
Почему пашет - хз, автор не знает толком мы разговаривали
<orignal> а что это такое?
<universalpunk_> под андройд враппер для i2pd, dnscrypt и tor
<universalpunk_> он месяцами аптайм держит
nonlin-lin-chaos-order-etc-etal commented 7 months ago
strip: Невозможно определить формат входного файла «arm64-v8a/i2pd»
strip: Невозможно определить формат входного файла «armeabi-v7a/i2pd»

Need to use the correct strip from ndk toolchain

nonlin-lin-chaos-order-etc-etal commented 7 months ago

crash when used dmesg for diagnostics:

--------- beginning of crash
04-13 15:41:30.234 13322 13322 F libc    : Fatal signal 31 (SIGSYS), code 1 (SYS_SECCOMP) in tid 13322 (dmesg), pid 13322 (dmesg)
04-13 15:41:30.376 13326 13326 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-13 15:41:30.376 13326 13326 F DEBUG   : Build fingerprint: 'Sony/H4213/H4213:9/50.2.A.3.77/357852492:user/release-keys'
04-13 15:41:30.376 13326 13326 F DEBUG   : Revision: '0'
04-13 15:41:30.376 13326 13326 F DEBUG   : ABI: 'arm64'
04-13 15:41:30.376 13326 13326 F DEBUG   : pid: 13322, tid: 13322, name: dmesg  >>> dmesg <<<
04-13 15:41:30.377 13326 13326 F DEBUG   : signal 31 (SIGSYS), code 1 (SYS_SECCOMP), fault addr --------
04-13 15:41:30.377 13326 13326 F DEBUG   : Cause: seccomp prevented call to disallowed arm64 system call 116
04-13 15:41:30.377 13326 13326 F DEBUG   :     x0  000000000000000a  x1  0000000000000000  x2  0000000000000000  x3  0000000000000000
04-13 15:41:30.377 13326 13326 F DEBUG   :     x4  0000000040100401  x5  80802000a8a8a080  x6  4523ff79241f5324  x7  7f7f7f7f7f7f7f7f
04-13 15:41:30.377 13326 13326 F DEBUG   :     x8  0000000000000074  x9  00000055750b5406  x10 0000007fc9f61068  x11 dc5425a8074948a1
04-13 15:41:30.377 13326 13326 F DEBUG   :     x12 0000007fc9f610b0  x13 000000740182d010  x14 0000000000000000  x15 aaaaaaaaaaaaaaab
04-13 15:41:30.377 13326 13326 F DEBUG   :     x16 00000055750f1af8  x17 00000074020890bc  x18 0000000000000001  x19 00000000ffffffff
04-13 15:41:30.377 13326 13326 F DEBUG   :     x20 0000000000000000  x21 000000740261a5e0  x22 00000055750f3888  x23 00000055750f7930
04-13 15:41:30.377 13326 13326 F DEBUG   :     x24 0000000000000000  x25 0000000000000000  x26 0000000000000000  x27 0000000000000000
04-13 15:41:30.377 13326 13326 F DEBUG   :     x28 0000000000000000  x29 0000007fc9f610f0
04-13 15:41:30.377 13326 13326 F DEBUG   :     sp  0000007fc9f610f0  lr  0000005575087484  pc  00000074020890c4
04-13 15:41:30.380 13326 13326 F DEBUG   : 
04-13 15:41:30.380 13326 13326 F DEBUG   : backtrace:
04-13 15:41:30.380 13326 13326 F DEBUG   :     #00 pc 000000000007d0c4  /system/lib64/libc.so (klogctl+8)
04-13 15:41:30.380 13326 13326 F DEBUG   :     #01 pc 0000000000015480  /system/bin/toybox (xklogctl+8)
04-13 15:41:30.380 13326 13326 F DEBUG   :     #02 pc 0000000000015184  /system/bin/toybox (dmesg_main+400)
04-13 15:41:30.381 13326 13326 F DEBUG   :     #03 pc 0000000000014798  /system/bin/toybox (toy_exec+104)
04-13 15:41:30.381 13326 13326 F DEBUG   :     #04 pc 00000000000143e4  /system/bin/toybox (toybox_main+48)
04-13 15:41:30.381 13326 13326 F DEBUG   :     #05 pc 0000000000014850  /system/bin/toybox (main+120)
04-13 15:41:30.381 13326 13326 F DEBUG   :     #06 pc 00000000000ca3fc  /system/lib64/libc.so (__libc_init+88)

говорят это от юзера не зависит - сискаллы в черном списке вопще могут быть

seccomp сорцы тут https://github.com/aosp-mirror/platform_bionic/tree/master/libc

nonlin-lin-chaos-order-etc-etal commented 7 months ago

"ты можешь запустить процесс а stdout/stderr в файл перенаправить - и прочитать что пишет."

nonlin-lin-chaos-order-etc-etal commented 7 months ago
04-16 05:17:03.992 18502 18527 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 18527 (Transports), pid 18502 (libi2pd.so)
04-16 05:17:04.148  2074  2074 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-16 05:17:04.149  2074  2074 F DEBUG   : Build fingerprint: 'Sony/H4213/H4213:9/50.2.A.3.77/357852492:user/release-keys'
04-16 05:17:04.149  2074  2074 F DEBUG   : Revision: '0'
04-16 05:17:04.149  2074  2074 F DEBUG   : ABI: 'arm64'
04-16 05:17:04.149  2074  2074 F DEBUG   : pid: 18502, tid: 18527, name: Transports  >>> /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so <<<
04-16 05:17:04.149  2074  2074 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
04-16 05:17:04.149  2074  2074 F DEBUG   : Cause: null pointer dereference
04-16 05:17:04.149  2074  2074 F DEBUG   :     x0  0000007742f49180  x1  0000007743338f80  x2  0000007742c2c208  x3  00000061c84988c0
04-16 05:17:04.149  2074  2074 F DEBUG   :     x4  0000007742a02d40  x5  0000007742a02d0b  x6  00000000000000e3  x7  00000000000000ad
04-16 05:17:04.149  2074  2074 F DEBUG   :     x8  0000007742f49080  x9  0000007742e17100  x10 0000000000000000  x11 0000000000000000
04-16 05:17:04.149  2074  2074 F DEBUG   :     x12 0000000000000018  x13 00000000661d994f  x14 003a5e5151d2fe15  x15 0000b4cbc5d42d1e
04-16 05:17:04.149  2074  2074 F DEBUG   :     x16 0000007743c1cbd0  x17 0000007743b9f798  x18 0000000000000010  x19 00000077414a2a08
04-16 05:17:04.149  2074  2074 F DEBUG   :     x20 0000007742c2c208  x21 0000007743338f80  x22 0000007742e17100  x23 0000007742e17100
04-16 05:17:04.149  2074  2074 F DEBUG   :     x24 00000077436bb218  x25 0000007742a03588  x26 00000077416be0b8  x27 00000061c7f063ac
04-16 05:17:04.149  2074  2074 F DEBUG   :     x28 00000061c7ee5be9  x29 0000007742a02e00
04-16 05:17:04.149  2074  2074 F DEBUG   :     sp  0000007742a02e00  lr  00000061c8030604  pc  00000061c7ff6cfc
04-16 05:17:04.182  2074  2074 F DEBUG   : 
04-16 05:17:04.182  2074  2074 F DEBUG   : backtrace:
04-16 05:17:04.182  2074  2074 F DEBUG   :     #00 pc 0000000000202cfc  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.182  2074  2074 F DEBUG   :     #01 pc 000000000023c600  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.182  2074  2074 F DEBUG   :     #02 pc 00000000002a0c98  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.182  2074  2074 F DEBUG   :     #03 pc 00000000002a1cfc  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.182  2074  2074 F DEBUG   :     #04 pc 00000000002a487c  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.183  2074  2074 F DEBUG   :     #05 pc 0000000000375038  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.183  2074  2074 F DEBUG   :     #06 pc 000000000037e6b4  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.183  2074  2074 F DEBUG   :     #07 pc 0000000000236a6c  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.183  2074  2074 F DEBUG   :     #08 pc 00000000002365e8  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.183  2074  2074 F DEBUG   :     #09 pc 0000000000371b3c  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.183  2074  2074 F DEBUG   :     #10 pc 000000000038008c  /data/app/org.purplei2p.i2pd-6Kla4bAQQcmeacpwoSbVJA==/lib/arm64/libi2pd.so
04-16 05:17:04.183  2074  2074 F DEBUG   :     #11 pc 0000000000091fac  /system/lib64/libc.so (__pthread_start(void*)+36)
04-16 05:17:04.183  2074  2074 F DEBUG   :     #12 pc 0000000000023968  /system/lib64/libc.so (__start_thread+68)
nonlin-lin-chaos-order-etc-etal commented 7 months ago

investigate gdb_server stuff

nonlin-lin-chaos-order-etc-etal commented 7 months ago

щас сначала доделаю, а потом заберите реп https://github.com/nonlin-lin-chaos-order-etc-etal/i2pd-android-libs в PurpleI2P org - этот коммент будет в pr62 @r4sas

выношу либы в соседний реп чтоб андроид студия бусты всякие не индексила по 2 часа

nonlin-lin-chaos-order-etc-etal commented 7 months ago

чёт разжирел мой пулл реквест, надо всё заново делать, будет ветка feat50take2

nonlin-lin-chaos-order-etc-etal commented 5 months ago

to be redone as feat50take4