Audio-Daten (PCM) in einem Android-Gerät abfangen

Budget N/A
Bids 4
Average Bid €350

Guten Tag,

ich habe eine konkrete, nicht einfache Anforderung für einen erfahrenen NDK-Entwickler:


Vor gut einem Jahr habe ich mir vorgenommen eine Android-App zu schreiben, mit welcher sämtliche ausgehenden Audio-Daten (PCM) von einem Android-Gerät abgefangen werden kann.
Es soll im Anschluss mit der App möglich sein die Daten z.B. an kabellose Lausprecher (AirTunes) zu streamen.

Damit ist mindestens der STREAM_MUSIC gemeint, damit man die Musik-App seiner Wahl weiterhin verwenden kann.
Das Ziel ist nicht, einen Player zu schreiben welcher z.B. MP3s abspielt und überträgt (das gibt es bereits).

Das Problem ist aber, dass es bisher nicht möglich ist an diese Audio-Daten heran zu kommen.


Meine bisherigen Versuche:

1. alle mir erdenklichen Varianten im Android-SDK (Java)

2. Implementierung/Wrappen von "/dev/snd/pcmC0D0p" (das war in ICS das Standard-Ausgabe-Gerät für "TinyAlsa", mittlerweile dynamisch!) mit Hilfe eines Loadable Kernel Modul (LKM)

3. Implementierung von "/dev/snd/pcmC0D0p" im Userspace via FUSE (in Android dabei)


4. Hooking/Interception von /system/lib/[url removed, login to view] bzw. /system/lib/[url removed, login to view] via ELF/GOT-Hook


Und bin jeweils zu folgendem Resultat gekommen:

1. keine Chance, es existiert keine API um Audio von einem anderen Gerät außer dem Mikrofon aufzuzeichen

2. Das LKM hat funktioniert, ich konnte die MMAP-Methode des ursprünglichen Gerätes wrappen und die Daten abgreifen. Problem: Extrem umständlich ohne Kernel-Kenntnisse, pcmC0D0p nicht fest, als LKM nicht publizierbar -> Kernel-basierte Lösungen werden hiermit ausgeschlossen!

3. In FUSE lassen sich leider keine Character Devices implementieren, dafür braucht es CUSE (das wiederum nicht implementiert ist in Android)

4. Das Hooken eigener Shared Libraries hat funktioniert (ELF/GOT wird in /proc/pid/maps gesucht), aber es scheint bei den System-internen nicht zu funktionieren (evtl. durch RELRO in Android 4.1 nicht mehr möglich)



Ich habe sehr gute Kenntnisse in Java und ähnlichen Programmier-Sprachen, aber C gehört leider überhaupt nicht dazu.
Es hat mich sehr viel Zeit gekostet das Kernel Modul zu implementieren - für einen mit soliden C-Kenntnissen wäre es sich leicht gewesen.


Meine Anforderungen:

- ein Code-Stück oder Programm welches den rohen PCM-Sound welcher z.B. durch Musik-Player oder Spiele erzeugt wird, bspws. nicht blockierend in eine FIFO/Pipe schreibt
- es muss mindestens STREAM_MUSIC abgefangen werden - an Mitschnitten von Telefon-Gesprächen habe ich kein Interesse
- das Programm muss auf einem Windows-Rechner mithilfe von Android-NKD (ndk-build) kompilierbar sein
- es muss auf ARM-Modellen funktionieren
- der Puffer kann klein sein -> was nicht abgeholt wird, wird verworfen
- es muss kein Resampling gemacht werden -> diesen Teil habe ich bereits implementiert
- es darf von einem gerooteten Gerät ausgegangen werden
- es darf von Android 4.2.1 (Jelly Bean) ausgegangen werden und damit das neueste NDK verwendet werden


Mein Test-Gerät ist ein gerootetes Samsung Galaxy Nexus mit Android 4.2.1.

Mein Einsatz:

Ich biete demjenigen, welcher mit oben genannte Anforderungen erfüllen kann bis zu 200€ (je nach Umfang der erbrachten Leistung).
Für eine Entwicklung welche keine Root-Rechte benötigt bis zu 250€.

Ich beanspruche keine ausschließlichen Nutzungs-Rechte, möchte jedoch nicht gezwungen sein den Quell-Code zu veröffentlichen (wie z.B. GPL).
Ich habe noch keine kommerziellen Absichten geplant, vorerst möchte ich es "erst mal hin bekommen".

Post a Project Like This

Looking to make some money?

  • Set your budget and the time frame
  • Outline your proposal
  • Get paid for your work

Bids on this Project

  • astinbenjer Profile Picture

    astinbenjer

    Dhaka,  Bangladesh

    php, .net, ajax, java, c, vb, logo, banner, photoshop expert

    C Programming, Java, Visual Basic, and .NET

  • JoomlaVogue Profile Picture

    JoomlaVogue

    ahmedabad,  India

    JoomlaVogue, a pioneer in offshore development and consultancy services specializing in Joomla award-winning Content Management System (CMS) that help build websites and other powerful online applications as per the industry & business requirements, since its inception. Our organization, offering efficient solutions, is always keen on learning & implementing new technologies in the most innovative manner, for better performance and savings. It was duly registered in December 2007. Our core strengths of working as per the client's requirements, reasonable & affordable pricing, and high quality of services offered, enables us to build a long-term relationship with all our customers. The multifarious approach towards each project completed in the past, has helped us improve our productivity & image. Our services as below. Mobile / Application development For Android & iPhone Got a great app idea but not sure what to do about it? We can help you with it. One of our many specialised services includes Mobile Application Development Service. Web development services At any scale desired tailormade solutions from a little theme shop to a high demanding corporate store dealing with large amounts of data and transactions. Offshore Software development Fixed monthly cost, no overhead! Direct control over hiring and retention of team members in Physically and technically secured environment. Our specialization From brochure websites to custom e-commerce solutions, we have it covered. We have a great understanding when it comes to designing and developing websites and mobile app. We ensure everything we build has been optimised for smartphones, tablets & desktops. We also specialise in marketing, branding and product design. Products and services If any of template websites catches your eye but to get your complete satisfaction you would like to change something on it then simply describe, what exactly you need to be changed. You can send us any examples, screenshots, movie guides etc.

    PHP, Java, Javascript, and XML

  • zigapps Profile Picture

    zigapps

    New delhi,  India

    Quality deliverables, superior project management and smiling and satisfied faces of the clients are not simply the results of our technological prowess but a culmination of years of expertise and working closely with clients to maximize their ROI with full zeal, innovation and proficiency. 1. IPhone Apps & Android Apps 2. Blackberry apps and PDA 3. Web/Windows based application programming. 4. SQL Server database programming

    Mobile Phone, iPhone, Android, and Symbian