New FrostWire 2.2.1 with libtorrent/jlibtorrent 1.2.7 is the fastest version ever

Download it now
frostwire-android-release-2.2.1-b641-plus.apk 19.3 MB

We went from jlibtorrent 1.2.3.0 onto 1.2.7.0 because we weren’t happy with how stable 1.2.4, 1.2.5 and 1.2.6 were, however the libtorrent 1.2.7 engine starts the downloads almost immediatly for decently seeded torrents and we’ve seen speeds above 7Mb/s on our testing environment.

Below the list of fixes, most coming from the libtorrent project.

FrostWire 2.2.1 build 641 – JUN/17/2020

  • jlibtorrent/libtorrent 1.2.7.0 update
  • OpenSSL 1.1.1g update
  • dev: jlibtorrent build with boost 1.73.0
  • Fixes bug getting source URL from TPB search result
  • lt: fix incorrect filename truncation at multi-byte character
  • lt: always announce listen port 1 when using a proxy
  • lt: add set_alert_fd in python binding, to supersede set_alert_notify
  • lt: fix bug in part files > 2 GiB
  • lt: add function to clear the peer list for a torrent
  • lt: fix resume data functions to save/restore more torrent flags
  • lt: limit number of concurrent HTTP announces
  • lt: fix queue position for force_rechecking a torrent that is not auto-managed
  • lt: improve rate-based choker documentation, and minor tweak
  • lt: undeprecate upnp_ignore_nonrouters (but refering to devices on our subnet)
  • lt: increase default tracker timeout
  • lt: retry failed socks5 server connections
  • lt: allow UPnP lease duration to be changed after device discovery
  • lt: fix IPv6 address change detection on Windows
  • lt: fix peer timeout logic
  • lt: simplify proxy handling. A proxy now overrides listen_interfaces
  • lt: fix issues when configured to use a non-default choking algorithm
  • lt: fix issue in reading resume data
  • lt: revert NXDOMAIN change from 1.2.4
  • lt: don’t open any listen sockets if listen_interfaces is empty or misconfigured
  • lt: fix bug in auto disk cache size logic
  • lt: fix issue with outgoing_interfaces setting, where bind() would be called twice
  • lt: add build option to disable share-mode
  • lt: support validation of HTTPS trackers
  • lt: deprecate strict super seeding mode
  • lt: make UPnP port-mapping lease duration configurable
  • lt: deprecate the bittyrant choking algorithm
  • lt: add build option to disable streaming

Image credit to Marc-Olivier Jodoin
Royalty free image via Unsplash.com

New FrostWire for Android (2.1.10) fixes Music Playback on older Android Lollypop (5.x)

Sorry for the inconvenience to Lollypop users, not sure how music playback was broken, a last minute bug must have slipped in our last release. In any case, here’s a new installer that resolves music playback issues for all Lollypop releases.


frostwire-android-release-2.1.10-b638-plus.apk 19.4 MB

Running FrostWire with OpenJDK-Jre-13 binaries

Some of our friends not running FrostWire on Ubuntu have had LOTS of issues getting the old OpenJDK 11 JRE to install with their package managers, won’t name on what Linux distribution.

When your package managers fail, you can either compile the source, or if you can get a binary distribution from a reputable signed source you can add it to your PATH and FrostWire will use the `java` binary that’s on the linux PATH.

Here’s an email we wrote to one of our most patient Linux users, Cheers Donald!

1. go to your home folder
$ cd
2. If you don’t have a “src” folder in your home, let’s create one in your home folder. I use a “src” folder for everything that I compile or download this way already compiled that’s outside the apt realm
$ mkdir src

3. Download the JDK 13 SDK (187MB), much better,faster than the 11. (the -4 switch is to use IPv4, I had issues downloading via IPv6), there’s already JDK 14, but I won’t test it until we do the next build since the unpack tool has been removed and the installer won’t work with JDK14 *sigh*.
~/src$ wget -4 https://download.java.net/openjdk/jdk13/ri/openjdk-13+33_linux-x64_bin.tar.gz
Saving to: ‘openjdk-13+33_linux-x64_bin.tar.gz’
openjdk-13+33_linux-x64_bin.ta 100%[====================================================>] 187.27M  3.90MB/s    in 50s     
2020-04-15 22:20:30 (3.72 MB/s) - ‘openjdk-13+33_linux-x64_bin.tar.gz’ saved [196363513/196363513]
4. Untar and unzip the .tar.gz file
~/src$ tar xvfz openjdk-13+33_linux-x64_bin.tar.gz

...

jdk-13/lib/server/classes.jsa
jdk-13/lib/server/libjsig.so
jdk-13/lib/server/libjvm.so
jdk-13/lib/src.zip
jdk-13/lib/tzdb.dat
jdk-13/release
5. Make sure java 13 runs
~/src$ ./jdk-13/bin/java --version
openjdk 13 2019-09-17
OpenJDK Runtime Environment (build 13+33)
OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)
6. Let’s fix your ${JAVA_HOME} env variable on your .bashrc to be now, PATH should stay the same, the beauty of JAVA_HOME variable. We don’t add the ‘/bin’ at the end because we can use JAVA_HOME/lib and other folders for other things when we’re coding.
export JAVA_HOME=${HOME}/src/jdk-13

export PATH=${JAVA_HOME}/bin:${PATH}
7. You can reload the variables of your terminal by executing the .bashrc file (or opening a new terminal window)
$ source ~/.bashrc
8. Now if you run `java –version` you should see openjdk 13. Notice how my PATH has the old Java 11, but the new one at the start is parsed first
$ echo ${PATH}
/home/gubatron/src/jdk-13/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/gubatron/src/cmake-3.16.2-Linux-x86_64:/home/gubatron/src/gradle-6.1/bin::/bin::/usr/lib/jvm/java-11-openjdk-amd64/bin:/home/gubatron/src/android-studio/bin

$ java --version

openjdk version "13" 2019-09-17
OpenJDK Runtime Environment (build 13+33)
OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)
9. Install the latest frostwire 6.8.4 (if you don’t have it get it from here) with
$ sudo dpkg -i frostwire-6.8.4.amd64.deb

Selecting previously unselected package frostwire.
(Reading database ... 381934 files and directories currently installed.)
Preparing to unpack frostwire-6.8.4.amd64.deb ...
Unpacking frostwire (6.8.4) ...
Setting up frostwire (6.8.4) ...
Unpacking libraries...
Unpacking frostwire.pack
Warning: The unpack200 tool is deprecated, and is planned for removal in a future JDK release.
Unpacking gettext-ant-tasks-0.9.7.pack
Warning: The unpack200 tool is deprecated, and is planned for removal in a future JDK release.
Unpacking jlibtorrent-1.2.3.0.pack
Warning: The unpack200 tool is deprecated, and is planned for removal in a future JDK release.
Done unpacking
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
10. Run FrostWire
$ frostwire
HOSTNAME IS gubatron-VirtualBox
Starting FrostWire...
Java exec found in PATH. Verifying...
Suitable java version found [java = 13]
Configuring environment...
Loading FrostWire:
os.name="Linux"
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.frostwire.gui.theme.ThemeMediator (file:/usr/lib/frostwire/frostwire.jar) to method java.awt.Toolkit.setDesktopProperty(java.lang.String,java.lang.Object)
WARNING: Please consider reporting this to the maintainers of com.frostwire.gui.theme.ThemeMediator
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
FrostWire version 6.8.4 build 292
OpenJDK 64-Bit Server VM Oracle Corporation 13 Oracle Corporation
Peer Fingerprint: -FW6842-
User Agent: FrostWire/6.8.4 libtorrent/1.2.3.0
Apr 16, 2020 1:38:49 PM BTEngine 
INFO: Listen succeeded on endpoint: 0.0.0.0:51302 type:TCP
...
Screen Shot 2020-04-16 at 1.39.00 PM

New JLibtorrent 1.2.5.0 bittorrent library (Windows, Mac, Linux, Android)

Develop libtorrent based apps with the joy of coding in Java, Kotlin or your favorite JRE based language. jlibtorrent is a full featured java wrapper for the most powerful and performant open source bittorrent library, libtorrent.

Download JLibtorrent 1.2.5.0 Binaries on our Github Release Page

jlibtorrent-windows-1.2.5.0.jar 4.72 MB

changelog:

1.2.5.0

  • libtorrent 1.2.5 update (0f337b9ce7a1b0fc87f48843933b1c5c4dd5a9ec)
  • New SettingsPack::dhtUploadRate(), SettingsPack::dhtUploadRate(int)
  • lt:announce port=1 instead of port=0, when there is no listen port
  • lt:fix LSD over IPv6
  • lt:support TCP_NOTSENT_LOWAT on Linux
  • lt:fix correct interface binding of local service discovery multicast
  • lt:fix issue with knowing which interfaces to announce to trackers and DHT
  • lt:undeprecate settings_pack::dht_upload_rate_limit

New FrostWire 6.8.4 for Desktop with jlibtorrent 1.2.3.0

Windows: frostwire-6.8.4.windows.github.exe  29.7 MB
Mac: frostwire-6.8.4.dmg  37.2 MB
Ubuntu/Debian:  frostwire-6.8.4.amd64.deb  4.83 MB
Red Hat/CentOS/Fedora: frostwire-6.8.4.amd64.rpm  5.83 MB
Other OS with Java 12+: frostwire-6.8.4.amd64.tar.gz  12.2 MB

A new big update is finally out to begin 2020, bittorrent engine updated with important fixes and optimizations, our whole runtime starts the year with bleeding edge java technology from the OpenJDK 13, our encrypted communications now run with the updated openssl 1.1.1d, and portions of our search got rewritten from scratch to yield nearly instant search results from some sources.

Full Changelog

frostwire (6.8.4) stable; urgency=high

  • OpenJDK 13 runtime (windows,mac)
  • Soundcloud search and downloads fixed
  • LimeTorrents search and downloads fixed
  • New jlibtorrent 1.2.3.0 update
  • jlibtorrent updated to boost 1.72.0
  • jlibtorrent upgraded openssl to 1.1.1d
  • lt:fix erroneous event=completed tracker announce when checking files
  • lt:promote errors in parsing listen_interfaces to post listen_failed_alert
  • lt:fix bug in protocol encryption/obfuscation
  • lt:fix buffer overflow in SOCKS5 UDP logic
  • lt:fix issue of rapid calls to file_priority() clobbering each other
  • lt:clear tracker errors on success
  • lt:optimize setting with unlimited unchoke slots
  • lt:fixed restoring of trackers, comment, creation date and created-by in resume data
  • lt:fix handling of torrents with too large pieces
  • lt:fixed division by zero in anti-leech choker
  • lt:fixed bug in torrent_info::swap

— FrostWire Team contact@frostwire.com Thu, 30 Jan 2019 19:30:45 -0600

Windows 7,8, and Vista support officially dropped

Screen Shot 2020-01-31 at 11.40.56 AM

From now on, the minimum required Microsoft OS recommended by FrostWire will be Windows 10.

A few weeks ago Microsoft stopped supporting Windows 7. The last years we’ve been building FrostWire for Windows on a Windows 7 instance. Starting with 6.8.4 we’ve started building FrostWire on Windows 10.

We’ve tested the app on Windows 7 and it still works and we’ll try out best to make it work in Windows 7 for as long as possible but once it becomes too hard to do this there won’t be much we’ll be able to do if we want to keep up with newer technologies and updates of third party libraries that we use to build FrostWire. We highly recommend you switch from Windows 7 to Windows 10 as soon as you can, internally we love the Windows 10 experience as software developers.

New major update for Android: FrostWire 2.1.9

Download FrostWire Plus 2.1.9 now

We’re really proud of this one, we’ve spent the last months hunkered down in the winter cold and snow to deliver a FrostWire release (after 24 iterations) that makes the app work the way it was intended to work across all Android versions.

We’ve made deep architectural changes in the way the app runs it’s backend services so that it no longer needs keeps services and resources in use, this means, longer battery life and no more annoying notifications telling you that FrostWire is running idle in the background.

Now you will only get notifications under 3 possible situations:

frostwire-2.1.9-mini-player-notification

1. You’re playing music. A Mini-Player control will appear in the notification bar so you can quickly pause, skip, stop music playback or get back to the Audio Player screen.

2. When you’re actively downloading or seeding files from the network, you’ll be able to see how many transfers are active and how much upstream or downstream bytes per second it’s sending or receiving.

3. When a download is finished, touching it will open the app and take you straight to the Transfers screen.

You can haz performance

Great care and attention was put into optimizing memory and CPU usage, FrostWire’s impact on your battery life will be as small as ever. FrostWire will throttle repeated background thread requests that were needlessly done in the past, and dozens of crashes were fixed prior to this moment.

art(3)

A new powerful jlibtorrent 1.2.3 build, along with new OpenSSL and boost libraries has been included with bleeding edge innovation in BitTorrent and encryption technology.

We’ve rebuilt the app with the latest Android libraries from Google and repairs to search engines, including our LimeTorrent’s search has been rewritten from scratch for nearly instant torrent search results.

Don’t want ads? We got you

We’ve also heard your complaints regarding the ads on the app, we no longer cover album art with an annoying ad, also we’ve made interstitial ad display less aggressive and now even if you don’t have money to pay to remove ads there’s a new option to play a rewarded video that will in return turn off all ads from the app for 30 minutes. You can keep playing the rewarded video every half hour to have an ad-free experience all day if you please. If you have a dollar to spare, you can remove ads for 30 days altogether.

In case you want to read all of the code changes here’s the full patch file depicting all of the changes.

If you enjoy this release, please consider making a donation with what you can to continue to make our work possible and keep FrostWire free.

And here’s the full changelog for this release

FrostWire 2.1.9 build 637 - MAR/05/2020
 - Album art display bug fixed
 - No more annoying 300x250 ad over album art on Music Player
 - New MagnetDL search
 - Issues with search results not being displayed fixed
 - MusicPlaybackService rewritten
 - Continuous playback issues fixed
 - Repeat mode and shuffle mode issues fixed
 - Save to Playlist issue fixed
 - New Global Sequential Downloads Torrent Setting. Disabled by default
 - Transfer details file list and peer list no longer flicker when updated
 - New jlibtorrent 1.2.3
 - libtorrent 1.2.3.0 update
 - com.google.android.material:material:1.2.0-alpha04->1.2.0-alpha05 update
 - com.google.code.gson:gson:2.8.5 -> 2.8.6 update
 - boost 1.72.0 build
 - openssl 1.1.1d
 - Android NDK 21
 - R8 code minification enabled to build .apk
 - UX: New 'Retry Download' action for failed magnet downloads
 - UX: No more annoying ever-present Android notification, only during active transfers or music playback
 - UX: Torrent search results now show how old they are
 - EngineService and MusicPlaybackService are no longer ran as foreground services following newer android guidelines
 - Considerable CPU usage reduction through thread invocation throttling frees resources for better search and download experience
 - Removed experimental haptic feedback feature
 - Multiple crashes fixed
 - Music player and notifications framework update
 - MusicPlaybackService lifecycle rewrite
 - SoundCloud search/downloads fixed
 - LimeTorrents search/downloads fixed
 - Fixes crash searching for music in My Music screens
 - Fixes issue media scanning finished download files
 - androidx browser 1.3.0-alpha01
 - applovin and mopub mediation 9.11.4
 - mopub 5.11.0 update
 - com.unity3d.ads:unity-ads:3.4.2 update
 - lt:fix erroneous event=completed tracker announce when checking files
 - lt:promote errors in parsing listen_interfaces to post listen_failed_alert
 - lt:fix bug in protocol encryption/obfuscation
 - lt:fix buffer overflow in SOCKS5 UDP logic
 - lt:fix issue of rapid calls to file_priority() clobbering each other
 - lt:clear tracker errors on success
 - lt:optimize setting with unlimited unchoke slots
 - lt:fixed restoring of trackers, comment, creation date and created-by in resume data
 - lt:fix handling of torrents with too large pieces
 - lt:fixed division by zero in anti-leech choker
 - lt:fixed bug in torrent_info::swap

 

Snowy peaks photo credit:
By Asoggetti under Public Domain
https://unsplash.com/photos/zlPhxd5OydQ

New jlibtorrent 1.2.3.0 library for bittorrent development

Develop libtorrent based apps with the joy of coding in Java, Kotlin or your favorite JRE based language.

so_innocent_by_u_master1718
jlibtorrent is a full featured java wrapper for the most powerful and performant open source bittorrent library, libtorrent.

More information at jlibtorrent.org

Binaries:

jlibtorrent-1.2.3.0.jar 671 KB (Required for all platforms, the .class files)

native shared libraries for different operating systems and CPU architectures

jlibtorrent-windows-1.2.3.0.jar 4.71 MB (x86 and x86_64 .dll files included in jar)

jlibtorrent-linux-1.2.3.0.jar 5.64 MB (x86 and x86_64 .so files included in .jar)

jlibtorrent-macosx-1.2.3.0.jar 2.24 MB (x86_64 .dylib included in .jar)

 

1.2.3.0

  • libtorrent 1.2.3 update (b5bf6c3260bd726b0181671625c007be5ad49845)
  • using android NDK r20b
  • upgraded to boost 1.72.0
  • upgraded to openssl 1.1.1d
  • swig version 4.0.1 (from 3.0.12)
  • lt:fix erroneous event=completed tracker announce when checking files
  • lt:promote errors in parsing listen_interfaces to post listen_failed_alert
  • lt:fix bug in protocol encryption/obfuscation
  • lt:fix buffer overflow in SOCKS5 UDP logic
  • lt:fix issue of rapid calls to file_priority() clobbering each other
  • lt:clear tracker errors on success
  • lt:optimize setting with unlimited unchoke slots
  • lt:fixed restoring of trackers, comment, creation date and created-by in resume data
  • lt:fix handling of torrents with too large pieces
  • lt:fixed division by zero in anti-leech choker
  • lt:fixed bug in torrent_info::swap

Photo by /u/master1718

 

New FrostWire for Android 2.1.8-build-609 🐈

frostwire-android-release-2.1.8-b609-plus.apk 17.8 MB

FrostWire 2.1.8 build 609 - DEC/17/2019 🐈
- SoundCloud search/downloads fixed 🙌
- Ads can be temporarily removed by playing a rewarded video ad 🙌
- androidx.browser:browser:1.2.0-rc01 update
- androidx.exifinterface:exifinterface:1.1.0 update
- com.applovin:applovin-sdk:9.10.5 update
- com.unity3d.ads:unity-ads:3.4.0 new
- com.android.billingclient:billing:2.1.0 update
- dev: com.android.tools.build:gradle:3.5.3
- cleanups and optimizations

New FrostWire 6.8.3 (291) with search updates

Ubuntu/Debian: frostwire-6.8.3.amd64.deb 5.63 MB

Red Hat/CentOS frostwire-6.8.3.amd64.rpm 7.17 MB
Windows and MacOS installers are larger because they include an OpenJDK12 Java Runtime Environment and our custom build of mplayer.

ELimyyAWoAUhV5p

changelog

frostwire (6.8.3) stable; urgency=high

  • Soundcloud search and downloads fixed
  • Mac: CyberGHost VPN detection false-negative bug fix
  • Mac, Windows: new mplayer 1.4.0 build with ffmpeg 4.2 and openssl-1.1.c
  • Mac: launcher fixes bug that required legacy Java to be present in the system

— FrostWire Team contact@frostwire.com Wed, 11 Dec 2019 16:09:59 -0600

Photo: “Santa’s Snitch” by @gubatron , licensed under CC-BY

Source code (tar.gz)

You can now be Ad-Free, for Free, and FrostWire Plus users can do it too with the new FrostWire for 2.1.8

frostwire-android-release-2.1.8-b607-plus.apk 17.6 MB

For the longest time we heard complains about the ads and many of our FrostWire Plus users didn’t get the screen to purchase ad-removal because it wouldn’t have worked since that app is not the same app that’s available on Google Play and all the payment systems depend on Google Play.

That is until today.

Starting with FrostWire for Android 2.1.8, basic or plus, users in or out of the Google Play Store, don’t need money to experience FrostWire Ad Free.

We’ve integrated “Rewarded Ads”, and it works as follows.

If you play a Rewarded Ad completely, you will unlock Ad-Removal for up to 30 minutes.
If you want to spend a whole hour, then you’ll have to play a second ad to unlock the next 30 minutes.

remove-ads-30-minutes-ad-free

Every user is allowed to play 2 ads per hour during the whole day. If you happen to use FrostWire non-stop for 24 hours… you can do so Ad-Free without paying now.

If you want to know how many minutes you have left until Ads start appearing again, you can always go to the Preferences screen and scroll down to the “Other Sections” settings, in there you will see a description of how many minutes you have left

remove-ads-status-on-frostwire-settings