Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 18 Jan 2015 01:44:40 -0500
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: musl and android

On Sun, Jan 18, 2015 at 01:32:37PM +0700, Рысь wrote:
> В Thu, 15 Jan 2015 16:13:22 +0700
> Рысь <lynx@...server.ru> пишет:
> 
> > Hello all!
> > 
> > Are there any efforts or even a project which aims to port musl to
> > android platform?
> > 
> > For a year I slowly had built and running a couple of C tty only
> > programs such as iptables, tcpdump and of course busybox and many
> > others including my own with musl libc linked statically. They work
> > perfectly (no much differences between an ARM phone and, for example,
> > raspberry pi SoC) but a few items I missed:
> > 
> > + Proper DNS resolving is not available
> > + Translation of android special user names is not done
> > 
> > As an advanced Linux user I know that android is not friendly enough
> > to plain C stuff and it's libc is even not finished now so I aimed to
> > port at least listed things to musl.
> > 
> > Because I am not going beyond listed items, a patch can be developed
> > just to support these inside musl-linked binaries.
> > 
> > I am first here or there is already someone who done this before?
> 
> I made a patch to implement all three things for musl on android.
> 
> I do not post it here as attachment to this mail because it normally
> should not be integrated with musl. The patch itself is here:
> http://lynxlynx.tk/prg/patches/musl-1.1.4_android.patch, notes about
> it: http://lynxlynx.tk/eng/musl_android/.
> 
> Patch is invasive enough I think and not optimized and I agree with Rich
> that it must go as a special treat. I tried however move away all
> translating code to src/android and headers to include/android.
> 
> Patch is still in it's alpha stage, and probably will be changed often.
> 
> Modifications made for musl 1.1.4.
> 
> If anyone interested to audit it - welcome!

Thanks. If nothing else, this is very informative as to how Android
does things. I noticed a couple things that could be a lot less
invasive, I think, particularly the builtin users/groups. Couldn't you
just fmemopen() a constant string inside libc in place of /etc/passwd
or /etc/group and use the existing code to parse it?

One thing I noticed -- you seem to have some memory leaks in the code
that produces the passwd/group output -- it's malloc'ing space for
names each time and I don't see anywhere it gets freed. Maybe I'm
missing something though; I just read it briefly.

Another general question I have is why can't the /system issue be
fixed? Is there any good reason Android doesn't have symlinks like
/bin->/system/bin, /etc->/system/etc, /lib->/system/lib,
/tmp->/data/tmp, etc.? The gratuitous incompatibility is really
disgusting.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.