Closed wulungnet closed 4 months ago
May I ask why do you not use the arm64-v8a Android
version?
The wget binary for arm64-v8a Android
is specifically compiled using ndk-pkg
to work with Android, as long as you:
pass --dns-servers=<DNS-SERVERS> argument to curl like below
wget --dns-servers=8.8.8.8 https://example.com
Compiling without c-ares will disable lots of features which will render most of wget's function useless.
The aarch64 linux version of wget already compiled without c-ares, indicated there '-cares' on the show version command.
The arm64-v8 cannot run under shell on 'Terminal Emulator' app, complaining 'cannot locate symbol : fread_unlocked ' then aborting.
Oh! I see.
The Linux aarch64 version is compiled using nix, I didn't know it disabled c-ares.
I tested the android binary under a Termux shell which didn't error out like in your screenshots, hence passing the checks and getting pushed to the bucket.
I will take a look at this again tmr, and test using both Termux & Terminal Emulator Though last time I compiled wget statically for android, lots of things broke.
Also, can you check if eget : https://bin.ajam.dev/arm64_v8a_Android/eget errors out similarly, or it works as expected. you can use eget as replacement for wget until I fix this.
Please also list your Android Version/API Level
What work for me is using gocurl (can define dns and ssl/tls version) but it doesn't support -J -O so had to add -o filename option. Note : previously I use userLAnd but its broken now. I can't use termux and other full linux emulator now, my phone need upgrade, didn't have much space left, hence I use Terminal Emulator. Xiaomi Redmi Note 5 with Android 8.1.0, so API Level 27 maybe.
My android binaries target a minimum of API level 29 ( Android 10) and that's why you got the cannot locate symbol : fread_unlocked
error
I have recompiled two versions of wget, one dynamic targeting 25 (Android 7.1) & another completely static which should work as long as you specify --dns-servers
& --ca-certificate
cert: https://bin.ajam.dev/arm64_v8a_Android/wget_cacert.pem
!# Either specify directly --ca-certificate="$PATH_TO/cacert.pem" !# Or use an env Variable export SSL_CERT_FILE="$PATH_TO/cacert.pem" !# Or Define in wgetrc https://www.gnu.org/software/wget/manual/html_node/Sample-Wgetrc.html
File Metadata
#This will work, up from > API Level 25 (Android 7.1), and you don't need to use --dns-servers="8.8.8.8" wget_dynamic_api_25: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /system/bin/linker64, stripped +cares +digest -gpgme +https +ipv6 +iri +large-file -metalink -nls +ntlm +opie -psl +ssl/openssl #This will work on any API, but you will need to use --dns-servers="8.8.8.8" wget_static: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped +cares +digest -gpgme +https +ipv6 +iri +large-file -metalink -nls +ntlm +opie -psl +ssl/openssl
Thanks. Still at work. I'll try it later. I'll reopen if problem came up.
sorry, got 404 file not found error.
Does the default wget (dynamic) at https://bin.ajam.dev/arm64_v8a_Android/wget not work?
can't download the files from your server. might be permission problem. 404 object not found.
can't download the files from your server. might be permission problem. 404 object not found.
That's expected for
https://bin.ajam.dev/arm64_v8a_Android/wget_dynamic_api_25
https://bin.ajam.dev/arm64_v8a_Android/wget_static
Since I deleted them
I meant, try the https://bin.ajam.dev/arm64_v8a_Android/wget , it should work
Using some of your compiled app on my phone with 'Terminal Emulator' app. I use linux aarch64 version. When I use wget, I can't use some feature that linked to c-ares. Can you add this to your next compile batch ? Thanks.