Discussion:
[mpd-devel] TVLogic Aurender MPD obfuscation and GPL issues
Frederic Vanden Poel
2017-11-20 14:59:51 UTC
Permalink
Hello,

Last weekend I had the chance to play with an Aurender N10 device on a
trade show, and verify the claim this device is running MPD as stated on
the CA forum:

https://www.computeraudiophile.com/forums/topic/22537-why-does-aurender-require-amm-to-display-metadata-from-songs-that-are-on-nas-shares-heres-why/

I got permission from the owner to scan his N10 using my Linux laptop,
so I fired up nmap to discover the IP of the Aurender, which was
connected to his Belkin router:

[***@localhost ~]# nmap -sP 192.168.2.0/24

Starting Nmap 7.40 ( https://nmap.org ) at 2017-11-18 17:44 CET
Nmap scan report for router.belkin (192.168.2.1)
Host is up (0.00050s latency).
MAC Address: EC:1A:59:A5:C1:7A (Belkin International)
Nmap scan report for 192.168.2.2
Host is up (0.00024s latency).
MAC Address: 00:23:F2:00:44:8F (TVLogic)
Nmap scan report for 192.168.2.5
Host is up (0.010s latency).
MAC Address: 90:8D:6C:63:94:C4 (Apple)
Nmap scan report for 192.168.2.3
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 28.05 seconds

So it looks Aurender is using the MAC address range from their parent
company, TVLogic. TVLogic acquired the company behind Aurender:
https://www.computeraudiophile.com/ca/bits-and-bytes/A-Visit-To-Aurender-Headquarters-In-Seoul-Korea/

In the source code as mentioned in the link below, it seems Aurender
changed the default MPD port from 6600 to 3300, so I wanted to confirm this.

https://www.computeraudiophile.com/forums/topic/24152-aurender-auplayer-mpd-source-code/

To my surprise, port 3300 was not used on this N10, but it had several
unknown ports listening:

[***@localhost ~]# nmap -sS 192.168.2.2 -p1-65535

Starting Nmap 7.40 ( https://nmap.org ) at 2017-11-18 17:51 CET
Nmap scan report for 192.168.2.2
Host is up (0.00010s latency).
Not shown: 65527 closed ports
PORT      STATE SERVICE
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
5002/tcp  open  rfe
12019/tcp open  unknown
13019/tcp open  unknown
43676/tcp open  unknown
MAC Address: 00:23:F2:00:44:8F (TVLogic)

Nmap done: 1 IP address (1 host up) scanned in 16.03 seconds

So I tried to use mpc with the first unknown port, and I could control
his Aurender device from the mpc command line:

[***@localhost ~]# mpc -h 192.168.2.2 -p 12019 status
Music1/[Pop]/Daft Punk/Random Access Memories/01 Daft Punk - Give Life
Back to Music.wav
[paused]  #82/1130   3:59/4:35 (86%)
volume:  0%   repeat: off   random: off   single: off   consume: off
[***@localhost ~]# mpc -h 192.168.2.2 -p 12019 version
mpd version: 0.17.0

[***@localhost ~]# mpc -h 192.168.2.2 -p 12019 ls
Barbra Streisand - I Still Can See Your Face With Andrea Bocelli
Playlist 5 Stars
Playlist BLUES demo
Playlist JAZZ demo
Playlist KLASSIEK demo
Playlist POP demo

This was very amusing as Aurender customers believe Aurender invented
their own player and app. The above was tested on saturday but I did not
have much time to do everything I wanted to do, on sunday the N10 had a
new IP after a reboot, and I could control the volume, and also check
the outputs, start a track, go to next track .... which the owner asked:
can you do this or that? Yes:

[***@localhost ~]# mpc -h 192.168.2.3 -p 12019 outputs
Output 1 (Dummy) is enabled
Output 2 (USBDAC0) is enabled
[***@localhost ~]# mpc -h 192.168.2.3 -p 12019 play
Music1/[Pop]/Allan Taylor/Colour to the Moon/08 Allan Taylor - Colour to
the Moon.wav
[playing] #65/1133   0:00/0:00 (0%)
volume:100%   repeat: off   random: off   single: off   consume: off
[***@localhost ~]# mpc -h 192.168.2.3 -p 12019 volume 10
Music1/[Pop]/Allan Taylor/Colour to the Moon/08 Allan Taylor - Colour to
the Moon.wav
[playing] #65/1133   0:05/4:34 (1%)
volume: 10%   repeat: off   random: off   single: off   consume: off
[***@localhost ~]# mpc -h 192.168.2.3 -p 12019 volume 50
Music1/[Pop]/Allan Taylor/Colour to the Moon/08 Allan Taylor - Colour to
the Moon.wav
[playing] #65/1133   0:16/4:34 (5%)
volume: 50%   repeat: off   random: off   single: off   consume: off
[***@localhost ~]# mpc -h 192.168.2.3 -p 12019 next
Music1/[Pop]/2 Meter Sessies/Het Beste Van 2 Meter Sessies 1987-2009
(Disc 3)/07 Milow - Milow-The Priest.wav
[playing] #3/1108   0:00/0:00 (0%)
volume:100%   repeat: off   random: off   single: off   consume: off
[***@localhost ~]# mpc -h 192.168.2.3 -p 12019 status
Music1/[Pop]/2 Meter Sessies/Het Beste Van 2 Meter Sessies 1987-2009
(Disc 3)/07 Milow - Milow-The Priest.wav
[playing] #3/1108   0:08/7:18 (1%)
volume:100%   repeat: off   random: off   single: off   consume: off

This proves that the very old mpd 0.17.0 was distributed to this TVLogic
(Aurender) based device. The Aurender box did not come with bundled
source code, or a written offer.

Aurender modified MPD to do SSD caching and include a DSD decoder and
never gave back their patches to the community (e.g. this mailing list).
The never gave credit to MPD, but did the opposite by obfuscating the
use of MPD as they named the player "auplayer". They also tried to cover
up their tracks, as Eric Shim from Aurender removed his fork of mpd-upnp
from github, once the violation was discovered some years ago:

https://github.com/aurender/mpd-upnp

It was thanks to the above link, that the usage of MPD by Aurender was
being suggested. This page is now gone, but it was mentioned in the CA
forum, and proof can still be found here:

http://www.oss.io/p/aurender/mpd-upnp/contributors

How can such GPL violation be allowed to continue? In 2014 we used MPD
0.19 and we even posted this on the mailing list that our own product
was possible thanks to MPD, and also posted our patch for the sox
recipes which improved resampling quality. We never tried to hide the
fact that we used MPD. But some companies think they can take an open
source package and sell it as if they reinvented the wheel. It goes even
further, as Aurender is now including the proprietary MQA format into
their products, a format which is very bad for open source projects, as
MQA basically took a flac container to include non-nyquist data embedded
under the noise floor, which contains crypto DRM'ed audio. This can't be
good for music and open source:

https://opensource.com/life/16/9/whats-wrong-with-mqa
--
Best regards,

Frederic Vanden Poel

klinktbeter.be
***@klinktbeter.be

+32 473 79 36 91
Blauwe Paal 45
9230 Wetteren
Max Kellermann
2017-11-23 11:31:43 UTC
Permalink
The Aurender box did not come with bundled source code, or a written
offer.
That's obviously bad.
Aurender modified MPD to do SSD caching and include a DSD decoder and never
gave back their patches to the community (e.g. this mailing list). The never
gave credit to MPD, but did the opposite by obfuscating the use of MPD as
they named the player "auplayer".
That part is perfectly ok. Of course, it would be nice to give credit
to those who actually implemented the player, but it's not required
according to the GPL, and I would not ask anybody to give me credit.
Ok for me.

Also the part that they never "gave back" is ok. They don't need to.
With GPL, it's the "pull" model - we need to pull code from them.

Yes, I acknowledge your explanations that Aurender is hostile. They
truly appear to be. But let's concentrate on the accusations which
will hold in court.

Sure it would be nice to get pull requests from such companies, them
actively giving back to us - that's unicorns and flowers, you know.
How can such GPL violation be allowed to continue?
I have learned of this copyright violation several years ago, but I
know nobody who owns one, and Aurender was "clever" enough not to make
their firmware download URLs public.

Somebody would need to figure out how their AurenderMediaManager
obtains firmware images. Or just make somebody lend me his Aurender
product containing MPD.
It goes even further, as Aurender is now including the proprietary
MQA format into their products, a format which is very bad for open
source projects, as MQA basically took a flac container to include
non-nyquist data embedded under the noise floor, which contains
If it uses a GPL compatible decoder library, that's ok. But I doubt
such one exists, so this may open a huge hole for more legal shit for
them.

Max

Loading...