Re: The development and support of PRoot and CARE are on hold.

264 views
Skip to first unread message
Message has been deleted
Message has been deleted
Message has been deleted

Corbin Champion

unread,
Apr 16, 2015, 12:49:07 PM4/16/15
to proo...@googlegroups.com
For the simpler version that uses namespaces...  I have read some conflicting info about linux namespaces, what kernel versions will work with this version of proot?  Will others be able to write extensions with similar hooks and features as currently available?  

For the current proot and future versions have you thought about pushing some of the work to other developers who use proot (myself included)?  You already have your roadmap up, but you could encourage people who want features to add them, review their work and make pull requests.  Honestly, you have been amazingly responsive and helpful in the past to me and others.  Probably more so than is necessary.  You could try to support people with less details and see if they can figure it out on their own.  

Take care,
Corbin

Patrick Cerri

unread,
Apr 17, 2015, 6:47:07 AM4/17/15
to proo...@googlegroups.com
The ONE thing I would really REALLY like to be done is the file cache.. 

This would speed up execution across the board and make proot even more fantastic than it already is.

I'm primarily an android user of proot and it just needs a few more pushes to become a proper, viable, OS replacement tool in non-rooted phones.

You seem to have a pretty good handle on it Corbin (you do the GNURoot stuff?) - any chance ? ;-p



 

--

---
You received this message because you are subscribed to the Google Groups "PRoot" group.
To unsubscribe from this group and stop receiving emails from it, send an email to proot_me+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Corbin Champion

unread,
Apr 17, 2015, 12:18:05 PM4/17/15
to proo...@googlegroups.com
What Android project are you working on?  I am working on GNURoot again.  I recently got support from my company, Teradyne, to spend some time on this (the approval for me working on it was a while ago, but just recently a project wrapped up which was blocking me spending time in that fashion.  I also have an intern for the summer and probably beyond).  I almost completely stopped working on it a year ago when my 2nd child was born.  I am going to be announcing a new and improved version of GNURoot very soon.  At that time I will be making everything fully open source, easy to build and will provide a roadmap forward.  I have been committing to a lot of thing on GNURoot that I haven't actually had time for, until now, and I need to do what I said I would do before committing to something else.  After that, assuming I do get the time necessary to do that, I would be happy to explore improvements like this, which would be mutually beneficial.  Is there a thread that already talks about file caching?    

Btw.. the new extension that I am working on (maybe or may not be in the first new release of GNURoot) does the following things...
1) emulates hard links, since these cannot be created by a non-root user on android.  Already done in the link2symlink branch.  But there are some small improvements.
2) optionally can host most of the rootfs on the sdcard. This is complicated by the fact that...
The sdcard is mounted no exec.
The sdcard is often vfat, so there are different naming rules etc.
You don't have control over any of the meta data (permissions, mtime, etc) of files on the sdcard.
You cannot put symbolic links or other non-regular file types on the sdcard.
The new extension will handle all the things listed above....really close to working now.  

Anyway, lets talk more over time.  I need a PRoot that is similar to what exists now, until I understand the new versions better.  

Corbin

Patrick Cerri

unread,
Apr 17, 2015, 12:26:19 PM4/17/15
to proo...@googlegroups.com
i'm the guy behind Terminal IDE.

https://play.google.com/store/apps/details?id=com.spartacusrex.spartacuside

Its a full Android command line os / development IDE, compiled natively, giving users vim, mc, javac, gcc etc...

I'm thinking of switching the whole thing to proot, since the Lollipop PIE restriction breaks everything (and is not backward compatible should i rebuild everything..)  

Just need it to be a little quicker.. 
  

--

ced...@reproducible.io

unread,
Apr 24, 2015, 4:55:27 AM4/24/15
to Corbin Champion, proo...@googlegroups.com
Hello Corbin,

> For the simpler version that uses namespaces... I have read some
> conflicting info about linux namespaces, what kernel versions will
> work with this version of proot? Will others be able to write
> extensions with similar hooks and features as currently available?

Kernel user namespaces requires Linux >= 3.8, but I would recommend a
version >= 3.12. For information, I wrote a tool that uses kernel
namespaces and that has a command-line interface similar to PRoot's
one [1]. This new tool is written in Perl 6 but its core [2] can be
easily ported to any other langages (C, Python, ...).

[1] https://github.com/cedric-vincent/kains
[2] https://github.com/cedric-vincent/kains/blob/master/lib/App/Kains/Core.pm6

This tool helped me to understand a couple of things:

* I don't want to use kernel namespaces in PRoot anymore because this
would introduce too many behavior differences. For instance:

- auxiliary groups have to be dropped (cf. set-gid-mapping in
Kains sources)

- files ownership appears wrong, ex:

$ ls -l /etc/fstab
-rw-r--r-- 1 root root 644 Mar 6 2013 /etc/fstab

$ proot ls -l /etc/fstab
-rw-r--r-- 1 root root 644 Mar 6 2013 /etc/fstab

$ kains ls -l /etc/fstab
-rw-r--r-- 1 65534 65534 644 Mar 6 2013 /etc/fstab

- you can't bind to a non-existant path:

$ proot -b /etc:/this/doesnt/exist echo OK
OK

$ kains -B /etc /this/doesnt/exist echo OK
Error: mount("//etc", "/this/doesnt/exist", "", 0x45000, ""): No such file or directory

There are a couple of other differences, but I'm not yet sure
whether they can be solved easily or not. Anyway, it is possible to
use ptrace inside containers (ie. with kernel namespaces).

* Instead, I'm focusing on a new intrumentation engine (still based on
ptrace) more generic and faster than PRoot. Once it is done, I'll
try to plug it the VFS I wrote some time ago [4][5][6] and create a
new PRoot (v6?) from that.

[4] https://github.com/cedric-vincent/vfs
[5] https://github.com/cedric-vincent/vfs/blob/71f923c8/main.c#L74
[5] https://github.com/cedric-vincent/vfs/blob/71f923c8/main.c#L94


> For the current proot and future versions have you thought about
> pushing some of the work to other developers who use proot (myself
> included)? You already have your roadmap up, but you could encourage
> people who want features to add them, review their work and make pull
> requests.

It would be great if you (or anyone else) could maintain PRoot v5
while I'm working on the new instrumentation engine (ie. base for
PRoot v6), since I can't do both at the same time.


> Honestly, you have been amazingly responsive and helpful in the past
> to me and others. Probably more so than is necessary. You could
> try to support people with less details and see if they can figure
> it out on their own.

Thanks for your kind words :)

Regards,
Cédric.

Sergii Pylypenko

unread,
Apr 26, 2015, 1:07:49 PM4/26/15
to proo...@googlegroups.com
Hi Cedrik and Corbin.

Could you please merge one small patch, when you'll have time?

https://github.com/pelya/cuntubuntu/blob/master/proot-android.patch

It makes proot to check env variable PROOT_TMPDIR for temp directory location, it's mainly useful on Android, where there's no system-wide temp dir, and you use your app installation directory instead.

Corbin, can I congratulate you with promotion to PRoot maintainers? Also, did you consider something like bundling XSDL app with GNURoot, for easy to use graphical environment? I can answer any questions regarding XSDL compilation and usage.

On my side there are little news, I've updated my Gimp Inkscape app installation to Debian Jessie, but did not do it yet for Debian noroot (Gimp Inkscape is just rebranded Debian noroot, with two graphics editors pre-installed). Jessie was promoted to stable Debian release today, so I would like to also update Debian app, but got too little time for that, so maybe in a week or two.

ced...@reproducible.io

unread,
Apr 26, 2015, 1:56:24 PM4/26/15
to Sergii Pylypenko, Corbin Champion, proo...@googlegroups.com
On Sun, Apr 26, 2015 at 10:07:49AM -0700, Sergii Pylypenko wrote:
> Hi Cedrik and Corbin.
>
> Could you please merge one small patch, when you'll have time?
>
> https://github.com/pelya/cuntubuntu/blob/master/proot-android.patch
>
> It makes proot to check env variable PROOT_TMPDIR for temp directory
> location, it's mainly useful on Android, where there's no
> system-wide temp dir, and you use your app installation directory
> instead.

There's a similar commit in the "next" branch:

https://github.com/proot-me/PRoot/commit/cda94e12019170f4553adac2e06510b571576d15

Feel free to pick the one you prefer.


> Corbin, can I congratulate you with promotion to PRoot maintainers?
> Also, did you consider something like bundling XSDL app with
> GNURoot, for easy to use graphical environment? I can answer any
> questions regarding XSDL compilation and usage.

I moved the official PRoot repository to a new Github organisation:

https://github.com/proot-me

Sergii & Corbin, you are both owner of this organisation (you just
have to accept the invitation). It's fine with me if PRoot is
maintained either by Corbin or by Sergii, or by both of you at the
same time (you guys rock!). I will transfer you more permissions
(mailing-list, Google + page, ...) if you agree.

Cédric.

Sergii Pylypenko

unread,
Apr 26, 2015, 3:38:11 PM4/26/15
to ced...@reproducible.io, proo...@googlegroups.com, Corbin Champion

Thanks Cedric.

I think just the committer rights would be enough for me, as I won't do any serious development (definitely not assembler stuff), I'm more like an advanced user.

Your patch looks better, so I'll just wait until that development branch will be merged to release branch.

Patrick Cerri

unread,
Apr 27, 2015, 7:33:02 AM4/27/15
to proo...@googlegroups.com, ced...@reproducible.io, Corbin Champion
:-)..

--

Corbin Champion

unread,
Apr 28, 2015, 12:32:31 PM4/28/15
to proo...@googlegroups.com
Sergii,

I will help maintain PRoot as I need it for the work I am doing.  I am still planning on incorporating XSDL with GNURoot.  I will appreciate your help when I get started on this soon.  I have been on a 1 year hiatus from most development due to time constraints.  I just started back up about 2 months ago and now have the backing of my employer, Teradyne, to spend some work time on this.  Also, they have hired an intern for this summer to help me with a few things.  Maybe I will have him work on including XSDL into GNURoot.  GNURoot itself, and some of my other apps, are going to go through a big change in the near future.  I will be able to announce that change in detail, even though it won't be quite complete, very soon. 

On a somewhat related note.  Now that I am back working on this, I noticed that my apps based on PRoot crash when launched in Android 5.1 on Nexus devices (originally reported by users).  I haven't looked into it much yet.  I am just curious if any recent Android changes have caused you any issues?

Take care,
Corbin

Corbin Champion

unread,
Apr 28, 2015, 12:53:51 PM4/28/15
to proo...@googlegroups.com, ced...@reproducible.io, corb...@gmail.com, x.pe...@gmail.com
Cédric,


> Sergii & Corbin, you are both owner of this organisation (you just
> have to accept the invitation).  It's fine with me if PRoot is
> maintained either by Corbin or by Sergii, or by both of you at the
> same time (you guys rock!).  I will transfer you more permissions
> (mailing-list, Google + page, ...) if you agree.

I have accepted.  For full disclosure to you and anyone else reading this.  Initially, and maybe always, I will only spend a little bit of time on maintaining PRoot (probably always) and will do so mostly with selfish intentions (hopefully, I will be less selfish once a couple of goals are complete).  Meaning, if it serves me well, it will get into PRoot much faster than a request coming from anyone else.  My company is supporting my work on GNURoot (and some other projects), but PRoot is a very important to that work, so I will need to and will benefit from its maintenance over time.

What type of support should I and Sergii expect from you when we have a question?

Thanks,
Corbin

Corbin Champion

unread,
Apr 29, 2015, 3:22:40 PM4/29/15
to proo...@googlegroups.com, ced...@reproducible.io, corb...@gmail.com, x.pe...@gmail.com
As far as being unable to launch into PRoot on Android 5.1... I found that the static arm proot on the proot.me site solves this problem, but I need to be able to compile with my own extensions.  What is your setup for compiling proot Cedric and Sergii?  I debootstrap a wheezy rootfs and compile in that using the standard build-essential package along with libtalloc.  Also, what changes do you make to the GNUMakefile to get a static executable?  I am trying to see what is wrong with what I am doing.  Whatever it is, it is something subtle that Android 5.1 doesn't like, while Android 5.0 is fine with it.

On a different note, I haven't been checking every version of Android, but faking out hard links was necessary on my Samsung device is Froyo, but is not needed on my Google device that is running Lollypop.  I wonder when that changed and whether Samsung had something to do with hardlinks not working or if it was the version of Android that had something to do with it.  Will have to research this one.

Right now, if you guys can tell me what your build environment is like, that would be great.
Corbin

cdc

unread,
Apr 29, 2015, 3:38:23 PM4/29/15
to Corbin Champion, proo...@googlegroups.com, ced...@reproducible.io, x.pe...@gmail.com
Hello Corbin,

On Wed, Apr 29, 2015 at 12:22:40PM -0700, Corbin Champion wrote:
> As far as being unable to launch into PRoot on Android 5.1... I found
> that the static arm proot on the proot.me site solves this problem, but
> I need to be able to compile with my own extensions. What is your
> setup for compiling proot Cedric and Sergii?

PRoot static binaries were built using:

https://github.com/proot-me/proot-static-build

The ARM one was built on x86_64 using this command (IIRC):

proot -R slackwarearm-14.1/ -b $(which cmake) -q qemu-arm make glibc-version=glibc-2.18 make proot

Where slackwarearm-14.1 was created this way (IIRC):

wget -r -np http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/slackware/
mkdir slackwarearm-14.1/
tar -C slackwarearm-14.1/ -xf ../ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/slackware/*/*.t?z
proot -R slackwarearm-14.1/ ldconfig

Regards,
Cédric.

Corbin Champion

unread,
Apr 29, 2015, 5:00:29 PM4/29/15
to proo...@googlegroups.com, pr...@6dof.xyz, corb...@gmail.com, ced...@reproducible.io, x.pe...@gmail.com
Sergii,

I am able to launch into my rootfs using PRoot on Android 5.1 if I use the one compiled by Cedric, but many programs die with a SEGV.  /bin/dash is fine (so are some simple things like ls), but /bin/bash dies.  apt-get update dies.  Even busybox's implementation of wget dies.  I just installed Debian noroot on that same device and I am just looking at a black screen, so maybe it is not working on Android 5.1.  Can you confirm if you have this working on 5.1?  I have a nexus 7 2013.

Thanks,
Corbin

Sergii Pylypenko

unread,
Apr 29, 2015, 5:50:11 PM4/29/15
to proo...@googlegroups.com, ced...@reproducible.io, Corbin Champion, pr...@6dof.xyz

I never tested Debian noroot on Android 5.1, so I suppose it will fail the same way.

Toolchain you're using to compile proot matters - see https://github.com/proot-me/PRoot/issues/74

Debian toolchain inserts some additional sections into binaries, and since all Android images are compiled on Ubuntu or Debian, Google could update their own toolchain that made Android libc incompatible.

--

---
You received this message because you are subscribed to a topic in the Google Groups "PRoot" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/proot_me/POEzgtvRQSI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to proot_me+u...@googlegroups.com.

Corbin Champion

unread,
Apr 29, 2015, 5:56:34 PM4/29/15
to proo...@googlegroups.com, corb...@gmail.com, pr...@6dof.xyz, ced...@reproducible.io
Sergii,

Thanks.  I didn't extract the loader from Cedric's build, so I was still using the one I built.  I will extract the loader from his and see if that helps.  I have also started going through the build step Cedric provided.

Corbin

Sergii Pylypenko

unread,
May 1, 2015, 12:51:28 PM5/1/15
to proo...@googlegroups.com
Hi Corbin.

One user had some moderate success running Gimp Inkscape app on Nexus 10 with Android 5.1, Gimp Inkscape has more recent proot version than Debian noroot app (v5.0.0-24-gf393b4da), here's his message:

1 Install your apk
2 Test GIMP/Inkscape and see they work
3 apt-get update
4 apt-get upgrade
5 apt-get install iceweasel
6 Try to open Iceweasel from GUI, get error saying Iceweasel cannot find my profile and it does not run.

All this was done with root terminal. I have installed other things since then and I notice a lot of permission errors in the terminal output, even for programs that work.

Corbin Champion

unread,
May 1, 2015, 6:42:23 PM5/1/15
to proo...@googlegroups.com
GNURoot Gentoo rootfs works on Android 5.1 while other's don't (wheezy, aboriginal and fedora).  I think Android 5.1, for some reason, is being particular about how things are compiled (PRoot and packages).  Android 5.1 was supposed to add checks that all executables be PIE, but Google backed that out after many issues were caused by it in the 5.1 developer preview.  Maybe there is some other check added.  Or maybe it has something to do with the kernel moving forward.  I will spend more time on this in the near future.

Corbin

Corbin Champion

unread,
May 6, 2015, 12:35:18 AM5/6/15
to proo...@googlegroups.com, x.pe...@gmail.com, ced...@reproducible.io, corb...@gmail.com, pr...@6dof.xyz
There appear to be more steps required to setup a working slackwarearm rootfs inside debian.  After untiring, but before using ldconfig, it appears you need to move files from lib/incoming to lib.  Similarly you need to mv bin/bash.new to bin/bash and make a symlink from bin/sh to bin/bash.  That get you a rootfs you can chroot or proot into.  

Then once you are in and try to do the make, you sadly get told that there is no functioning compiler.  I have have never used slackware before, so I am digging a little further on how to do the same thing as apt-get build-essential.

Corbin

Sergii Pylypenko

unread,
May 6, 2015, 5:15:12 AM5/6/15
to Corbin Champion, ced...@reproducible.io, proo...@googlegroups.com, pr...@6dof.xyz

Isn't there some easy way like debootstrap? Or at least running installation CD inside qemu?

Sergii Pylypenko

unread,
May 18, 2015, 3:13:10 PM5/18/15
to Corbin Champion, ced...@reproducible.io, proo...@googlegroups.com, pr...@6dof.xyz
Looks like issues with PRoot on Android 5.1 are device-dependent. I've tested Gimp Inkscape app, which uses PRoot 5.1 compiled by me using Debian armhf crosscompiler, on Nexus 7 2012 with official Android 5.1 system image, and it works absolutely fine, the same as with Android 5.0, including apt-get, iceweasel web browser, and Libreoffice. I did not test Eclipse.
Reply all
Reply to author
Forward
0 new messages