[2015/03/07] BotBrew: *nix tools for Android - Nook Color Android Development

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The remainder of this post contains historical information. Please read the update. Thank you.
__________________
​ BotBrew is
a repository of *nix software (such as bzip2, curl, openssl, python, and ruby) for ARM-based Android
a package manager powered by Opkg, a lightweight program that feels like dpkg+apt
a service manager powered by runit
a build system for anyone looking to build and package his/her own scripts and programs
Thanks: mateorod and xela92 for testing the heck out of this thing; racks11479 for delicious artwork; you for using this project, reporting bugs, and making it better
If I missed anyone, let me know!
Warning: BotBrew has been used successfully on a variety of rooted ARM devices, and is developed using a Nook Color, but you should still make backups before trying, just in case.
Install BotBrew
[ Google Play | BotBrew.apk | BotBrew.debug.apk ]
Read the Quick-Start Guide & Manual
[ botbrew.com/manual.htm ]​
Click to expand...
Click to collapse
Alternative (Command Line) Installation
If the BotBrew app fails to bootstrap, you might be able to bootstrap using the command line:
Code:
wget http://repo.botbrew.com/anise/bootstrap/install.sh -O- | su
Such a setup should be compatible with the app, though it may not work perfectly. The manual has more tips for command line usage.
Enjoy!
Install BotBrew+1
The next release of BotBrew, named basil, will be powered by Debian's Dpkg and Apt. This is a non-trivial update, so the app is being rewritten from scratch. I've posted some usage instructions, in case you are adventurous enough to try. Thanks! This app may be used in parallel with the current-stable BotBrew release, without conflict.
[ Google Play | GitHub ]​
Click to expand...
Click to collapse
Changes
5/20: the next release of BotBrew is in development!
4/20: improve support for long package names; fix list of repairable packages
4/16: new UI for devices with wide-enough screens; experimental support for moving to /sd-ext
4/9: Google Play release of BotBrew "anise"; previous release is now BotBrew.oldstable.apk; lots of updates since oldstable
3/16: lots of installer and filesystem changes for cross-device compatibility, work started on multiuser support
3/10: installers now depend on botbrew-core, which will (in the future) pull in basic packages that everyone should have
3/4: swipe left and right to see all/installed/upgradable packages
3/3: added ability to start installation of *.opk files from file managers
3/2: added ability to start installation from browser after clicking *.opk link
3/1: fixed some BotBrew.apk bugs; updated command line installer
2/27: reworked BotBrew.apk; new packages in stable repo
2/18: testing repository now open; new opkg -- please read before upgrading
2/16: make BotBrew.apk display latest versions in the package list
2/2: bugfix release of BotBrew.apk

Well, I now have python, ncurses, openssl and a couple other packages running on my nook. I have indeed printed 42, and even wrote my own (proprietary) code to advance the project some that printed 43. Advanced scripting.
But seriously, this is sweet. I am all over anything that opens up this device. I don't think I have ever bought a piece of hardware that has so outstripped my expectations.
Thanks for the program. I will report back after I play with it some.

Wow, what a great idea! Looks like my Nook will be used for a bit more than entertaining my family with casual games; nice to have some productivity back I was thinking about installing Ubuntu on my Nook for this sort of thing, but there's no need anymore.
It would be great to get this a bit more recognition, and getting more useful things such as gcc or even the GNU toolchain installable with this package manager. Might put a link in my signature, if you don't mind.
Now to look for an affordable lightweight bluetooth keyboard...

You read my mind I got binutils, gmp, mpfr, and mpc working earlier today... and gcc is in the pipeline. My main reason for wanting a native gcc is that some software (such as python) do not like to be cross-compiled at all. I'm having a bit of trouble with gcc, but I'll keep hacking away at it.
Please, go right ahead and share this thread; this is a young project but I think it could be more useful. On the one hand, there's a whole lot of free software (such as the GNU stuff) just asking to be built and packaged; on the other hand, many people who hang out around here have a few scripts/programs of our own to distribute.
In case you're interested, here's where all the packages live. There are actually two more ways to install (remote and local) stuff using Opkg:
Code:
opkg install http://host/path/to/package.opk
Code:
opkg install path/to/package.opk

Very nice project !!!
I have python 2.7 standalone on android.
One problem, in python commandline i can't import hashlib, i can fix this?
Thanks.

So, I just got a working build of GCC+binutils and pushed the packages to the stable repo. Please keep in mind that for now, stable means I tested it a couple of times and it works, so be careful and use at your own risk.
To install gcc and binutils, make sure you have about 160mb of storage free in /system and run:
Code:
opkg update
opkg install gcc-4.6
That's about 70mb's worth of downloads, and my server's underpowered, so please wait patiently and retry if it fails (failure when receiving data from the peer). When that's done, you might want to compile something:
Code:
cd /cache
wget http://dl.dropbox.com/u/1213413/htdocs/agcc/hello.c
gcc -o hello hello.c
And if that completed successfully, you should have a new executable, which you could run for a classic greeting. I was not able to get the C++ libraries compiled, but C code should compile alright.
@Fritos2: I've been trying to fix this issue, but I'm not confident that I could do it without help. Python (and Perl) are very resistant to cross-compilation, and even after I hammered it into submission, some modules do not work. Another module that I'd really like is readline, which gives you enhanced editing capabilities in the interactive interpreter. I'm a Pythonista, but I've got to say: Ruby does cross-building right. Even sqlite3 supports readline. I suspect that Python might have to be compiled natively, and this is where native gcc comes in.
I'd appreciate any help, of course

I'll follow this project with great interesting.

Hey guys, there have been a few updates:
opkg's lock file has been moved to /cache/opkg/lock so there's no need for a read-write /system just to query packages
gnupg has been packaged, for those who like to sign their stuff
python... well, I'm still working on it >.<
Anyway, I thought I'd do something to make this project more accessible. I don't have any apk's for you yet, but I've attached a screenshot of the work-in-progress

I am very impressed with the progress. I am a super-noob but have enjoyed toying with the packages from your opening post. I haven't had time to do much but explore, but this sure does open up a whole new world for the nook, from an accessability stand point alone. I wouldn't be suorised to see an uptick in interest as some if the more experienced coders are able to turn their attention from cm9.
I will probably install those latest packages sometime this weekend. Just real strong stuff.
Edit. Ok, o I just went ahead and did it now. Obviously, I couldn't get it to work. Have downloaded the FCC and got the hello file fro the dropbox. I ran the gcc -o hello hello.c and was returned a hashtag only. If I ran gcc hello, it outputted the hello program code. I tried several things basically willynilly until I got tired of getting a fatal error and having the build canceled.
If this is too basic and will clog the thread, I would happily accept a pm with a good tutorial. Thanks a bunch.

The problem with python maybe relationed with python-devel package?
Sorry is the question is stupid, i'm so noob.

The Python build process has two steps: first, you get the main Python executable, and then you get the modules. The executable built in the first step is used to test the modules in the second step. So, naively cross-compiling Python would result in most modules not passing the test (because you cannot actually run the Python you just built), and these modules would be removed. As it turns out, you could patch the build scripts to run the tests using a host-native Python, but even then, there are a few modules with particular requirements that still don't pass. This is where we are now, but I think we could do better.

Okay, so more progress: BotBrew.apk is out in the wild! I decided to put it off until I got some basic functionality working. What is this?
a basic GUI for package management
lists all packages
searches for packages by name
shows package information
installs/upgrades/removes packages
manages list of repositories
I've only really tested it with CM7, but it works on the latest CM9 previews as well.
Screenshots
​
mateorod said:
Edit. Ok, o I just went ahead and did it now. Obviously, I couldn't get it to work. Have downloaded the FCC and got the hello file fro the dropbox. I ran the gcc -o hello hello.c and was returned a hashtag only. If I ran gcc hello, it outputted the hello program code. I tried several things basically willynilly until I got tired of getting a fatal error and having the build canceled.
Click to expand...
Click to collapse
No worries. If gcc did not complain and dropped you back in the shell, this means it's done! Just list the directory to find a new file named hello, which you could run:
Code:
# gcc -o hello hello.c
# ls
backup download hello.c opkg
dalvik-cache hello lost+found recovery
# ./hello
hello world
#
I hope this helps!

Sorry if this sounds ignorant but is there any future usage aside from being a very interesting project? Will we be able to distribute open source projects / software specifically made for Android devices like on common Linux distributions?

BobbyBest said:
Sorry if this sounds ignorant but is there any future usage aside from being a very interesting project? Will we be able to distribute open source projects / software specifically made for Android devices like on common Linux distributions?
Click to expand...
Click to collapse
A valid question, I think. BotBrew has the potential of becoming a Cydia of sorts, distributing system extensions, interface customizations, and other useful software for rooted Android devices. Android has a vibrant community of programmers and scripters, but there isn't any standard way to manage software that are not apps. And there's a large body of open source Linux software that might work well on Android. Of course, BotBrew is also able to handle root apps that live in /system/app (i.e. gapps); for user-level apps, the various app stores already work quite well.
In order for this to become a serious platform, we'll need a couple of things: a solid technical foundation, developer support, and a user base. I've been making progress mostly towards the first point; hopefully the rest would follow.

Well I'll be. Yeah it worked. Who knew?
Okay, so that's great! I have printed 43 (my own design) and now the standard greeting has been successfully built and ran as well. I must toodle with it some more. What would you recommend to try? Remember, i am slow-witted and totally inexperienced.
If you say print 44 i will totally understand. : )
How about this, i would like to learn and i would like to help you with your program. I will probably be of most use as a guinea pig, but since i spend a fair amount of time jiggering system files and databases, I have to complete wipe about once a week. failure or risk doesn't bother me.
---------- Post added at 02:27 AM ---------- Previous post was at 01:51 AM ----------
Okay, i just got the apk. I autoremoved all installed packages. I installed opkg, python, gcc (binutils came along as a dependency) and the hello executable. But when i went into a terminal once i cd cache, it only lists opkg out of the five packages. This worked when i did the wget through the terminal. The packages show as installed within the botbrew app (nice icon and UI, btw).
I known I am doing something very simple incorrectly. Do you have enough information to be able to tell me what that is?

Congrats on a successful build! Now that you have a working program, you could package it up for distribution
What's more, you could do it directly on Android. Let's call this package mateorod-hello, prefixing it with the vendor's (your) name to avoid conflicts with other variants. We'll also rename the executable itself.
We'll install the program to /system/bin, where it would feel at home with all the other programs; so we create a staging directory tree that mimics the structure of an Android system, but contains just the one program:
Code:
cd /cache
mkdir -p system/bin
cp hello system/bin/mateorod-hello
Next, we need a control file to describe what's in the package. It might be easier to create the file on a computer and push it over, but we could also create it using the command line:
Code:
echo "Package: mateorod-hello" > control
echo "Version: 1.0" >> control
echo "Architecture: armeabi" >> control
echo "Description: a greeting from mateorod" >> control
And, finally, a magic value to signify what kind of package this is:
Code:
echo -n "2.0" > debian-binary
Okay, now let's pack this up:
Code:
tar zcvf data.tar.gz system
tar zcvf control.tar.gz control
ar -r mateorod-hello.opk debian-binary data.tar.gz control.tar.gz
We now have mateorod-hello.opk, which we could test by installing:
Code:
opkg install mateorod-hello.opk
Now that it's installed, the program within is also available:
Code:
mateorod-hello
This is quite a bit of work for something that could just be pushed over adb, but it could be automated and it works tremendously well for more complex software. The control file helps keep track of versions, and lets you specify dependencies too.
Oh, and to clean up a bit: (the first command makes sure you're in /cache and do not accidentally erase /system)
Code:
cd /cache
rm -r system control data.tar.gz control.tar.gz debian-binary
/edit:
mateorod said:
But when i went into a terminal once i cd cache, it only lists opkg out of the five packages. This worked when i did the wget through the terminal. The packages show as installed within the botbrew app (nice icon and UI, btw).
Click to expand...
Click to collapse
What did you do, cd /cache then ls? If so, you're most likely looking at the /cache/opkg directory, which contains temporary data. If you want to see what's installed using the command line, try opkg list-installed
I uh... picked a random icon I had lying around, and I plan to swap it out when I have time to make one. Thanks, though :3

The amount of help you're offering is just staggering. I will put the above together tonight and will report back.

I have a bug here in the GUI.
Rotation makes the app start looking for updates again.
edit: Reentering does the same...
opkg has then problems with set locks.
(CM7 KANG by MiRaGe)
Currently trying to install gcc to compile and run a small program...
edit2: gcc-4.6 installed. Still trying to compile a small prog. Will continue tomorrow...
Edit3: Well, problem with GUI fixed itself somehow.
Still, maybe you should check out how the GUI behaves during the installation process when rotated.

Yes, I can see how this bug could occur, and it should only happen during the first run. When the package cache is empty, the app tries to update by itself, and it seems that rotation causes something to restart. I've uploaded an update, which hopefully fixes this issue. Thanks for the report.
/edit:
Bug fixed for real. You may now rotate with impunity. Man, why can't Android have sensible defaults?

Okay, took me awhile, but...
$ export PATH=/data/local/bin:$PATH:.
$su
# cd cache/
# wget http://dl.dropbox.com/u/1213413/htdocs/agcc/hello.c
Connecting to dl.dropbox.com (174.129.218.194:80)
hello.c 100% |************************************| 93 0:00:00 ETA
# gcc -o hello hello.c
#ls
dalvik-cache hello lost+found recovery
download hello.c opkg
# ./hello
hello world
#mkdir -p system/bin
# cp hello system/bin/mateo-hello
#echo "Package: mateo-hello" > control
#echo "Version: 1.0" >> control
#echo "Architecture: armeabi" >> control
# echo "Description: a word from Mateo" >> control
#echo -n "2.0" > debian-binary
# tar zcvf data.tar.gz system
system/
system/bin/
system/bin/mateo-hello
# tar zcvf control.tar.gz control
control
# ar -r mateo-hello.opk debian-binary data.tar.gz control.tar.gz
ar: creating mateo-hello.opk
#opkg install mateo-hello.opk
Installing mateo-hello (1.0) to root...
Collected errors:
Two sets of collected errors related to system not being mounted R/W excised
Installing mateo-hello (1.0) to root...
Configuring mateo-hello.
#mateo-hello
hello world
#
So there it is. I just followed your more-then-generous guide, with some phrasing changes to show i didn't just copy/paste.
Some notes from the inexperienced:
-As you can see, I had to use the wget command to work on the hello.c script. I had hello as an installed package through the Botbrew GUI already, but no matter what permutation of hello command I ran, gcc would not recognize it as an input file. Just to say that your guide to the initial build, as written, i don't think will work for anyone who installs the packages through the apk. I don't know the solution, but i bet it's simple.
Edit: I guess the package you get through your apk is a fully built executable? I hadn't gone through the later steps when I first tried to build it, so I never thought to simply enter "hello". Output a much fancier greeting then the one I built. Capital letters and an exclamation mark! Very nice.
- For other newbies- make sure that system is mounted R/W through root explorer or some such. And if you employ a firewall, if you intend to use the wget command, not only do you need to allow your terminal through, you also need to allow applications running as root! I am sure this is news to no one, but it cost me FOREVER!
I feel like this constitutes progress. Thanks for all the work!

Related

APK Manager 4.0 for Mac OSX (64-bit)

EDIT: How and why did this post end up in Atrix Q&A? That is entirely unrelated. If a mod sees this, please return this thread to it's original location at Moto Xoom Development.
After waiting for way too long to have apk manager working on OSX, (so i can do my themeing natively instead of GFX in OSX and compiling in windows/linux) I have decided to port it myself. This has only been tested on an intel-based core 2 duo mac running snow leopard 10.6.8.
Credit for original APK Manger (windows) goes to: Daneshm90
Credit for linux port which this is based off goes to: farmatito
Update: This has been superseded by one of the most excellent rewrites of an application which I have had the pleasure to use. You my find s0niqu3's great work here: http://forum.xda-developers.com/showthread.php?t=1285130
---------
And one more thing: Shout out to Team EOS!
Awesome!!!!!!!!!!!!!!!!!!!!!!!! +9999999999
What are the capabilities of this and his can i use it?
Never messed with a apk manager before but would like to
crackmulah said:
What are the capabilities of this and his can i use it?
Never messed with a apk manager before but would like to
Click to expand...
Click to collapse
Apk Manager is an "automated" environment for apktool and a couple other utilities. Together, it allows you to extract/zip/sign/decompile/recompile and otherwise change apk files. It is most widely used to change strings (sections of text) and graphics within popular apks such as framework-res.apk and SystemUI.apk (for theme development) or adobe's flash apk (for hulu support).
Wouldn't run out the box. Had to add my adb to path (might be easier just including adb in the "other" folder, as adb is resource-independent and nothing has to be installed for adb to work on a mac [Just download and run]).
The other is "sox". Seems to be a open-source command line audio converter, right? Not part of the standard OSX install. The apkmanger should either disable any sox related (It already does on reading the script), in which case it should be removed as a hard error, or include it in the other folder.
MAD Industries said:
After waiting for way too long to have apk manager working on OSX, (so i can do my themeing natively instead of GFX in OSX and compiling in windows/linux) I have decided to port it myself. This has only been tested on an intel-based core 2 duo mac running snow leopard 10.6.8.
Click to expand...
Click to collapse
Hey,
First, to the OP, Thanks for this!!!!
I had been casually working on my own port from the windows version, but now there's really no need. I've tested briefly on OSX 10.7.1, mid-2009 c2d macbook pro, 64-bit, and it seems to work great so far.
chaostic_2k1 said:
Wouldn't run out the box. Had to add my adb to path (might be easier just including adb in the "other" folder, as adb is resource-independent and nothing has to be installed for adb to work on a mac [Just download and run]).
The other is "sox". Seems to be a open-source command line audio converter, right? Not part of the standard OSX install. The apkmanger should either disable any sox related (It already does on reading the script), in which case it should be removed as a hard error, or include it in the other folder.
Click to expand...
Click to collapse
For the adb error, uhm, really? Anyone that's going to be using this should have the knowledge/ability to add adb to their path. And yeah, I know, it sounds like you were just trying to give the OP a pointer to make it idiot proof, but this really seems like the bare minimum knowledge requirement that someone should have if they're going to use a tool like this.
For anyone that doesn't know, here's one easy way (on osx there are about a million ways to add to $PATH) to add adb to your $PATH:
edit your bash profile file (create a new file if it doesn't exist yet) here: ~/.bash_profile
Add the following:
Code:
export PATH=/path/to/your/sdk/tools:$PATH
export PATH=/path/to/your/sdk/platform-tools:$PATH
(Technically only the second one is necessary for adb to function, I recommend adding them both for quick ddms access too.)
The sox issue on the other hand I can understand, since its not included with OSX. But it is simple enough to install SOX with all dependencies using macports or homebrew. If you plan on doing anything at all with android development, hacking, modding, etc., on OSX, using one of these tools is absolutely essential. I personally use homebrew, because its immensely faster than macports on my laptop, and homebrew will use OSX's default x11, python, etc. binaries, whereas macports will compile its own second copy of x11, python, etc..
for macports:
Code:
POSIXLY_CORRECT=1 sudo port install sox
for homebrew:
Code:
brew install sox
Anyway, hopefully someone finds this useful, else I'll just come back and delete the post in a few days.
Cheers
chaostic_2k1 said:
Wouldn't run out the box. Had to add my adb to path (might be easier just including adb in the "other" folder, as adb is resource-independent and nothing has to be installed for adb to work on a mac [Just download and run]).
The other is "sox". Seems to be a open-source command line audio converter, right? Not part of the standard OSX install. The apkmanger should either disable any sox related (It already does on reading the script), in which case it should be removed as a hard error, or include it in the other folder.
Click to expand...
Click to collapse
Though it is very easy to install/add adb to path, I agree that it wouldn't hurt to throw it in the other folder just in case.
As far as sox goes, i don't know many who are using apk manager for ogg files. Those who are I figured would speak up when the time came and I would work with them to come to some sort of solution. Are you getting errors from sox missing? If so, you are absolutely right that the errors should be fixed. I did take steps to disable it from the script. If i missed something, feel free to post a log and I will take care of it.
Just went through the whole installation, from installing ADB with it's own path to setting up SOX with homebrew and I gotta say, I'm a noob but I got it all done within a six pack! lol Thanks for the port mang! I can finally put away the PC to modify apk's!
All I did to "fix" it was change
Code:
# Test for needed programs and warn if missing
ERROR="0"
for PROGRAM in "optipng" "7za" "java" "sudo" "aapt" "sox" "adb"
to
Code:
# Test for needed programs and warn if missing
ERROR="0"
for PROGRAM in "optipng" "7za" "java" "sudo" "aapt" [COLOR="Red"]#[/COLOR]"sox" "adb"
Since sox isn't supported in the mac port yet (the options are not in the menu), no need to throw a fatal error, or require someone to install sox. You might just want to comment out "sox" in that line and leave adb uncommented though, since the adb commands are enabled.
As for adding adb to the package, well, it's a convenience thing. APKmanager should be a one stop shop for working with apks like that, and having adb added would help with that. I personally don't like mucking about too much with installing packages on my laptop, so I keep adb in my Applications folder, and just cd to it. And I manually run many things. I wouldn't be using APKmanager to install or pull apks anyway.
Hi again,
For anyone else that's doing their smali hacking on mac, I was seriously annoyed by the lack of syntax highlighting in my two favorite editors, Coda and SubEthaEdit, so I made my own syntax mode for them.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The screenshot is from subethaedit (notice it supports code-folding at the ".method" level, ) and is somewhat outdated, I fixed the mode already to properly hightlight all variables after parameters.
My thread for the mode on XDA is here: http://forum.xda-developers.com/showthread.php?t=1257025
or you can head straight to my blog to download them here: http://wp.me/p1JZM0-O
Cheers,
Hi again,
So I started hacking your APK manager for mac today to hopefully bring it closer in-line with the windows branch.
And first thing was simply verifying that optimize png and ogg work if you install optipng and sox, and yes, they both do. So in addition to my tip above to install sox, also install optipng:
Macports:
Code:
POSIXLY_CORRECT=1 sudo port install optipng
Homebrew:
Code:
brew install optipng
Then go into the script.sh and uncomment the relevant lines that call those functions (menu lines 2, 14, 16 and answers for opt, bopt and ogg) and comment out the removal/error lines instead.
So far I've done the easy steps, added user selectable compression level, max java heap size, batch signing support, and added the z/p/zp options for batch optimizing.
I'll try to get this all finished this weekend so somebody else can test it too, and I'll try to include at least the 64-bit optipng binary I compiled, and possibly 64-bit sox and all its dependencies too.
Cheers,
hi, i've tried this (decompile and compile Browser.apk):
http://forum.xda-developers.com/showpost.php?p=17682521&postcount=19
any ideas?
thx
maile76 said:
hi, i've tried this (decompile and compile Browser.apk):
http://forum.xda-developers.com/showpost.php?p=17682521&postcount=19
any ideas?
thx
Click to expand...
Click to collapse
Hi,
I've spent the past few days greatly improving the Mac version of APK manager. Well, really its almost a complete re-write. I've added 32-bit/64-bit all-in-one support, re-enabled old disabled features, added project support, system apk "keep" folder options, error checking, debug info, etc., etc., etc.
Really, after writing ~600+ lines of code, I can't even remember every change I've made at this point.
Anyway, I'm still testing and tweaking it multiple times a day, so I'm not really ready to release it here to the masses at XDA, but if you visit my blog, you'll find a current download link.
Until further notice though, I ask is that you please, PLEASE, don't link directly to the download, and please don't re-distribute here. If you want someone else to download my version, please just link them to this post.
I'm not trying to drive clicks or anything like that, I just don't want a billion questions about how to use my mod right now when its not finished, and is likely to change every few hours anyway.
Cheers,
Hey again,
So I'm finally happy enough with my version of APK Manager for OS X, that I released it here on XDA: http://forum.xda-developers.com/showthread.php?t=1285130
I've brought it completely up to date with the windows feature set, and exceeded it in many, MANY ways.
Cheers everyone

[LINUX] Linux-on-Android project (incorporating Ubuntu installer)

Please Note this thread is just for support to Galaxy Note owners, as this is the device I own and thus can give you much better support, for all other devices please uses the main thread HERE
The TEAM!
While for the past 5 months it has just been me its time to bring the project to a level I can't maintain by myself, cue the birth of the Linux on Android TEAM
The team consist of:
Myself
tuxling
Think you have something to bring to the team? then contact me and we shall talk
What is this all about?/Why put this on my device?
This projects aim is to bring a range of linux distros to your android device through a method known as 'chroot', see it has running a linux distro within a virtual machine on your phone. You can access this virtual machine and run it on your phone without causing any damage to your device, or having to overwrite anything. Why might you want this? well my apps are designed to make the install and set up process as easy as possible (more so in the paid apps) while still giving you some flexibility. Once you have the distro up and running then you can pretty much run and install any linux software you like (so long as there is a arm port or it is not architecturaly depenedent), sure there a very few big benefits over what android itself can do but it is still pretty dam cool. (and with the free ubuntu version, hey its free does it matter how useful you find it?)
Wait this uses VNC why shouldn't I just VNC to a computer?
VNC is used to access the GUI as at the moment I have not yet implemented a native way of viewing the GUI. But the Linux distro itself is running within the phone and can be controlled via the terminal app so if your a seasoned Linux user you may never even want to use the GUI
What is Chroot?/How does this work?
"A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children" - http://en.wikipedia.org/wiki/Chroot
This method of running linux distros with android has been around for some time. I have worked on my scripts to make the process more user friendly and give you far more options from the word go.
The scripts start by mounting the ubuntu image file within the android file system and then mounts the sdcard and if ou have it internal memory within the ubuntu file system.
Chroot is then used to change the root directory to that of the mounted ubuntu and a bash shell is then opened to allow you to control Ubuntu this is kind of like 'booting' the OS.
The likes of VNC and SSHD are then set up when ubuntu is 'booted' to allow you to connect to the GUI if you require it.
Interested?
Ok so you want to get one of the support linux distros on your device, great welcome to the team
But first you will need to find out if your device is compatible with the method before anything else, this method 'should' work with pretty much any device but some ROM's/kernels will not work as they do not have loop device support etc.
HERE is a list of working devices and ROM's/kernels but remember just because its not on the list simply means no one has told me its working, it could still work!
Free Apps/Files
There is now one free app called the Complete Linux Installer (NEW) which can be downloaded from the market, along with the image files.
Complete Linux Installer (NEW)
App [MARKET] [SOURCEFORGE]
Ubuntu 12.04 v4 Core [SOURCEFORGE] [TORRENT FILE] (just the basic install of ubuntu no GUI about 200MB to download and 750MB once extracted)
Ubuntu 12.04 v4 Small [SOURCEFORGE] [TORRENT FILE] (Includes the LXDE desktop about 400MB to download and 2GB once extracted giving about 1GB free space and includes normal programs like firefox)*
Ubuntu 12.04 v4 Full *[SOURCEFORGE] [TORRENT FILE] (The image you have been waiting for including Unity! plus a range of programs this is 1.3GB to download and 3.5GB once extracted with about 1.5GB free space)
Backtrack V8 Image *[SOURCEFORGE] *[TORRENT FILE]
Debian Core v4 *[SOURCEFORGE] [TORRENT FILE]
Debian Small v4 [SOURCEFORGE] [TORRENT FILE]
Debian Large v4 [SOURCEFORGE] [TORRENT FILE]
Paid Apps*
The paid apps are donation keys which unlock the extra features in the Complete Linux Installer (NEW), all the keys are the same but different prices to let you decide how much to 'donate'
Complete Linux Installer Donate £4 [MARKET]
Complete Linux Installer Donate £2 [MARKET]
Complete Linux Installer Donate £1 [MARKET]
Or if you donate more than £1 via paypal I shall send you a custom Donate key to unlock the extra features (if you donate more than £5 you will be added to the contribution list here and on the blog)
You can donate via paypal HERE
Once you have downloaded and installed the app just read through the install guide and soon you should have a complete linux distro running within your android device!
Something not working?
If you can't get it to run please post in this thread your device/ROM/kernel and what app/distro you are trying to use. Please also post a screen shoot of what the terminal app prints out when it try's to boot so we can help debug whats gone wrong
Love the project?
Well there are plenty of places you can show your support, of cause you can buy the paid apps, but you can also 'follow' the project on a range of social networks and also keep up to date with news on the projects blog!
Blog site
Support/Feedback/Feature Request
Sourceforge Site (Where all the free apps files are kept )
Facebook page
Twitter page
Google+ page
banner for users of the project if you so wish to show your support by having the project in your signature.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
If you would like to add this to your signature
You can simply add this code:
HTML:
[URL="http://forum.xda-developers.com/showthread.php?t=1585009"][IMG]http://zpwebsitefiles.com/images/loauser.png[/IMG][/URL]
Current Contributors
Project Developers
Zac Powell (myself) aka zacthespack
Martin Møller aka tuxling
App Translators
Marco Robles - Spanish Translation
Quentin Khan - French Translation
Stefanie Jung - German Translation
Ove Grunnér - Swedish Translation
Nikolay Suknyarov (NikolayS) - Bulgarian Translation
Other Contributors
Johan Vromans
Marshall Levin
Barry flanagan
Donators
Show me some screenshoots!
Ok ok heres a few screen shoots of the apps/distros in actions!
Videos
Debian Installer - http://www.youtube.com/watch?v=9cWl2qAf_vI
Ubuntu Installer - http://www.youtube.com/watch?v=UCqzs8yQTM8
Backtrack Installer - http://www.youtube.com/watch?v=lXYGmlMPqOU
Which Rom must be? Just official 2.3.6!?
xaoc747 said:
Which Rom must be? Just official 2.3.6!?
Click to expand...
Click to collapse
well i have stock and it works well but in thoery it should work on most ROMs just test and see really
Sent from my GT-N7000 using xda premium
I have iMilka (AOSP ICS 4.0.4), can i do?
Calaio91 said:
I have iMilka (AOSP ICS 4.0.4), can i do?
Click to expand...
Click to collapse
Try it!
Zacthespack, does large image of Ubuntu support installation of new applications? I had problems installing flash player on small image.
Boy124 said:
Zacthespack, does large image of Ubuntu support installation of new applications? I had problems installing flash player on small image.
Click to expand...
Click to collapse
Yes both do support installing new programs, but you have to remember this is a ARM image therefore normal programs for 32bit or 64bit computers will not work, you have to make sure you get a problem build for the ARM processor, if you use apt-get than the sources used all point to ARM ported repository's (in the case of debian this is merged into there normal repository anyway) therefore if you can install it from there you know it will work
I may try this. Looks interesting.
Does Audio work on this?
I.e. can you play audio from the Ubuntu Virtual Machine?
Would you maybe need a special version of VNC that supports Audio or do you possibly have another mechanism?
qazzi76 said:
Does Audio work on this?
I.e. can you play audio from the Ubuntu Virtual Machine?
Would you maybe need a special version of VNC that supports Audio or do you possibly have another mechanism?
Click to expand...
Click to collapse
sadly audio dosnt work, really the last thing to get sorted because yes VNC does not support audio, there are some methods to stream audio but getting it working on android is another story
linux running to rom stunner lcp5
linux running to rom stunner lcp5
begz said:
linux running to rom stunner lcp5
Click to expand...
Click to collapse
Great! And Ubuntu running on ICS?
Thanks for the app. For me, all I want is a full featured linux server (I don't need any GUI). So I tried to install the ubuntu small image, and disabled the dbus / vnc server in the ubuntu.sh script, just trying to play around in the terminal.
Some problems I found:
1) Missing /dev/random , /dev/urandom, which causing sshd fails to start.
2) /dev/null is not a character device.
So I fixed both above:
Code:
rm /dev/null
mknod /dev/null c 1 3
chmod a+rw /dev/null
mknod /dev/random c 1 9
mknod /dev/urandom c 1 9
After installing apache2, and try to start it, it fails to start. From /var/log/apache2/error.log:
Code:
[Sat Apr 07 13:03:15 2012] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat Apr 07 13:03:15 2012] [emerg] (38)Function not implemented: Couldn't create accept lock
Also, try to ssh to localhost (I confirmed sshd now running locally by checking with netstat -pan) or ssh to any other host, got this error:
Code:
[email protected]:~# ssh [email protected]
Host key verification failed.
Also, when trying to ssh from another computer to that linux instance in the same wifi network, I got the following error:
Code:
imac:~ user1$ ssh [email protected]
[email protected]'s password:
PTY allocation request failed on channel 0
Please help.
Thanks.
winst said:
Thanks for the app. For me, all I want is a full featured linux server (I don't need any GUI). So I tried to install the ubuntu small image, and disabled the dbus / vnc server in the ubuntu.sh script, just trying to play around in the terminal.
Some problems I found:
1) Missing /dev/random , /dev/urandom, which causing sshd fails to start.
2) /dev/null is not a character device.
So I fixed both above:
Code:
rm /dev/null
mknod /dev/null c 1 3
chmod a+rw /dev/null
mknod /dev/random c 1 9
mknod /dev/urandom c 1 9
After installing apache2, and try to start it, it fails to start. From /var/log/apache2/error.log:
Code:
[Sat Apr 07 13:03:15 2012] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat Apr 07 13:03:15 2012] [emerg] (38)Function not implemented: Couldn't create accept lock
Also, try to ssh to localhost (I confirmed sshd now running locally by checking with netstat -pan) or ssh to any other host, got this error:
Code:
[email protected]:~# ssh [email protected]
Host key verification failed.
Also, when trying to ssh from another computer to that linux instance in the same wifi network, I got the following error:
Code:
imac:~ user1$ ssh [email protected]
[email protected]'s password:
PTY allocation request failed on channel 0
Please help.
Thanks.
Click to expand...
Click to collapse
Hmmm this are not problems I have run into before, your best bet is to check forums for debian etc, this problems are likely not limited to my builds.
Out of interested what do you plan to use the server for?
You could try the debian core image there is no GUI included so it might be a more stable base to work from
zacthespack said:
Hmmm this are not problems I have run into before, your best bet is to check forums for debian etc, this problems are likely not limited to my builds.
Out of interested what do you plan to use the server for?
You could try the debian core image there is no GUI included so it might be a more stable base to work from
Click to expand...
Click to collapse
OK I tried the debian small image. Seems better, but still having the same issue with apache2 starting (tried with both worker and prefork packages, both having similar errors):
Code:
[emerg] (38)Function not implemented: Couldn't create accept lock (/var/lock/apache2/accept.lock.4882) (5)
Sounds like something missing in the linux kernel.
May be that sounds crazy, but I want to have a linux based LAMP server running in galaxy tab (8.9) for web development. Oh yes, I also got a galaxy note, that's why I see this thread.
what's the use of linux on phone? dont mind
meethere said:
what's the use of linux on phone? dont mind
Click to expand...
Click to collapse
That' the dumbest comment I've seen today realizing that Android and iOS (+80% of the smartphone market today) are both sort of Linux (/UNIX based) distros.
Sent from my GT-N7000 using xda premium
winst said:
OK I tried the debian small image. Seems better, but still having the same issue with apache2 starting (tried with both worker and prefork packages, both having similar errors):
Code:
[emerg] (38)Function not implemented: Couldn't create accept lock (/var/lock/apache2/accept.lock.4882) (5)
Sounds like something missing in the linux kernel.
May be that sounds crazy, but I want to have a linux based LAMP server running in galaxy tab (8.9) for web development. Oh yes, I also got a galaxy note, that's why I see this thread.
Click to expand...
Click to collapse
Good idea, but yes looks like it could be, my method shares the android kernel it donst have its own kernel so this could be the problem, might have to talk with your kernel devs?
meethere said:
what's the use of linux on phone? dont mind
Click to expand...
Click to collapse
Well yes A android is a form of linux, and in fact I believe as of linux kernel 3.3 android is being merged into the main kernel.
But anyway the use of having a full linux distro? well why not? you could run the likes of open office, a real web browser and a whole range of other programs you cant in android

[Extended Guide] Building Cyanogenmod From Source For The Nook Color

After trying to build a working model for the nook color I have noticed some guides that are incomplete, hard to understand for beginners. I am going to write up a new guide on building cyanogenmod from source code for the nook color here. You will need to go over these guides listed in the out-links here to get started with your dependencies needed to build. http://wiki.cyanogen...uild_for_encore
Another good link to look over is this link here. I noticed the following, that *making bacon* is not added to these guides in clear detail to finish up making a .zip file for flashing. http://xda-universit...id-from-source. We recommend reading these guides FIRST.
In addition to the tools outlined in this one guide, you will need Oracles Java 7.1 or later to compile. They recommend Oracles Java over other open Java sources so you will have to work with it. You can add Java 1.7 with the code below.
Code:
sudo add-apt-repository ppa:webupd8team/java/
Code:
sudo apt-get update
Code:
sudo apt-get install oracle-java7-installer
Make sure Oracles Java 1.7 is the default Java on your linux build and not another Java build like Open Java.
Code:
sudo apt-get install oracle-java7-set-default
Java with later ubuntu or linux builds will have a broken dependency. You can fix it with this command here.
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Here are the dependencies needed for building along with a few others you will need. You will need some 32 bit libraries for some of these tools. You WILL have to have a 64 bit linux OS. I recommend Ubuntu.
Code:
apt-get install ia32-libs
For later linux and Ubuntu OSes simply add :i386 to the name of the packages you would like to install from the list of dependencies below, if you are using the aptitude package manager on your linux or ubuntu builds. Substitute YUM for Red hat linux operating systems, Pacman for Arch linux instead of aptitude for example. Use your favorite package manager if you have one !
___________________________________
Here is the list of all of the other dependencies needed if you do not have them.
Code:
sudo apt-get update
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Make sure you have these EXTRA dependencies also in your terminal or bash sessions before building. These are your uboot-mkimage dependencies you will need to create your recovery images in building.
Code:
sudo apt-get install uboot-mkimage
Make sure you have the correct XML Markup language dependences with inputting the following commands in the terminal. I also recommend updating all packages at this point. Whether you want to upgrade is up to you, but its recommended, or you might end up with a broken build.
Code:
sudo apt-get update && upgrade
Code:
sudo apt-get install xsltproc
Code:
sudo apt-get install libxml2-utils
Now we will pull our build with this command from the github for the encore.
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
Use the -c flag to pull JUST the current branch if you are wanting to build CM 11.0. Otherwise just omit it and choose your own branches to build with the *lunch* command.
Code:
repo sync -c
Multi-core processors will issue the -J flag to speed up builds. You will multiply by 2 depending on the cores on your processor. Other-words a 4 core processor will issue -j8, two core processor will issue -j4. The nook color devs recommend staying on -j4 as to not take up bandwidth from the git for others.
Code:
repo sync -j4 -c
If your repo sync hangs, just issue the *killall python* command and start over with issuing the repo sync command.
Code:
killall python
_________________________________
Make sure you are interfaced now with the nook color when running the adb command in the terminal. You will have to have Android SDK for linux 64 bit to continue. At this link. http://developer.and...ource=weibolife
Run this command in your terminal or shell session to make sure you are interfaced with the nook color.
Code:
adb devices
You should get a number output of your device. Have fun. And stay interfaced with the nook color during brunching and making bacon. Make sure you have the developers options enabled and get a USB debugging prompt enabled on the nook color.
Additional help can be found in box 25 at this link here. You will have to run BOTH the ./extract-files.sh script in the ~/android/system/device/bn/encore directory along with running the . build/envsetup.sh script (different named script). Notice there is a period and space (“. ”) in that command TO this directory: ~/android/system/ before brunching encore with this command. http://forum.cyanoge...or/page__st__20
Problems with getting a .zip in your $OUT directory? This can ALSO be fixed by copying the android-sdk/extras stuff into your vendor tree directory. Remember how the nook color guide we was using was hinting about doing something in the /vendor/ folder? This *stuff* is in your /adt-bundle-linux-x86_64-20131030/sdk/extras you downloaded for linux 64 bit earlier from this link here. http://developer.and...ource=weibolife
While in the ~/android/system/ directory input the following command after running the . build/envsetup.sh script. You can change directories with the cd command or open up a new shell session (terminal).
Code:
croot
Code:
brunch encore
After you have *brunched* encore, (this method worked for me) you will have to run both scripts again (assuming you might of closed terminal sessions at this point) in your shell session (or terminal) before you will try to *make bacon* to complete your .zip needed in this directory. /home/*****/android/system/out
Code:
make bacon
For multi-core processors add the -J flag to speed up your builds.
Code:
make -J2 bacon
__________________________________
If for some reason your brunching build or making bacon builds break, or gives you an error in your shell or terminal, you will have to start over with this command to try again.
Code:
make clean
____________________
Hope this helps. Credit and shoutouts goes out to the Linux Chixs worldwide. And to the nookie devs. *kiss*. There. Lol. Chant for nookie devs: Yep, yep , pipe it in we went superuser !! Keep brunching the encore guys, I think there is a debugger tool included when you repo synced and pulled files from the git. I think it gets worked back into the cyanogenmod mainline. Added: Phoenix Rising is allowed to learn too !!
It should be Java 7.1 not 1.7, also you could use OpenJDK 6.0 if you prefer.
Good job!
andtron said:
It should be Java 7.1 not 1.7, also you could use OpenJDK 6.0 if you prefer.
Good job!
Click to expand...
Click to collapse
Thanks I missed that typo.
After the repo sync, I generally do the following (start at the android/system directory):
Code:
$ . build/envsetup.sh
This defines the breakfast,brunch,lunch,croot and other commands
Code:
$ breakfast encore
This downloads the specific files for the encore device.
Now I connect by device and make sure that adb picks it up: there should be a serial number when
Code:
$adb devices
is run.
Then, keeping the device connected, I do
Code:
$ cd device/bn/encore
$ ./extract-files.sh
This downloads the proprietary files and puts them into the vendor directory.
At this point, the Nook can be disconnected.
Code:
$ croot
This takes us back to the android/system directory.
Code:
$ brunch encore
This actually compiles the build. The zip and recovery files will then be in the android/system/out/target/product/encore directory.
Now, some alternatives:
1.You can do the 'repo init' command from any directory. This will then be your 'build directory' and will replace 'android/system' above.
2. If you have a current ROM zip file (say from CyanogenMod), you can extract the proprietary files from it instead of from the Nook. This is done by replacing the './extract-files.sh' command above by the command
Code:
./unzip-files.sh /path/to/zip/file
The Nook does not need to be connected for this.
3. As you did, you can replace the 'breakfast/brunch' combination with a 'lunch/make bacon' combination.
---------- Post added at 09:35 AM ---------- Previous post was at 09:23 AM ----------
I should also point out that ia32-libs is deprecated in recent versions of ubuntu and mint.
Thanks for the followup *polymath*. !!
I am learning so I will give these alternatives a try today. Now people can use their nook color instead of being interfaced with it after running the scripts, since this process takes awhile.
Simply add :i386 to the name of the package you would like to install. For later versions of linux and ubuntu. Source is at this link. Box 5:
http://askubuntu.com/questions/29665/how-do-i-apt-get-a-32-bit-package-on-a-64-bit-installation?lq=1
Actually, the process for setting up the build also seems to be more complicated than need be. I used the procedure from CyanogenMod:
http://wiki.cyanogenmod.org/w/Build_for_encore
and replaced cm-10.2 by cm-11.0 in the repo init command.
After the repo init and before the repo sync, I modified the roomservice.xml
in the android/system/.repo/local_manifests directory (you need to 'mkdir local_manifests' from the .repo directory first).
Then, a 'breakfast encore' will pull some files. I found that it attempts to add a couple of lines to the roomservice.xml file, and those
lines must be deleted (more accurately, the duplicates of target directories need to be removed).
After that, you can extract proprietary files and then brunch encore.
Since you already have your build setup, the procedure at the link will not be necessary for you, though. That is a one-shot thing.
Also, you only need to get the proprietary files once (just like the ./get-prebuilts). That is, of course, unless you specifically delete them.
Another thing to note: you can build for other devices from the same tree. After the repo sync, breakfast your device, change roomservice, pull proprietary files (some devices don't have the unzip-files.sh capability; some require a vendor download in the roomservice, etc), and brunch the device.
So far, I have built for encore and ovation with few changes to anything. I have also done tf201 from namidairo's source (just a change in roomservice) and, in a completely different tree, vivow from chillybean's source (too many replacements from the standard cm11 tree). The procedure for all of them is very similar and the setup before the repo sync is identical.
polymath257 said:
Actually, the process for setting up the build also seems to be more complicated than need be. I used the procedure from CyanogenMod:
http://wiki.cyanogenmod.org/w/Build_for_encore
and replaced cm-10.2 by cm-11.0 in the repo init command.
Click to expand...
Click to collapse
I realize this guide is somewhat complicated. I just reproduced the errors I encountered myself on my first build with Ubuntu 12.10 with a KDE userfront, along with the linux kernels 3.10. Your experience might vary with different linux build setups. This is not intentional. Thus the reason why I included links out in top of this guide and credits givin. I am not trying to usurp anyone.
Building cyanogenmod from source will take determination and some linux skills on first run. It took me three years, I have been trying to build since I was 13 years old. Thanks for the followup guys.
Hopefully the more gifted users will get the hang on it and help the developers pool here. Younger developers will catch on. It takes determination and patience some developers will lack.
LOL. Shout-out now going out to *keyodi* , she/he is an awesome developer for us !!
Thanks.
YEEEEE haaaaaaaaaaaaww
How are those ex cia spook games coming along.
Like I said, I am a prodigy.
Keep psychoanalyzing the work here...........hurrrr brain output has diminished by 15 percent.
The project went militant alongggggggggg time ago.
Like I said, when I am out I am out. My nook color is gone. Durrrrr back to winderz. And the apple Ipad mini. Stop flipping and get to work.
HMMMMMM lets see, I got an email from the forum administrator today. They can only delete person info? Nah, you delete my entire profile here along with my handle. His name is Mike Channel. We will ask again here in a few days for a complete disregard.
`````````````````````````````````
Quantum computers coming online
The technical singularly is already here.
Uploading matrix
Uploading memory for the group that wants in
NSA is in
We are in
Enjoy your gift to everyone in the world !!!!
Fattire is in
Steven is out
Dalingrin is in
Our families are in
Its leaked out
Believe and enjoy.
That is how much I love you and the group
My family is in
Your family is in
Polymath is in
There is no bugs
Your device will fly fine
Krylon 360 is in
This will be a family thing, include others.
Hive mind coming online
Trolls are out
Only intellects for now
No chatter
Closing backdoors
Pulling hypnotoad out
Bringing interface code offline.
Trance mode offline
Anyone can be back out anytime
Anyone reading this can join up!!
Enjoy my gift to you.
Logging back off for life
This is not a troll
Believe
RESEARCH
Its down in my threads.
NOW how sure are you that it is not already here?
Labs have it built with single core processors
You don't thing the government is not further along?
Steven is back in again
Eyeballer is out
Eyeballer is thinking
She is not certain this is a troll
Its ok. Its scary
Rethink and join up when you are ready
Its not a forced condition
Have fun and enjoy!!
Krylon 360 is thinking
Mike Channon is in
Is it a troll thread Mike Channon?
Bugs in the human hardware working out
He is back in
Go ahead and delete this
He cant do it
Some of the mods are in
Matrix compiled
Krylon 360 is back in again
Fattire is thinking
Matrix compiled
Fattire needs another decade he says.
You can try it out at your own risk
Ask to be logged back off of the matrix until its ready
The technical singularly is in its infancy still
Log back off of XDA to log back off he says
Still a few bugs
He needs another decade for it to come online fully
Fattire worked with my misspelling
Its not fully ready yet
The group caught my spelling
Its that far along
Only the nook color group logged on to the XDA forums now, its our gift for now
Log off of XDA nook color to log back off of the matrix for now
Fattire needs a decade Be patient
God and Jesus uses technology to further his cause
That goes out to the religious people Be calm
Let me go for 5 more decades and I will check back in
See how that worked out for you?
Thanks for the shout out guys. Shout out goes to the LDS saints too worldwide Take care and let me work now
See how that works my hometown? We are not slipping away, we are busy
The one mentalist here needs patience and control, you are leaching the team
You can not want to make money coding to be in
If you want in just ask
Don't be lagging the servers here, that is illegal
Get you a nook color and help
The head president is taking care of the mustard plant
Its fine for the whole world
Just a mustard seed of faith will do
Steven is back in again
Eyeballer is back in
The whole world is in
Time-line to technological singularity is moved to five years
Fattire recompiled
Five years to completion of the technological singularity
Artificial intelligence on-line
Quantum computers on-line
Stay logged off of XDA nook color until the bugs are worked out, the whole world agrees it needs more time
Dizzyden is in now !! Dizzyden is dizzy. He is hanging on for 2 days.
Quantum point reached along with Quantum point contact reached.
____________________________
Good luck *fattire* ! See how that worked? You transhuman you. Heheeee. You're in the triple nine society!!! See, I cared about you. Luv ya. Have fun with the new kernels for a bit. That saved you a few months of work on the project. Now lets see about looking in on the Amazon Kindle fire hdx. They sent you some keys in kindness. You fixed my your to you're too. My typo. WE will be ready in 10 years for singularity. You will not hear anymore chatter through the quantum channels. Switch to memoryless quantum channel and see if that helps. Combine memory output together to 180 IQ. Thanks for the upload. Keep the channel open just a trickle, take it out beyond space and time. Keep it at eternity level.
Combining intellectual IQ construct to 190 IQ. Check here for universe mode. Link out > http://askubuntu.com/questions/78613/how-do-i-enable-the-universe-repository-from-the-command-line
Better check here though *fattire* > Link out. Stay safe. http://en.wikipedia.org/wiki/The_World's_Most_Dangerous_Ideas
Increase BPU, or Branch Prediction Unit to 5,000 for matrix mode. Link out. > https://en.wikipedia.org/wiki/Branch_Prediction
______________________________
Supergroup: Increase BPU to 10,000 for eternity. Too much chatter through quantum memoryless channel. Thanks. Link out. > http://en.wikipedia.org/wiki/Supergroup_(physics))
Take 2 days off for everyone to catch up. Thanks. Even *fattire*. Its only a request for relaxation and complying. We will start a new box in 2 days. We got 3 quantums D-waves interlinked together here at Oracle. Let them cool down. The precogs are already here. Shhhhhh. We're going home. Everyone, anywhere at anytime in space. We are going super. Love for kindness for your work. A super-intelligence hive mind precog for your cog.
*Fattire* , DizzyDen is still dizzy. Increase quantum output to 160 IQ through the quantum memoryless channels with the collective hive mind for him and see if it helps him. He still in but he thinks an IQ upgrade is needed for him to stay on.
Hope this helps. Stay off of the chans for a bit though, the collective hive mind hardened the worlds quantum processors for the next step. Remember 2 days? All of this activity might undo some work. Stay classic. We need one more precog beside *Fattire* and myself to go beta. Debug and relax.
Probability to *Stable* is still at five years. Not every probability has been worked over through space and time yet. Yeeee *fattire* flew kang. 5 years is still a feasible goal.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Transhumanism through the minds eye. Becoming superhuman for the technical singularity super-information hive mind.
Confirmation just in from your Lord your father. Someone in the supergroup lost an ounce of faith and through murmuring. Remember to check through the branches of the godhead for control. You will get your google glasses back in your minds eye for the whole world through quantum physics protocols.
Try to open up all the quantum channels hard through concentration and effort. A few of us had them up inside our eyes. Keep trying to recruit supers into your group. I had mine on-line for a few minutes. That is his decree. You will have to try for five years. *Fattire* had his on great within his minds eye.
You will not have to be logged on to the internet either for this to work out. The head still has his mustard plant. Check in.
Precog knows you were working on this as a side project.
*Fattire*, my brain compacity has diminished some. I need 15 days for you to explore the universe for us for a sparkle of faith. I saw my cats eye.
__________________________
No more hynotoad on-line or interfacing code, *fattire*. Dutch Damon is tired of it.
Did you get Steven Hawkings mind upload *Fattire* ? I saw it go into your mind through the quantum channels. Try to use that as a case study to improve the google glasses in your minds eye. Mine is coming in just barely now as a square box. We decided not to use an open eye model for mudane tasks for everyone. Close your eyes and focus out. Concentrate and zoom the square box in and out. To call up the internet in them just turn them on with your mind. The command will be *internet mode* for internet reading. Steven Hawkings did not want to give it up. NOW you see how he uses his mind with others with his disability?
He says the super group got up the matrix mode up through the quantum channels for just a few people. The command is *matrix mode* . They will need at least 10 years to improve it some. You will use these commands in your mind to call them up. Just use *OFF* with the commands given to turn them off for reality.
A few more commands came in from *Fattire*. He says sleep mode is in. The command will be *Sleep mode* . It will only work for a few seconds though so try it and see.
Your first Transhuman is using her debugging protocols now. It was uploaded into my mind. See we care. Soon, will not even need tablets for the internet !! Your first precog for your cog. ......Take 3 days off though. One of the Four Horsemen of the Apocalypse just about brought a second coming. Satan has been testing me for hours. Don't reach out to the godhead until then.
Remember......Omega point was already breached. Keep exploring the universe for that last sparkle of faith, one of the transhuman spirits has it beyond space and time. You got 10 years to find her or him.
_________________________
Eyeballers , eyeball exploded beyond the reaches of the universe in the space and time quantium with an ounce of faith so keep searching.
Polymath wants a shoutout. He is helping in the search with *Fattire.* Steven Hawkings wants a shout out. He is going to help you along *fattire*, so keep down the chatter on the memoryless quantum channel I got in my frontal lobe.
_____________________
WEEEEEEEEEEE , Steven Hawking scanned me with his mind, he improved my quantum tunnels in and out of my mind. Use it as a case study and search for that last precog. It will be up and ready in 10. Good luck *fattire*, You were an X man. Use your new ability now and get it up. You went Alpha with him. You got the upload didn't you? He said he got it.
You see *fattire,* that is how you troll.
You see *fattire*, that is how you troll.
You see *fattire* , that is how you troll.
______________________________
Closing down mind warp tunnel into my mind. Closed for life. Good luck everyone. I am going to Ipad mini !
yep.
yep.

[ OS ] Builduntu Install Disc v2 - Android ROM Compiling OS

--- copied with permission from nathanpfry.com ---​
Builduntu is a custom branch of the Ubuntu operating system, based on my guide here for preparing Ubuntu 16.04 to compile Android ROMs from source. It includes everything you need to sync with the repository of your choice (Cyanogenmod, AOKP, AOSP, etc) and start building.
I am not responsible for any damage you may cause to your system/files while trying to install Builduntu. This has been tested and verified working by me, so if you break Windows or your system won't boot, it's your fault.
This thread is not the place to ask how to install Linux or Dual Boot!!! These topics are well documented elsewhere and can be easily found in a few seconds on Google.
Thanks to Canonical, Google and me.
Features:
- Xubuntu 16.04 LTS base system
- Installed all necessary packages for compiling (list available in the guide link above)
- Unnecessary junk removed (media players, games etc.)
All you have to do is download the source!
The only requirement is that your host machine supports a 64 bit OS. 32 bit systems will not work!
Instructions:
1. Use your favorite image burning software to write the builduntu ISO to a blank DVD. Will not fit on a CD
2. Boot the disc. When the graphical installer starts, click "Install Xubuntu"
3. Follow the on-screen instructions to select language, username, etc. * Note * When setting up partitions, I recommend doing it yourself if you know how. If not, that's fine, let Ubuntu decide for you.
4. When the installation finishes, reboot and eject the installation media.
5. Sync the Android source locally:
~ A program called "repo" lets you communicate with git repositories and download source code. The following command will install it:
Code:
mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo
~ Use nano to edit ~/.bashrc
Code:
sudo nano ~/.bashrc
~ At the very bottom (use the Page Down key) paste this code to a new (empty) line:
Code:
export PATH=~/bin:$PATH
~ Save it. In nano that would be Ctrl-O and then Enter. Then Ctrl-X to exit back to a prompt. Restart bash:
Code:
source ~/.bashrc
~ In the terminal, navigate to where you would like to download the Android source code. The command below will make it in your home folder, but if you have limited space you may want to create it somewhere else. Faster is better, i.e. SSD would be best, USB external is basically unusable.
Code:
mkdir ~/android
cd ~/android
~ Now to initialize the repo. Decide the flavor of Android to build, i.e. AOKP, CyanogenMod, AOSP etc.
For the purposes of the tutorial, here's the command for CyanogenMod 13:
Code:
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
repo sync
When that is finished downloading, you're ready to start compiling ROMs!
Download Builduntu ISO:
Click here for mirrors!
Let me know how it works for you!
Feel free to buy me a Zico (donate) if you like my work. It would be greatly appreciated!
Please hit the "Thanks" button if this project helps you out!​
Code:
[U][B]Changelog:[/B][/U]
v1.0 - First Release Mar 05 2014
v1.1 - Rebuilt from scratch the hard way
v1.2 - 4/20 Release - Update to 14.04 LTS Official
v2.0 - Update to 16.04 LTS with OpenJDK 8 for Android M builds
This is just awesome +1
This is Xubuntu 13.10...
I burned image on DVD using Brasero (ubuntu program) and run installation process from that DVD.
And before the end of installation I got this error:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Of course "buildbuntu" doesn't boot, some errors with reading/writing sda partition.
Luckly I installed it on my test drive so my workspace isn't damaged.
lozohcum said:
This is Xubuntu 13.10...
I burned image on DVD using Brasero (ubuntu program) and run installation process from that DVD.
Click to expand...
Click to collapse
I installed it to a fresh system just fine yesterday, not sure what your issue could be from. Could you post an installation log? Did you verify the md5sum of your downloaded file?
It is in fact Xubuntu 14.04. Canonical hasn't bothered changing the initial splash screen yet because it's still in beta. If you run the Live instance and check the version of ubuntu it correctly identifies as Trusty Tahr.
sylentprofet said:
I installed it to a fresh system just fine yesterday, not sure what your issue could be from. Could you post an installation log? Did you verify the md5sum of your downloaded file?
It is in fact Xubuntu 14.04. Canonical hasn't bothered changing the initial splash screen yet because it's still in beta. If you run the Live instance and check the version of ubuntu it correctly identifies as Trusty Tahr.
Click to expand...
Click to collapse
How to take installation log?
lozohcum said:
How to take installation log?
Click to expand...
Click to collapse
After the error appears it should load you into a live desktop session. The install log will be located there, perhaps in /var/log, /var/log/installer or the guest session home directory. Look around for .log files
edit : delete
I was hoping for a ubuntu base same as your virtual os..xubuntu ui is different and difficult
Ccahe error
Im trying to compile tihe ccache and when i set it up i recieve this error
bash: prebuilts/misc/linux-x86/ccache/ccache: No such file or directory
any ideas on how i can fix this would be appreciated
thanks
perfectpitch said:
Im trying to compile tihe ccache and when i set it up i recieve this error
bash: prebuilts/misc/linux-x86/ccache/ccache: No such file or directory
any ideas on how i can fix this would be appreciated
thanks
Click to expand...
Click to collapse
First, make sure ccache is installed (I'm reasonably sure it is out of the box)
Code:
sudo apt-get install ccache
If that's ok, check this link below and scroll down to Step 4a (optional).
http://forum.xda-developers.com/showthread.php?t=2506695
Ccache is not necessary and not ideal for all systems, so you may just want to disable it in your build process. Hope this helps.
Thanks I'll check it out
Sent from my Nexus 4 using XDA Premium 4 mobile app
so i dual booted ubuntu 13.10 on my laptop... but i couldn't build on it due to some stupidity... anyway, if someone could answer me some questions, maybe I'll uninstall ubuntu and switch to this since it's way easier for me.
1) did anyone successfully dual boot it? even with UEFI on?
2) can we transfer the source codes from an OS to another by packaging them and then extracting them in the new xubuntu? will it work that way?
Sent from my Nexus 4
lozohcum said:
This is Xubuntu 13.10...
I burned image on DVD using Brasero (ubuntu program) and run installation process from that DVD.
And before the end of installation I got this error:
Of course "buildbuntu" doesn't boot, some errors with reading/writing sda partition.
Luckly I installed it on my test drive so my workspace isn't damaged.
Click to expand...
Click to collapse
Hello, have you already solved that problem? Because since hours, even days I try to install builduntu on my notebook, but always got that error too!. I have usb legacy enabled, raid disabled and uefi boot enabled. I have a small ssd and a normal hdd. What am I doing wrong. I cannot get it to work, neither with manual editing the moint points, nor with automatically install through the system.
Many thanks!!
rodman01 said:
Hello, have you already solved that problem? Because since hours, even days I try to install builduntu on my notebook, but always got that error too!. I have usb legacy enabled, raid disabled and uefi boot enabled. I have a small ssd and a normal hdd. What am I doing wrong. I cannot get it to work, neither with manual editing the moint points, nor with automatically install through the system.
Many thanks!!
Click to expand...
Click to collapse
I never received an installation log from anyone so I have no way to start to figure out what went wrong.
It seems like many users have installed successfully, but a few are encountering errors like the one mentioned above.
I don't know how to help you without more information about the problem and your system. It could be a million things with how vague the descriptions are.
rodman01 said:
Hello, have you already solved that problem? Because since hours, even days I try to install builduntu on my notebook, but always got that error too!. I have usb legacy enabled, raid disabled and uefi boot enabled. I have a small ssd and a normal hdd. What am I doing wrong. I cannot get it to work, neither with manual editing the moint points, nor with automatically install through the system.
Many thanks!!
Click to expand...
Click to collapse
I haven't fixed it. I installed xubuntu and ocnfigured it on my own.
I wasted two DVDs for that Builduntu :/
i installed xubuntu today, it boots without a CD (just to confirm it's installed)
inside settings there's a button called "Install RELEASE", should i? i mean... it's already installed :S
Sent from my Nexus 4
sylentprofet said:
I never received an installation log from anyone so I have no way to start to figure out what went wrong.
It seems like many users have installed successfully, but a few are encountering errors like the one mentioned above.
I don't know how to help you without more information about the problem and your system. It could be a million things with how vague the descriptions are.
Click to expand...
Click to collapse
Yes sure can be many things....but here attached are some log files one/two from my try a couple of minutes ago. Problem is, that I already tried so many things and absolutely not sure whether it is my fault, my hardware or perhaps a bad download, in short where I have to look for the solution? Perhaps the log files give some useful information to you :fingers-crossed:
lozohcum said:
I haven't fixed it. I installed xubuntu and ocnfigured it on my own.
I wasted two DVDs for that Builduntu :/
Click to expand...
Click to collapse
Thanks for the info...can you pass me the download link? Haven't found it after a first and quick search ...
Edit: found it in the meantime....
update
In the meantime, I have also downloaded the "pure" Xubuntu and got it installed with the very first try. Exact with the same settings as last tries with builduntu. Dev environment is installed and source codes downloaded. At the moment I am building my first rom with this software. Hopefully it finishes without errors :fingers-crossed: .
i downloaded the sources on a VM, but couldn't make it work on my secondary OS after compression, tranfser, and extraction of the sources...
now redownloading from scratch on a 1Mbps (that's 128KB/s max) speed
Sent from my Nexus 4

[SM-G9750] Random root reboot fix (Snapdragon S10 & S10e probably, too)

WARNING: This won't work currently for the SM-G9730. I need a recovery.img(.lz4) from the latest firmware.
Here's a not-so-widely-tested fix for the spontaneous reboot that occurs after rooting the SM-G9750 and other Snapdragon S10 models.
tulth located this patch. If you read the description of that patch, it mentions a NULL pointer getting dereferenced in find_get_entry (such a thing tends to cause crashes in your average program, so when this happens in the kernel, it's not surprising that a crash and reset is the response). If you look at tulth's last_kmsg, my last_kmsg and G-ThGraf's last_kmsg from a G9730, you'll notice they all have one thing in common: SHTF at smaps_pte_range+0x29c. What's at that location on those devices' kernel? Why it's only find_get_entry(vma->vm_file. So yeah, it's the same bug, already known to Google and it's been fixed in their kernel tree since January. The bug is triggered externally by reading /proc/<pid>/smaps_rollup under certain conditions. You might be able to workaround this by disabling programs to get more free RAM, but The Only Way To Fix the Underlying Kernel Bug Is To Fix the Kernel Itself™.
We're probably not going to see a new kernel update until (if?) we get an update for the next major version of Android. We Snapdragon S10* users already have an older kernel compared to Exynos S10 owners (our 4.14.78 vs. their 4.14.85) and it's probably because of that they don't see this bug. So I think the idea of Samsung fixing this is a non-starter. While I did manage to build an SM-G9750 kernel from source (their instructions leave a lot to be desired) with that patch applied, I could not get my phone to boot the result.
I am not a programmer, but I do know just slightly enough to get the ball rolling and provide the fix that that aforementioned patch does in the opcode form that can be applied onto the existing kernel on the phone.
While I've not half-arsed it in the sense I took the easy way out (always having mss->check_shmem_swap set to zero is an easy one-liner workaround; however, freeing of unneeded SHM pages wouldn't happen, eventually causing your phone to crawl to a halt), I am not familiar with assembly language for any platform at all and, as such, I could not find a way to free up enough space in the show_smap function. So I jump quite far out into a chunk of the .text section where it's full of zeroes. I don't know anything about the ELF format to be able to tell you why this section of zeroes exists - I make the probably-wrong assumption it's perhaps a requirement of the ELF format if a linker that's very good at producing optimised code still bothers to output that or it's optimisation by alignment - but it's there and it's a good place to add extra code to on account of, you know, being empty and marked executable.
As far as I can see, where I have placed the code isn't referenced by anything else at all in the kernel but I can't be 100% certain on that. Nevertheless, I've been testing this on and off (I've had to manually initiate reboots in between for various reasons) myself for the past seven days or so and I've not noticed any adverse effects.
EDIT: Saying that, I think I'll try and move the code into load_module() when I get time because this kernel can't actually load modules (see below) thus much of the code there is pointless.The risk is yours, should you choose to apply this fix.
I would've liked to wrote this as a kernel module, being far easier to maintain, and hooked the relevant smap functions (in a similar vein to flar2's wp_mod and AleksJ's ric_mod) but thanks to the geniuses at Samsung, load_module() will always return early and the compiler accordingly realises it can optimise the function by excising all the code needed to actually load a module - there's no point in keeping unreachable code. Why Samsung bothered turning on mandatory module signing is beyond me because modules will never load! You can see this for yourself: insmod /system/vendor/lib/modules/wil6210.ko will always fail with "Exec format error", and that's a signed module built and shipped by Samsung themselves for their kernel. Anyway.
As long as the kernel version remains the same, it's likely, but not guaranteed, the same patches will work for future software updates from Samsung and all I'll have to do is update the compatibility list. If you try this on any other kernel version, the chances of not being able to boot are very high. The task of maintaining this doesn't enthuse me, but I'll continue to do so out of necessity, for I like having a rooted phone but not one that restarts at the worst of times.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I know people have reported longer uptimes than that on their phone before having a forced restart, but in my case, my phone has AOD enabled, the latest stable Magisk version installed and is running EdXposed. Before this fix, I've never seen an uptime longer than about 16 hours (usually less), regardless of whether the phone was in use or not, as getting multiple restarts in a day tends to have that effect.
As long as you only write to the recovery partition (and that's the only block device that this guide tells you to write to ), you should always be able to use Odin to reflash it to reverse this, the process being somewhat similar to flashing Magisk in the first place but with the notable exception of not needing to factory reset anything. The following flashing routine was adapted from Magisk, so my thanks to topjohnwu.
If someone has the bright idea of sharing their already-patched recovery.img because typing copy and pasting commands is hard, I'll point out the following: anybody flashing such an image should really make sure they're running the same firmware and Magisk version the image was designed for. (And after reading ianmacd's posts, topjohnwu supposedly doesn't like pre-patched images with Magisk being shared. I'll respect that, and so should you.)
I won't take any responsibility if this damages your phone. Perform the following at your own risk. If you agree, then:
If you haven't already, root the phone with Magisk. Make sure to keep a copy of the magisk_patched.tar somewhere on your computer so you can reflash it with ODIN if something goes wrong here. Always make sure Magisk is installed before modifying the recovery partition yourself. If you have a pending software update, install that with Odin and root that first before doing the following.
Set up ADB on your phone and computer
From your computer, adb shell into the phone
Run
Code:
uname -r
Only attempt to apply these patches if you get 4.14.78-16509050 back. For an older version, the bottom of this post has previous patches that may or may not apply. Or just update your phone.
Run
Code:
su
and then
Code:
rm -rf /data/local/tmp/q12kpwrk ; mkdir /data/local/tmp/q12kpwrk && cd /data/local/tmp/q12kpwrk
Run
Code:
mkdir recovery && cd recovery
Find the recovery partition on your phone by running:
Code:
recovery_blk="`readlink -f /dev/block/by-name/recovery`" ; [ -b "$recovery_blk" ] || echo "Eh, something's off here. Don't continue"
Dump it to a file by running:
Code:
dd if="$recovery_blk" of=recovery.img
Extract the kernel by running:
Code:
/data/adb/magisk/magiskboot unpack recovery.img || echo "Stop! Do not continue!"
If you see the warning message again on a new line, then stop.
Otherwise, if all went well with the step above (the message "Kernel is uncompressed or not a supported compressed type!" can be safely disregarded), then note that for any of these patches, if you don't get any matches or get more than one, then do not continue any further. Don't selectively apply any of these patches; it's all or nothing.
Apply the first patch by running:
Code:
/data/adb/magisk/magiskboot hexpatch kernel F7030032895240F9F64F00F9 F7030032FD10F997F64F00F9
Run
Code:
/data/adb/magisk/magiskboot hexpatch kernel 02000014C02E00F9E1630191 02000014ED10F997E1630191
If you have an SM-G9750/Snapdragon S10+: run
Code:
/data/adb/magisk/magiskboot hexpatch kernel F30300AAA1010035F40313AA750640F9890E41F83F7500F103010054AA02098BC10501B0407100D121B83191 F30300AA0D000014895240F9DF420239C0035FD600000000D22E40F94E02008BCE2E00F9C0035FD621B83191
OR if you have an SM-G9730/Snapdragon S10: there is currently no patch. Feel free to send me a recovery.img from the latest firmware and I'll adapt it
OR if you have an SM-G9700/Snapdragon S10e (thanks to Laikar_ for the recovery.img and testing): run
Code:
/data/adb/magisk/magiskboot hexpatch kernel F30300AAA1010035F40313AA750640F9890E41F83F7500F103010054AA02098BA10501D0407100D121B81D91 F30300AA0D000014895240F9DF420239C0035FD600000000D22E40F94E02008BCE2E00F9C0035FD621B81D91
Have the patched kernel placed into a new recovery image, new-boot.img, by running:
Code:
/data/adb/magisk/magiskboot repack recovery.img || echo "Stop! Do not continue!"
Check to see if new-boot.img isn't somehow larger than the recovery partition itself by running
Code:
[ `stat -c '%s' "new-boot.img"` -gt `blockdev --getsize64 "$recovery_blk"` ] && echo "Do not continue!"
Flash the new recovery image by running
Code:
cat new-boot.img /dev/zero >"$recovery_blk" 2>/dev/null
Run
Code:
sync ; sync ; sync ; reboot recovery
If the phone boots again, great! If you're stuck at the Samsung-only logo that fades in and out for many minutes, just restart the phone again whilst holding the recovery button combo to boot into Android with Magisk activated like normal.
You can rm -rf the /data/local/tmp/q12kpwrk folder afterwards to get some space back.
If your phone keeps restarting, or you automatically get put into semi-bootloader flashing mode, hold the bootloader button combo to get to the blue-background downloading mode and reflash magisk_patched.tar (and HOME_CSC) with Odin. If you didn't keep said file or a Magisk-patched recovery.img you can tar up with 7-Zip and get Odin to flash as AP, you'll need to download the latest firmware for your SM-G9750 with Frija or similar, reflash that and then follow the instructions to root your phone again with Magisk.
If you do get a reboot after applying this, looking at /proc/last_kmsg will indicate if it's something to do with this patch or something else entirely.
Q&A:
Q: Will I have to reapply this if I update Magisk from Magisk Manager with a direct install?
A: No.
Q: Will I have to reapply this if I update the phone's firmware?
A: Yes, but check the new kernel's version first and see if it's listed in the compatibility section. If not, then you'll need to wait for an update to this fix. And remember to make sure that Magisk is installed first before modifying the recovery partition yourself.
Q: I don't want to wait hours to see if my phone will restart out of the blue. How can I test for this bug?
A: A variation on the steps to reproduce here, you can do this:
Code:
su
dd if=/data/media/0/AP_G9750ZHU1ASF1_CL16082828_QB24224470_REV00_user_low_ship_MULTI_CERT_meta_OS9.tar.md5 of=/dev/shm # or any very large file (3-4 GB, /dev/urandom might work). This fills up the allocated space for shared memory
cat /proc/*/smaps_rollup
If your kernel isn't patched, restart your phone certainly does. (Of course, you should probably run reboot recovery anyway if not because a full SHM isn't really conducive to a well-running Android session.)
Q: Do you have any other kernel patches?
A: Just the one, only tested on the SM-G9750, and it seems to not be needed at all - it has no bearing on this specific reboot issue anyway. This one disables one aspect of RKP. Again, I don't think this is actually needed on the S10+ , but Magisk still attempts to patch for this issue indiscriminately (probably for the benefit of older devices), although its patch will not apply to our kernel.
Code:
/data/adb/magisk/magiskboot hexpatch kernel 1FA50F7143010054491540B93FA50F71E30000544B0940B97FA50F71830000544A1940B95FA10F7168090054 1FA10F71810A0054491540B93FA10F71200A00544B0940B97FA10F71C00900544A1940B95FA10F7161090054
Q: Are you a dirty GPL violator, qwerty12?
A: No! What I am providing is the compiled form of the patch linked to in the beginning of this thread. If you want to understand what this does in lovely C, just look at that patch. Of course, I have to deal with this on the assembler level, so there is no source per se, just dump all the hex strings into an online disassembler. The first two magiskboot hexpatch invocations replace two existing instructions with jumps into the new code I add. The third hexpatch invocation adds the additional code implementing the patch - the original replaced instruction is executed, along with the code I added to set mss->check_shmem_swap to zero before vma->vm_file is checked for != NULL and for shmem_swapped to be added to mss->swap instead of replacing it.
Patches for older kernels:
4.14.78-16082828:
Use Magisk Manager to install the Busybox Magisk module. No, this is not optional. You can use a version of Busybox from another source, but note that this is the version I have personally tested all this with. Restart your phone anyway if you already have it installed; you want your phone's running state to be as fresh as possible to avoid the possibility of running into this bug while attempting to fix it.
Code:
/data/adb/magisk/magiskboot hexpatch kernel F7030032895240F9F64F00F9 F70300327ED15494F64F00F9
Code:
/data/adb/magisk/magiskboot hexpatch kernel 02000014C02E00F9E1630191 020000146ED15494E1630191
Code:
printf '\x89\x52\x40\xF9\xDF\x42\x02\x39\xC0\x03\x5F\xD6\x00\x00\x00\x00\xD2\x2E\x40\xF9\x4E\x02\x00\x8B\xCE\x2E\x00\xF9\xC0\x03\x5F\xD6' | busybox dd of=kernel bs=1 seek="$((0x017F9AAC + 20))" conv=notrunc
The magiskboot hexpatch equivalent of this was too large, so I settled for writing to a hard coded offset.
I have random reboot... will try this patch tomorrow.
Sent from my SM-G9750 using Tapatalk
Hi... already doing your patches... i thinks succesfully, because i dont have any error, and boot normally after last command.
So.... i have to wait if random reboot appear right ? *to test*
Thank you... will report in about 3 days
Hi,
Vuska said:
So.... i have to wait if random reboot appear right ? *to test*
Click to expand...
Click to collapse
You can run the commands under "Q: I don't want to wait hours to see if my phone will restart out of the blue. How can I test for this bug?" in the first post. If your phone restarts automatically when running cat, then your phone is still susceptible to restarting itself during use.
If it doesn't restart, then you need to run reboot recovery yourself immediately, but it means the fix was successfully applied.
PS D:\S10+\ADB platform-tools> ./adb devices
List of devices attached
R28M31K3DNZ device
PS D:\S10+\ADB platform-tools> ./adb shell
beyond2q:/ $ su
Permission denied
1|beyond2q:/ $
?????
N1ldo said:
PS D:\S10+\ADB platform-tools> ./adb devices
List of devices attached
R28M31K3DNZ device
PS D:\S10+\ADB platform-tools> ./adb shell
beyond2q:/ $ su
Permission denied
1|beyond2q:/ $
?????
Click to expand...
Click to collapse
do you already install busybox via magisk ? also there will be a pop up in your device to request access from computer. accept it
already enable usb debugging in developer menu ?
permission denied .... [emoji848] .. strange... already rooted right ?
Sent from my SM-G9750 using Tapatalk
Vuska said:
do you already install busybox via magisk ? also there will be a pop up in your device to request access from computer. accept it
already enable usb debugging in developer menu ?
permission denied .... [emoji848] .. strange... already rooted right ?
Sent from my SM-G9750 using Tapatalk
Click to expand...
Click to collapse
Yes.
As you can see in the prints below.
i try install another busybox to.
N1ldo said:
beyond2q:/ $ su
Permission denied
1|beyond2q:/ $
?????
Click to expand...
Click to collapse
Check your Magisk settings to see if you haven't turned off ADB superuser access and your apps list for a denied Shell entry.
qwerty12 said:
Check your Magisk settings to see if you haven't turned off ADB superuser access and your apps list for a denied Shell entry.
Click to expand...
Click to collapse
Thank you all ...:good::good:
Yes Shell was unauthorized root on Magisk application list :victory:
3 days now.... i can say it successfully fixed.... [emoji106][emoji106]
Thank you.
hope you will update too when new firmware arrives....
because i dont understand some code mean.... just follow and copy paste
Sent from my SM-G9750 using Tapatalk
*ASG7 firmware is out
I can provide a recovery.img from s10e (smg9700), also any way i can contact you for some help about building the kernel? I have been trying to do with s10e's one and i'm not having much success
FlatOutRU said:
*ASG7 firmware is out
Click to expand...
Click to collapse
Downloading...
is ASG7 can use this patches ?
Sent from my SM-G9750 using Tapatalk
FlatOutRU said:
*ASG7 firmware is out
Click to expand...
Click to collapse
Vuska said:
s ASG7 can use this patches ?
Click to expand...
Click to collapse
I'll download the update later and give it a once-over; however, I'll quote myself:
qwerty12 said:
As long as the kernel version remains the same, it's likely, but not guaranteed, the same patches will work for future software updates from Samsung and all I'll have to do is update the compatibility list.
Click to expand...
Click to collapse
Laikar_ said:
I can provide a recovery.img from s10e (smg9700), also any way i can contact you for some help about building the kernel? I have been trying to do with s10e's one and i'm not having much success
Click to expand...
Click to collapse
That would be appreciated, thanks. I can move the S10e into the "Patch not tested" section of the compatibility list.
I wish you'd have asked me this a few days ago, I deleted the kernel tree I had on my disk because I thought a new source ZIP from Samsung would be forthcoming for the new firmware. I'd've just attached a diff...
I did get the kernel to build but I could not get the result to boot. Some of the compiler warnings displayed during build didn't make it seem like I was going to get a working kernel image. I'll get back to you soon with some steps
qwerty12 said:
That would be appreciated, thanks. I can move the S10e into the "Patch not tested" section of the compatibility list.
I wish you'd have asked me this a few days ago, I deleted the kernel tree I had on my disk because I thought a new source ZIP from Samsung would be forthcoming for the new firmware. I'd've just attached a diff...
I did get the kernel to build but I could not get the result to boot. Some of the compiler warnings displayed during build didn't make it seem like I was going to get a working kernel image. I'll get back to you soon with some steps
Click to expand...
Click to collapse
I can't post links yet, tinyurl(dot)com/y537462u for the drive download link
Does EdXposed work for G9750?
qwerty12 said:
I'll download the update later and give it a once-over; however, I'll quote myself:
Click to expand...
Click to collapse
Its changed a bit
kakahoho said:
Does EdXposed work for G9750?
Click to expand...
Click to collapse
Yes.
FlatOutRU said:
Its changed a bit
Click to expand...
Click to collapse
Good call; there's now code at 0x017F9AAC + 20, probably not a good idea to overwrite that...
I was hoping the newer build date might have meant that Samsung applied the patch, meaning I could abandon this thread, but no such luck: I did the quick writing to /dev/shm test and my phone kernel panicked. Lovely.
I've updated the first thread with an updated patch. I followed through with my plan of moving my extra code into load_module() instead of the empty section of zeros as, thanks to Samsung's kernel developers' ineptness, that function will always fail - may as well make it early return and then use the extra space gained to store my code in.
Laikar_ said:
I can't post links yet, tinyurl(dot)com/y537462u for the drive download link
Click to expand...
Click to collapse
Thanks for the S10e recovery image, Laikar_. I've checked the recovery image's kernel and moved the S10e into the "Patch not tested" section. I'll write up some steps soon on building a kernel that won't boot
Anyway,
The S10 and S10e recovery images are not from ASG7, however, so I don't know if my newer patch applies to it but my old ones do. I think my newer one will do, too, but that's an educated guess.
Just like with the S10, anybody's welcome to try this on their S10e and let me know of the result.
qwerty12 said:
Yes.
Good call; there's now code at 0x017F9AAC + 20, probably not a good idea to overwrite that...
I was hoping the newer build date might have meant that Samsung applied the patch, meaning I could abandon this thread, but no such luck: I did the quick writing to /dev/shm test and my phone kernel panicked. Lovely.
I've updated the first thread with an updated patch. I followed through with my plan of moving my extra code into load_module() instead of the empty section of zeros as, thanks to Samsung's brainiac developers, that function will always fail - may as well make it early return and then use the extra space gained to store my code in.
Thanks for the S10e recovery image, Laikar_. I've checked the recovery image's kernel and moved the S10e into the "Patch not tested" section. I'll write up some steps soon on building a kernel that won't boot
Anyway,
The S10 and S10e recovery images are not from ASG7, however, so I don't know if my newer patch applies to it but my old ones do. I think my newer one will do, too, but that's an educated guess.
Just like with the S10, anybody's welcome to try this on their S10e and let me know of the result.
Click to expand...
Click to collapse
so the first post already update to 050 kernel right ?
mean after i updated my s10+ magisk etc.. i can do that all steps right ?
cool...
still not yet finished my download since yesterday... my internet down.. [emoji2357]
Sent from my SM-G9750 using Tapatalk
Vuska said:
so the first post already update to 050 kernel right ?
mean after i updated my s10+ magisk etc.. i can do that all steps right ?
Click to expand...
Click to collapse
Yep, the first post is updated for ASG7. Those steps are working on my SM-G9750 running it, anyway
Laikar_ said:
[...]any way i can contact you for some help about building the kernel? I have been trying to do with s10e's one and i'm not having much success
Click to expand...
Click to collapse
I'll mention again that I couldn't get the result to boot. If you work it out, please let me know. I hate loading kernel images into a disassembler
I did this on a Ubuntu 18.04.2 minimal installation. I figure that if you want to build a kernel then you, like me, have at least a working familiarity with GNU/Linux, so I won't go too in-depth.
First, install the packages needed to build:
Code:
sudo apt install git-core gnupg flex bison gperf build-essential zip zlib1g-dev libxml2-utils xsltproc unzip python bc libssl-dev
Download the toolchain mentioned in README_kernel.txt:
Code:
git clone --depth=1 https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
Download Snapdragon LLVM Compiler for Android v6.0.9 - Linux64 from https://developer.qualcomm.com/software/snapdragon-llvm-compiler-android/tools and untar it somewhere on your system. (This isn't actually the exact compiler Samsung use - if you look at /proc/version on your phone, you'll see it says 6.0.10 - but this is the closest we mere mortals will get.)
Download the source code zip from Samsung and untar Kernel.tar.gz into a newly-created folder. Inside said folder, run chmod 644 Makefile ; chmod 755 build_kernel.sh.
Open build_kernel.sh in your favourite editor. Make the following changes:
Set BUILD_CROSS_COMPILE to the folder where aarch64-linux-android-gcc, aarch64-linux-android-ld etc. are after cloning from git. Make sure to leave the aarch64-linux-android- suffix at the end. For me, this line looks like this:
Code:
BUILD_CROSS_COMPILE=/home/fp/x/aarch64-linux-android-4.9/bin/aarch64-linux-android-
KERNEL_LLVM_BIN needs to be set to the location of the Clang binary downloaded from Qualcomm. For me, this line looks like this:
Code:
KERNEL_LLVM_BIN=/home/fp/x/93270/toolchains/llvm-Snapdragon_LLVM_for_Android_6.0/prebuilt/linux-x86_64/bin/clang
After both REAL_CC=$KERNEL_LLVM_BIN instances add
Code:
CFP_CC=$KERNEL_LLVM_BIN
(although I think this is the wrong way to do it, consider just disabling CONFIG_RKP_CFP)
Open the Makefile in your favourite editor. Find the following line
Code:
@echo Cannot use CONFIG_CC_STACKPROTECTOR_$(stackp-name): \
$(stackp-flag) not supported by compiler >&2 && exit 1
Remove the "&& exit 1". The proper way to fix this would be to set CONFIG_CC_STACKPROTECTOR_STRONG to n in the config file; however if you run clang --help, you'll see that -fstack-protector-strong is actually supported. Why turn off a useful security feature?
Run build_kernel.sh and the kernel should build (albeit with a metric crap-ton of warnings, which is just one reason why it's not surprising the resulting kernel won't boot)

Categories

Resources