[DevTOOL][2012-10-01] Fast AAPT (#2) - Speed up Eclipse/apktool/etc - Android Software/Hacking General [Developers Only]

Presenting: Fast AAPT - aka FAAPT
Lately Android development has been getting me down. Slow builds all over the place in many of my app projects, and my PC is blazing fast - it shouldn't all be that slow, even if you're running Eclipse!
Working on DSLR Controller has been driving me mad - testing a minor change in the underlying communications library, then building and launching the app - ugh! So I set out to fix this. I had done all the usual tricks, even gave Eclipse loads more memory (helped with regular performance, but not building) but nothing major seemed to change. Then I figured out most of the time building was spent in AAPT. So I synced my AOSP repo (2012.09.26, took a few minutes), tried to get the Windows SDK to build on my Linux box (took several hours) and finally got to actually mucking with the source.
Found the bottleneck (for my long-build-time projects at least, related to XML file compilation) and fixed it (by introducing a simple cache). "DLSR Controller" build time has gone down from 35 seconds minimum, to 2-3 seconds ( >10 times faster). Hell, I can even turn "Build Automatically" back on without getting constant delays!
Note that my build times quoted only apply to incremental internal builds. If your images still need to be "crushed" (optimized), or you're "exporting" an APK (final build for publication), build time will still be significantly longer. However, during normal development and testing (by far most builds if you're making an app in Eclipse) those stages are not performed, and builds should be lightning fast.
"Fixed" is a big word though, right now it's more of a "hack", and it needs some pollish, so the patch can be submitted to AOSP. I don't want to keep it from you for that long, so my first test build is attached - don't use it in production builds..
Patch code has been submitted to:
AOSP - #1 Cancelled, #2 Review in Progress ... superseded by ctate rewrite
AOKP - #1 Merged, #2 Merged
CM - #1 Cancelled, #2 Merged
Attached ZIP includes Linux, Windows and Mac OS X versions.
The files are drop-in replacement, but I would certainly advise you to backup the originals for your production builds! Also, don't forget to chmod/chown on Linux or it won't work.
Enjoy and leave some feedback
Will this help your project build ?
A quick way to spot if this will have effect on your slow build is as follows:
- In Eclipse, set Build output to Verbose under Window -> Preferences -> Android -> Build.
- Clean and build your project.
- If the build pauses on lines in the "(new resource id <filename> from <filename>)" format, you have the problem FAAPT fixes
(of course, you can also run aapt manually if you know how, you'll get the same output)
In a full framework build the optimizations only affect a very small portion of the actions done during the build, so you won't see any spectaculair speed increases there.
Update (#2)
I have updated the patch code to fix problems with Mac OS X compatibility, I've also included a Mac OS X binary in the new zip file.
-----
( v1: 557 )

So that's what's been killing the speed of my eclipse then. It froze so often I had to switch to AIDE on my phone. Hopefully this'll speed it up a little
Sent from my Galaxy Nexus using Tapatalk 2

Awesome work Chainfire, will play around with this in a few

Thanks brother, gonna give it a try right now on Linux
EDIT:
It works. Gave it three tries. Went consistently around 19.1 sec with FAAPT and 33.9 sec with regular AAPT. This is on the Linux version. Good job

Amazing work. Handles large resources like framework-res a lot faster.

wildstang83 said:
Thanks brother, gonna give it a try right now on Linux
EDIT:
It works. Gave it three tries. Went consistently around 19.1 sec with FAAPT and 33.9 sec with regular AAPT. This is on the Linux version. Good job
Click to expand...
Click to collapse
Glad to hear the Linux version also works! Too bad your increase is not as much as mine, but I guess it depends heavily on the amount and type of assets in your project.

Chainfire said:
Glad to hear the Linux version also works! Too bad your increase is not as much as mine, but I guess it depends heavily on the amount and type of assets in your project.
Click to expand...
Click to collapse
I tested on a theme project of mine, so its heavy in img files. Thats probably why. I'm not complaining one bit. Absolutely love it and can't wait to try it out on my other apps

Chainfire said:
Glad to hear the Linux version also works! Too bad your increase is not as much as mine, but I guess it depends heavily on the amount and type of assets in your project.
Click to expand...
Click to collapse
Indeed, tested the Windows version and yes it gives a very good result with a amount of assets, i got 7 time faster than the normal one on Eclipse, too bad we can't use it for production, we need one for Apktool .

wanam said:
Indeed, tested the Windows version and yes it gives a very good result with a amount of assets, i got 7 time faster than the normal one on Eclipse, too bad we can't use it for production, we need one for Apktool .
Click to expand...
Click to collapse
Actually, I was using it with APKTool.

Thanks CF.
Decompiling recompiling now is so fast

apktool and Maps.apk on Linux.
aapt - 29.2s to compile
faapt - 2.2s to compile
Amazing job, Chainfire!

Tested both in linux and winz....
It works great!
Untested time but noticeble faster.
What's the next step after elite rec dev for chainfire?

Thanks for the great work!
Could you post your tweaked source file(s)?
Would like to compile from source for OS X..

On my projects I see anywhere from 5 to 20x speed increase on build. Thank you for this magic.
I don't get how the google android SDK team did not optimize this (I know they done some crazy optimizations for different stuff).

Yeah, could you post your patch?

berdon said:
Yeah, could you post your patch?
Click to expand...
Click to collapse
He did say in the OP. He had to clean it up for AOSP inclusion, so just wait till you see it on Gerrit
Sent from MIUIAndroid Phone.

That is good stuff. It's gonna save me a whole lot of time. The thanks button was just not enough to thank you!

Thanks for the great work Chainfire.

Whoa! Now I will surely stop cursing while waiting for xenoAmp tu build (just not enough time to say "kurwa!")! Thank you!

I'am using ArchLinux x64 as my normal desktop OS. (Yes, I don't have Windows.) and tried it with Eclipse, but it don't work.

Related

[APP] [14-Feb-2011 @ 1.14] Universal ROM Updater (yeah, it's free!)

ROM modders/developers!
I'm the developer behind ROM Updater. It's meant to be an universal ROM updater (which means, it doesn't really care if you're on CyanogenMod or you're on the "whitelist"-free of ROM Manager). There is even a PHP script (on the website) which will automatically create incremental updates, cool feature of my app which lets both you and users save a lot of bandwidth. Please consider "adopting" it, it's free ^^
elegos said:
ROM modders/developers!
I'm the developer behind ROM Updater. It's meant to be an universal ROM updater (which means, it doesn't really care if you're on CyanogenMod or you're on the "whitelist"-free of ROM Manager). There is even a PHP script (on the website) which will automatically create incremental updates, cool feature of my app which lets both you and users save a lot of bandwidth. Please consider "adopting" it, it's free ^^
Click to expand...
Click to collapse
Nice work Elegos
Fantastic, consider me a supporter.
I think u have delivered it pretty well
Update: I've released incremental.jar and relative sources. Go to the website and check
New in version 1.8 (from version 1.7):
- Tried to fix a Null exception error, received via Market (thanks for reporting!) (please test)
- Added incremental.php and incremental.jar (plus sources) in the git repository to easily create incremental updates
- Moved common variables in a singleton (SharedData class) and more comments for easier understanding of the code and less variables around
PLEASE NOTE:
You don't have to mess up with the ROM name anymore, the program will check for the ro.build.display.id (MOD name) and ro.build.version.incremental (!!!INTEGER!!! version number), as well as ro.product.model (for future releases, in our case be sure is "Nexus One"). The repository main.json file has a new variable, "model" which is, indeed, the same of ro.product.model. Future versions of the app will make impossible to download updates not for your phone.
DEVELOPERS:
You have no excuses now ! I've talked with some other modders who say, for example, their updates are changing rather all the files, and I say you it's not true. Making some tests I saw that using incremental updates make the update 50~75% smaller, even with MIUI weekly releases. This means "bye bye" to the bandwidth problems, both for hosters and users.
Just added your page as my favorite. Will study and use it later, hehe ,need some time to know about it~~~~
So how do I set up repository for. CM7 nightlies? Do I have to enter it manually?
Sent from my Nexus One using XDA App
I'll give it a go. I have been using ROM Manager and it works very well but I was getting concerned with the bandwidth used for the CM7 nighties.
This does support CM7 nighties right?
Also, what about getting notifications when there is a new build for ClockworkMod Recovery and backup/restore options for ROMs that I keep on my phone?
Wow, as a themer, I would have to say that the idea behind this is amazing. I would love to see it adopted by everyone. I would like to be able to see what exactly has changed between updates, it would save me a lot of time personally. I commend you for your work on this. Woot
@apratomo: you need someone who sets up a CM7 nightly repo. I can't, as it would mean I should support every ROM out there, and my bandwidth is limited (I can host one ROM if you want, not 1000 ). By the way you should edit the build.prop file in order to edit the incremental value and make sure the ROM name is allways the same (display.id).
@pfran42: it supports any ROM you want, this is why I made it
It actually don't check for new recovery images, as it relies on external repositories only, I may create a different application for that though. As of backup/restore, it currently has an option to backup the current ROM wherever you want (see options). When I discover how to restore a nandroid backup via command line, I'll add that feature too.
This is a great idea, however adoption may be slow. Even though its an AWESOME idea, it may be a good idea for you host a popular ROM elegos to get the ball rolling. I'd hate to see this die...
Ok so I have to launch a poll. Problem is that:
1. In the generic Android Development forums (where this really thread should stay) is overcrowed with posts, most of them are just publicity for apps on the market.
2. I'd love to have the attention of all the android people to partecipate to the poll. Of course I MAY create a CM7 nightly repo, but it would mean daily work for me (and a lot of space on my host).
I'm working on a system that should keep a list of repositories automatically updated every time you download a ROM with the app (accepting to send anonymous data). It's ready in the git repository, I'm waiting to push it live 'cause I want to create an interface to grab that data too (a sort of list ordered by phone model).
I think that just for starting I'd love to host a Nexus One Gingerbread AOSP, just like MicroMod777's one (TBH I already have that repo online, but it's frozen at version 20 as MicroMod is focusing on CM 7 custom builds, which I dislike for its too many customizations (both CM itself and MicroMod's)). Alternatively an AOSP 2.3 with no apparent changes (i.e. maybe CM with standard launcher). Any idea?
Sometimes you just have to prove how good your ideas are, because people are lazy... good luck my friend.
Sounds interesting.
I'm going to release a "major" update: all the times a user downloads a ROM and accepted to send anonymous data, the repository, ROM name & version and phone model will be sent to a database, which will return back a list of repositories directly in the settings menu!
I've released version 1.9 and made a Enomther Nexus One repository. Enjoy!
Version 1.9.1
- Fixed an untranslated italian string
- Fixed the import of a repository URL via the repositories list (new line at end of repository)
- Made the application more solid when there are connectivity problems / no internet available (no crash anymore)
awesome work!!
have tagged the link shall go thru it...gr8 job elegos ..!! ..PeacE
Awesome ^-^

[GB DEVICE TREE] HeroC Device Tree for Gingerbread

I have posted a device tree for Gingerbread for the HeroC. This has not had a lot of mileage, so don't expect that it will be at the level of AOSPs builds, but is a starting point for those who would like to build their own GB Roms.
Credit for this should go to those who did the REAL work, such as AOSP, Lox, Elemag, Darchstar, Cyanogen, and a host of others.
My contribution was just the assembly and cleanup of the existing efforts of others.
Still plenty of issues that need working on, and not sure how much time I will have to devote to moving this forward. I have tried to make it fairly self contained, with enough information to get folks started. I will not be able to provide much support, but I am making it available in the event that it is of interest.
Special thanks to AOSP for a working ROM to look at and learn from, and appreciation for some files and info that I shamelessly kanged from his build. Also thanks to Lox and Elemag for their hero device tree which also provided some significant pieces of the puzzle.
Good luck, thanks for the community, and please continue to help each other.
You can get the device tree from github by:
git clone git://github.com/wjb/android_device_htc_heroc_gb.git
README
Basic steps to build:
1 - Get local copy of CM7 repository
2 - Get copy of the device tree into device/htc/heroc
3 - Copy modified files from 'device/htc/heroc/buildmods' to proper directories:
a) definitions.mk into 'build/core' (Temporary fix for boot.img size issue)
b) vendorsetup.sh into 'vendor/cyanogen' (Add lunch combo)
c) prelink-linux-arm-heroc.map into 'vendor/cyanogen' (Map library locations)
d) AndroidProducts.mk into 'vendor/cyanogen/products' (Add cyanogen_heroc product)
e) cyanogen_heroc.mk into 'vendor/cyanogen/products' (Add cyanogen_heroc makefile)​4 - Run get-rommanager in vendor/cyanogen directory
5 - Get proprietary files into 'vendor/htc/heroc/proprietary'
a) Put ROM (update.zip) in repo root and run 'unzip-files.sh' from the 'device/htc/heroc' directory
b) Use 'adb' to pull files from usb connected device by running 'extract-files.sh'
c) Copy files from expanded system directory on your local machine by running 'copy-files.sh'
d) Copy files from 'device/htc/heroc/proprietary' directory (also needs 'setup-makefiles.sh')​6 - Setup build environment by sourcing envsetup file '. build/envsetup.sh'
7 - Run 'lunch' to select the build target 'lunch cyanogen_heroc-eng'
8 - Build the system with make, mka, etc.
Save for Updates
gingerbread futures
downloading does it compile witch working cam sensors etc.
aaronpoweruser said:
downloading does it compile witch working cam sensors etc.
Click to expand...
Click to collapse
It does compile and build a working ROM, including camera, gps, compass, wifi, etc.
If you have built other ROMS, this should be very straightforward. If not, follow standard guides for setting up and configuring your build environment.
Whoa jaybob, you're working on GB now?
Oh hell yes. Your updating of themes made CM6 the Goliath(sp?) I loved.
Welcome from the coldness that is frozen yogurt, and into the warmth of gingerbread.
Wait, let me clarify here, jaybob, are you going to put out new builds of CM7 as it comes out, in the same way you were before? I found yours to be of far higher quality than the nightly/stable releases.
Repo Update
Updated the repo to eliminate conflicts with 'lunch' for makefiles included in the buildmods directory.
Also added the quick and dirty 'install-buildmods.sh' script to copy the files from buildmods to the appropriate directories. Executing this script from the buildmods directory takes care of the copy actions indicated in step 3.
LiquidSolstice said:
Wait, let me clarify here, jaybob, are you going to put out new builds of CM7 as it comes out, in the same way you were before? I found yours to be of far higher quality than the nightly/stable releases.
Click to expand...
Click to collapse
ATM, I am just working on getting an environment that will let me build from source as it continues to develop. Without a device tree that works, there was not much I could do.
As things progress, I may put out CM7 builds, but I am still a ways from that point. I am starting to look at the TMO Theme Chooser approach to building installable themes. This would produce themes that are independent of the ROM, which would probably end up being a lot easier than the 5 separate builds that I produced for CM6.
I have only been playing with this for a couple days so far. Fortunately, there was a lot of other development efforts to leverage. I will continue to move this forward as my time and interest allows.
jaybob413 said:
ATM, I am just working on getting an environment that will let me build from source as it continues to develop. Without a device tree that works, there was not much I could do.
As things progress, I may put out CM7 builds, but I am still a ways from that point. I am starting to look at the TMO Theme Chooser approach to building installable themes. This would produce themes that are independent of the ROM, which would probably end up being a lot easier than the 5 separate builds that I produced for CM6.
I have only been playing with this for a couple days so far. Fortunately, there was a lot of other development efforts to leverage. I will continue to move this forward as my time and interest allows.
Click to expand...
Click to collapse
Awesome, really liked your past work.
jaybob413 said:
ATM, I am just working on getting an environment that will let me build from source as it continues to develop. Without a device tree that works, there was not much I could do.
As things progress, I may put out CM7 builds, but I am still a ways from that point. I am starting to look at the TMO Theme Chooser approach to building installable themes. This would produce themes that are independent of the ROM, which would probably end up being a lot easier than the 5 separate builds that I produced for CM6.
I have only been playing with this for a couple days so far. Fortunately, there was a lot of other development efforts to leverage. I will continue to move this forward as my time and interest allows.
Click to expand...
Click to collapse
Take your time. The work you do is quality stuff.
Thanks for this! Worked great, once I actually read the "also needs 'setup-makefiles.sh'" part and ran it. For whatever reason Gallery3D didn't get built, but I just downloaded it from the market. Everything else works as expected!
Worked great! Thanks for your efforts.
Sent from my HERO200 using XDA App
Repo Update
Updated kernel, wlan.ko, and additional loadable kernel modules after kernel rebuild to add scaling_available_frequencies virtual file needed by CPU settings.
Added libspeech.so to proprietaries, and minor build config changes.

Quake 2 on Windows RT

Only created my account today, so I don't have enough posts to put this in the developer section. Maybe someone can help me out.
I managed to get the Quake2 source from Ids ftp server to build (with a lot of warnings) for ARM in Visual Studio 2012.
I've attached a screen shot and the binaries to this post.
All you need to do is drop the pak0.pak and players folder into baseq2.
Enjoy!
EDIT: should also mention that this is a native port (not .net or winrt) -- props to XDA guys for the hack!
EDIT2: for those with errors, keep in mind you need the pak files and players folder from the quake2 install for this to work (or you can grab them from the demo). Google is your friend! . If you encounter the famous "water crash" then run "sw_waterwarp 0" in the quake console.
EDIT3: For a joke. I've added the OpenGL Quake2 renderer and a software based OpenGL implementation (built from an older version of Mesa3D) as attachments. Given that Windows RT doesn't have support for OpenGL this is probably as good as its going to get without a port that has Direct3D support. While the OpenGL version looks much better, be warned.. it runs __very__ slow. If you want to give it a try, just go into video options and change the 'driver' option to "default opengl". Enjoy!
EDIT4: So.. in an effort to clean up some of the bugs, I stumbled upon KMQuakeII which has an 'unofficial' 3.23 patch for the Quake 2 source. I've managed to compile that version of the source for ARM. I was hoping this would fix the full screen issues, but it didn't. Regardless, there are probably worthwhile bug fixes anyway.. so I'm posting it here. There are also extra video modes in this version (very easy to add btw!) however the 1366x768 mode didn't work correctly on my Surface.
Well done! Link added to the list. Much appreciated...
bfosterjr said:
Only created my account today, so I don't have enough posts to put this in the developer section. Maybe someone can help me out.
I managed to get the Quake2 source from Ids ftp server to build (with a lot of warnings) for ARM in Visual Studio 2012.
I've attached a screen shot and the binaries to this post.
All you need to do is drop the pak0.pak and players folder into baseq2.
Enjoy!
EDIT: should also mention that this is a native port (not .net or winrt) -- props to XDA guys for the hack!
Click to expand...
Click to collapse
cool, seems to run nicely, -just using one core.
At first : Thanks for the work!
But i get an Error :"Couldn't load pics/colormap.pcx
(on Surface Jailbrocken)
I can't manage to open it. It says there is an error.
Another question... I want to do it for Bluestacks. Do you know anyone that could've done this? Thank you.
save_jeff said:
At first : Thanks for the work!
But i get an Error :"Couldn't load pics/colormap.pcx
(on Surface Jailbrocken)
Click to expand...
Click to collapse
Make sure you have the pak files and players folder from your quake2 install in the baseq2 folder. If you don't own quake2 then you can grab these files from the quake2 demo install (google for it). Good luck!
Awesome job!
I got mine working smoothly
There is some issues that often when I load saves the game crashed (quake2.exe has stopped working)
I have no idea. Save game works perfectly and start new game works as well.
Looks like this guy back in 2005 have the same problem (except he is using... Amiga?): ht tp://eab.abime.net/showthread.php?t=17808
Tanks i did not know that ;]
I Will get a Demo right now ans try ist.
Does it work with any Version of quake II ?
---------- Post added at 10:54 PM ---------- Previous post was at 10:29 PM ----------
Okay now it works like a charm! Realy impressiv
shog7n said:
Awesome job!
I got mine working smoothly
There is some issues that often when I load saves the game crashed (quake2.exe has stopped working)
I have no idea. Save game works perfectly and start new game works as well.
Looks like this guy back in 2005 have the same problem (except he is using... Amiga?): ht tp://eab.abime.net/showthread.php?t=17808
Click to expand...
Click to collapse
Yeah, there could be several bugs in it. This is built straight from iD's source. There are many other 'ports' of quake2 that have encountered and (in some cases) fixed various bugs. Still, its extremely playable even with a few annoying bugs!
I cant get mine to go to full screen.... is this usual behaviour?
advancedservers said:
I cant get mine to go to full screen.... is this usual behaviour?
Click to expand...
Click to collapse
Yep. The pure Quake2 source has known issues with full screen on "odd" resolutions. Given the time frame for when Quake2 was developed.. the 1366 x 786 resolution that is common today doesn't make any sense that's why its "not supported". There were some unofficial patches added to Quake2 many years ago to add wide screen support and more resolutions. A lot of people also fixed the problem by just using the OpenGL version (which I could also provide binaries for.. but its _dog_ slow). What I've ported here is the 'software render' which got very little attention once the '3d boom' hit. If I get bored, I may see if I can get full screen working in the software renderer.
Joystick or Xbox Controller?
App is cool and runs well with mouse or keyboard but I have tried joystick and Xbox controller (both recognised by WinRT) and app ignores both. I have turned on Joystick under options.
I didnt get any bugs yet.
But Fullscreen would be nice
Woww this game bring me so many good memories nice work!!!
advancedservers said:
I cant get mine to go to full screen.... is this usual behaviour?
Click to expand...
Click to collapse
Same here. 800x600 is the best resolution to me..
Btw can you load your saves after close the game and restart it?
For what its worth, I've updated the original post with 'newer' binaries and software based OpenGL support. The fullscreen thing is also bothering me so I'll put some effort into that over the next couple days -- hopefully its been fixed in a different Quake2 port and I just need to migrate the code over. Cheers!
If you don't mind me asking where did you get the source files from? I would have done this two days ago but I couldn't open the project files from id's github. I then tried quake 3 and doom 3 but getting those working is a different problem entirely. Those games have inline assembly in them that I don't have the skill to replace.
johnnyfives12 said:
If you don't mind me asking where did you get the source files from? I would have done this two days ago but I couldn't open the project files from id's github. I then tried quake 3 and doom 3 but getting those working is a different problem entirely. Those games have inline assembly in them that I don't have the skill to replace.
Click to expand...
Click to collapse
The source came straight from ftp.idsoftware.com. There is a lot of pain in getting a working vs2012 solution file and convincing the source that Win32 does not imply x86! Many issues with libs and older CRT functions too. Just takes time, patience and good experience with VS & C code.
You're absolutely right about Q3 or Doom3. They will require an overhaul and will need to be ported to Direct3D10+. Sadly I don't have the spare time to get _that_ involved -- though I'm happy to help if someone wants to lead the charge.
Cheers
Game crashes sometimes when I try to load a saved game. Also performance is far from what I expected. I remember playing it on my Nokia n95 with software renderer and it was fluid, on surface higher resolutions cause serious performance degradation. The more I use desktop apps ported to Windows RT(quake, dosbox) the more I think that tegra 3 suck.
bartekxyz said:
Game crashes sometimes when I try to load a saved game. Also performance is far from what I expected. I remember playing it on my Nokia n95 with software renderer and it was fluid, on surface higher resolutions cause serious performance degradation. The more I use desktop apps ported to Windows RT(quake, dosbox) the more I think that tegra 3 suck.
Click to expand...
Click to collapse
Same loading problem here...
But it runs pretty fluid on my Surface...

[APP][4.0+][Snapdragon][CAF]Code Aurora SWE Browser (Unofficial)(Stock)(Adblock)

This is the fully stock and unchanged Code Aurora Snapdragon Optimized Browser version m60. Everything is open source and I will also answer any questions how I built this APK. I am just a lone wolf with a Ubuntu 14.04 machine and Linux has been my hobby. I am NOT a full fledged developer but I know enough to build source and I am happy to share this here at XDA and help out.
I will gladly have this thread locked if anyone can point me to a vanilla and unchanged CAF Snapdragon Optimized Browser. Why Code Aurora does not build and make available this awesome browser is beyond me. I searched https://codeaurora.org and they do not offer their SWE Browser APK! I've searched here at XDA and elsewhere and most of those offering CAF browsers are not sharing their source code and/or are making changes or adding patches to the original source.
Before I begin, I'd first like to thank Code Aurora for their source code and this guide by ZeroX7C and gwinlord for his guide. I did NONE of the hard work at all. Those who I cited deserve all the thanks for their work. All I did was piece it together, strip out any changes that are non-CAF, build it, and offer it here. You may not donate any money to me as I feel I have done nothing to deserve it.
Just as ZeroX7C says, the documentation on how to build this browser is incomplete. It took me several hours and many curse words to finally get this browser to build. ZeroX7C's guide is also incomplete and gwinlords guide makes changes and adds patches to the original source so here I will help to complete the guide for an original unmodified CAF browser that ZeroX7C started.
Below is a guide to build your own Code Aurora Snapdragon Optimized Browser version m60:
Requirements:
Ubuntu 64 bit, preferabely 12.04 or 14.04
8GB RAM, 8GB Swap, 100GB Free Space
1) First, run
Code:
sudo apt-get update
2) Set up your build machine by following the Code Aurora Build Machine Requirements Guide. There will be an error about depot_tools using a deprecated URL. Allow the setup to install newer versions of depot_tools from Google. Do not install the Oracle JDK. Code Aurora uses OpenJDK 8 in build m60 and not Oracles JDK. Run the following code if your machine does not have OpenJDK 8 installed.
Code:
sudo apt-get -y install openjdk-8-jre openjdk-8-jdk
3) Create the .gclient file in the same directory where you git cloned depot_tools and build dependencies. Add the following code to .gclient
Code:
solutions = [
{ "name" : "src",
"url" : "git://codeaurora.org/quic/chrome4sdp/chromium/[email protected]/remotes/origin/m60",
"deps_file" : "DEPS",
"managed" : False,
"safesync_url": "",
},
]
target_os = ["android"]
4) Change directory to src, run
Code:
cd src
git clean -f -d
git reset --hard HEAD
GYP_CHROMIUM_NO_ACTION=1 gclient sync -v -r refs/remotes/origin/m58
./build/install-build-deps-android.sh
. build/android/envsetup.sh
GYP_CHROMIUM_NO_ACTION=1 gclient runhooks -v
GYP_CHROMIUM_NO_ACTION=1 gn gen out/Default --args='target_os="android" symbol_level=0 is_debug=false optimize_for_size=false remove_webcore_debug_symbols=true proprietary_codecs=true'
5) Add adblocking. Credit goes to AdAway, Adblockplus, ublock origin, and adguard for their recommended adblocking host files and @ArslanTheGreat for all the help.
Code:
nano chrome/java/res/raw/web_refiner_conf
Modify the code in web_refiner_conf to,
Code:
{
"version": "1.0",
"update": {},
"subscriptions": [
{
"name" : "Adaway",
"category" : "Hosts",
"format" : "WebRefiner 1.0",
"url" : "https://adaway.org/hosts.txt",
"expiration" : "5 days"
},
{
"name" : "hpHosts’ Ad and tracking servers",
"category" : "Hosts",
"format" : "WebRefiner 1.0",
"url" : "https://hosts-file.net/ad_servers.txt",
"expiration" : "5 days"
},
{
"name" : "Peter Lowe’s hosts file",
"category" : "Hosts",
"format" : "WebRefiner 1.0",
"url" : "https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext",
"expiration" : "5 days"
}
]
}
6) To apply all the modifications all at once, download the attached patch and apply using
Code:
git apply swebld58ver0004.patch
7) (a.) Optional: If you want to create logs of the build for error checking, then
Code:
mkdir logs
nano build/makeswebrowser.sh
and add the following code
Code:
#1/bin/bash
set -e
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>logs/swebuild.log 2>&1
time ninja -C out/Default swe_browser_apk
then run,
Code:
chmod +x build/makeswebrowser.sh
build/makeswebrowser.sh
Logs will be in src/logs/swebuild.log
(b.) OR, if you just want to skip making logs, simply run
Code:
ninja -C out/Default swe_browser_apk
*Changelog*
Why build another CAF browser?
I am building this because I wanted a nicely developed and secure open source browser for my own personal use and for my family. I appreciate the offerings on f-droid and the open source chromium build, but I wanted the snapdragon optimized version and there is none to be found that are entirely open source and not making changes to the original Code Aurora source code! I am also somewhat concerned that some of the browsers on F-Droid may possibly have security vulnerabilities despite their respective developers best intentions.
Is this browser fast?
Yes! After optimizations posted in the build guide, the SWE Browser is faster than Chrome in every which way.
Will you be keeping this browser up to date?
Well, I do plan on keeping this up to date as long as there is no official Code Aurora browser being published. Would someone please complain to Code Aurora and ask why they are not building it and publishing it? My Ubuntu 14.04 machine runs all day and while I'm gone at work, why not have it build this browser and other things I'd like to have?
Will you add new features to this browser?
No, I will not. I plan on keeping these builds completely stock as it would come from Code Aurora themselves. There are however hidden features that may be enabled. I am looking into it.
I have a bug, can you fix it?
No I will not fix it. This is a beta build, m55. It probably does have some bugs! If there is a problem with the build, it's up to Code Aurora to fix and not me.
Hey, want to try a new compiler to optimize this build?
Sure! Or if you happen to know of other ways we can compile SWE_Browser and have suggestions for other compilers or libraries we can use to tune this build, please post them here! Let's gather a master list of ways we can all compile this APK ourselves!
*edit 12/23/2016*
After careful consideration, I decided not to try new compilers. I decided I am going to follow Code Aurora's build environment exactly as recommended on their own website. After all, I think they probably know what's best for their own software they created.
Can I post benchmarks in this thread?
Sure, please do! I ran several benchmarks and they are all over the place. The SWE Browser is faster than Chrome but runs about the same speed as other CAF based browsers.
If you have any suggestions at all about the browser or the build environment, please post!
--Helpful References--
https://github.com/scweeny/CAF/
https://forum.xda-developers.com/general/general/guide-building-chromium-snapdragon-t3255475
https://github.com/gwindlord/caf_chromium_build
https://source.codeaurora.org/quic/chrome4sdp/
Import Bookmarks from Chrome
Fix AMP pages
Thank you for the guide and i'm looking forward to the complete version, i been missing with this for pass few day and i still cant figure it out, also could you include how to customize it to add google sync and patches and stuff.
hello,
does it support cm 11?
TheUser123 said:
Thank you for the guide and i'm looking forward to the complete version, i been missing with this for pass few day and i still cant figure it out, also could you include how to customize it to add google sync and patches and stuff.
Click to expand...
Click to collapse
I just now updated the guide, see above. I am sorry, I don't plan on adding any patches at the moment. You can check gwinlords guide linked above. In it, there are several patches that can be added.
arjuntsgowda said:
hello,
does it support cm 11?
Click to expand...
Click to collapse
I'm sorry, it does not. The browser will only run on LP or MM based OS's at this time. I updated the title of this thread to reflect that.
Everyone who uses SWE Browser should always get the latest version. I notice people are still downloading the first build but I encountered several errors during that build. I've gotten much better at setting up the environment since then. I've noticed benchmark improvement on the latest build too, just sayin!
Why is Web Refiner not part of this build? Otherwise the browser is running fine and is pretty fast even compared to other CAF browsers, good job OP.
10goto10 said:
Why is Web Refiner not part of this build? Otherwise the browser is running fine and is pretty fast even compared to other CAF browsers, good job OP.
Click to expand...
Click to collapse
Web refiner must not be part of Code Aurora's m55 build. Is it part of other Code Aurora's builds? The SWE Browser is built exactly as recommended per their own sync and build instructions. I can't even use the Qualcomm LLVM even if I wanted to because m55 uses a newer toolchain.
I agree, the browser is pretty fast especially the last build. This is the only browser I use now. I compiled SWE browser last Saturday and the version number did not increment so I did not upload it in case anyone was wondering.
mattnin said:
Web refiner must not be part of Code Aurora's m55 build. Is it part of other Code Aurora's builds? The SWE Browser is built exactly as recommended per their own sync and build instructions. I can't even use the Qualcomm LLVM even if I wanted to because m55 uses a newer toolchain.
I agree, the browser is pretty fast especially the last build. This is the only browser I use now. I compiled SWE browser last Saturday and the version number did not increment so I did not upload it in case anyone was wondering.
Click to expand...
Click to collapse
Yes, I think. It's included in some custom builds: YuBrowser (m54, customized by the Mokee team) and TugaPower Browser (m54, m55, and m56). I like to browse the web without ads
I'm not a dev myself, but maybe these links can help you:
https://wiki.codeaurora.org/xwiki/bin/Chromium+for+Snapdragon/Customization+for+M42
https://source.codeaurora.org/quic/...5&id=950ba75f9296bfe4318ac39ff966cc2e48512ff5
10goto10 said:
Yes, I think. It's included in some custom builds: YuBrowser (m54, customized by the Mokee team) and TugaPower Browser (m54, m55, and m56). I like to browse the web without ads
I'm not a dev myself, but maybe these links can help you:
https://wiki.codeaurora.org/xwiki/bin/Chromium+for+Snapdragon/Customization+for+M42
https://source.codeaurora.org/quic/...5&id=950ba75f9296bfe4318ac39ff966cc2e48512ff5
Click to expand...
Click to collapse
Interesting. Looks like I should be able to enable this feature by including a proper configuration. Thanks for heads up! Once I have that completed, I'll update the download and the guide. :good:
Thanks again @10goto10 for the heads up on web refiner. It's working perfectly with the default host files recommended by AdAway.
The browser version number is the same as the previous build but I did sync the repository as of 07 Jan. Updated the guide with new build instructions and androidfilehost with the latest build.
*edit*
Dammit, I had a copy paste error in the adblocking conf file. I didn't have a lot of time tonight to work on the SWE Browser and I must have rushed a bit and didn't notice I used the same URL twice. So the last build's web refiner is only using two host files. Even though it is only using two files and not three, it's still doing a good job according to my tests.
Also, in case anyone is wondering, bookmarks are saved after updating manually.
*edit again*
Ok, fixed the guide and updated the pgl.yoyo.org url. Synced the local repo, didn't see any new changes from Code Aurora. Set it to build. I'll update androidfilehost with the build as soon as it's done!
The new build is up, and version number incremented to 55.0.2883.2641472, so get the newest version with web refiner in the top post.
mattnin said:
The new build is up, and version number incremented to 55.0.2883.2641472, so get the newest version with web refiner in the top post.
Click to expand...
Click to collapse
Just wanted to say thanks for doing this. I've had the same thoughts as you for a while now... wondering why CAF doesn't put out an official apk, and wanting to figure out how to build it for myself as well. Looks like you beat me to it haha.
The guide is awesome too. :good:
Can confirm now webrefiner is working as intended! @mattnin you rock!
FanDroid09 said:
Just wanted to say thanks for doing this. I've had the same thoughts as you for a while now... wondering why CAF doesn't put out an official apk, and wanting to figure out how to build it for myself as well. Looks like you beat me to it haha.
The guide is awesome too. :good:
Click to expand...
Click to collapse
You're welcome. Glad I could give back to this great community! I'm still working on the guide, it's not finished! I'll make it easier to follow and understand.
10goto10 said:
Can confirm now webrefiner is working as intended! @mattnin you rock!
Click to expand...
Click to collapse
Holy cow, it blocked 23 advertisements! That's gotta be a record!
Good news everyone. I know why the other CAF builds are larger than mine, and I also know why they are just a little faster than mine. Not anymore...
After taking the tip by @10goto10 and looking into webrefiner, I began to dig into the source code and look into other 'hidden' features of Code Aurora's SWE Browser. I came across the same optimizations that the other CAF browsers are running. I found that the optimizations sacrifice build size for speed. See the code below.
Code:
GYP_CHROMIUM_NO_ACTION=1 gn gen out/Default --args='target_os="android" symbol_level=0 is_debug=false optimize_for_size=false remove_webcore_debug_symbols=true'
Not only that, but there may be some other code aurora features I can enable. I will keep plugging away and see what I can accomplish, but here we are again with a new build. It's the same version as the last but optimized for SPEED! :laugh: run some benchmarks and see for yourself.
Here are benchmark scores using Octane,
Chrome 4792
SWE Browser 5443
SWE Browser smokes Chrome! :good:
Done some JS & DOM benchmarks myself against the latest Samsung Browser and the previous version of this browser.
~14% speed improvement compared to the previous version, awesome! :good:
...and it's even ~5% faster than TugaBrowser M55. YuBrowser M54 is ~8% faster though, but it eats RAM like nobody's business
10goto10 said:
Done some JS & DOM benchmarks myself against the latest Samsung Browser and the previous version of this browser.
~14% speed improvement compared to the previous version, awesome! :good:
...and it's even ~5% faster than TugaBrowser M55. YuBrowser M54 is ~8% faster though, but it eats RAM like nobody's business
Click to expand...
Click to collapse
I'm working on the YuBrowser speed advantage... It could be because YuBrowser is based on stable CAF, not sure at this point but I will get to the bottom of it.
10goto10 said:
Done some JS & DOM benchmarks myself against the latest Samsung Browser and the previous version of this browser.
~14% speed improvement compared to the previous version, awesome! :good:
...and it's even ~5% faster than TugaBrowser M55. YuBrowser M54 is ~8% faster though, but it eats RAM like nobody's business
Click to expand...
Click to collapse
Try the yubrowser comparison now. Maybe try clearing app cache after new install. Now getting 5759 on Octane. New build up, version incremented.
mattnin said:
Try the yubrowser comparison now. Maybe try clearing app cache after new install. Now getting 5759 on Octane. New build up, version incremented.
Click to expand...
Click to collapse
Man, you're a frikkin machine, cranking out these builds like it's nothing
On the left is your latest build, and on the right is the latest version of YuBrowser. (I cleared data and cache, etc.)
Still no luck on the JS performance forefront; YuBrowser M54 is still ~8% faster.
But DOM / Page load+manipulation is faster by ~6% on your (latest) build, and that's the reason why I prefer your browser over YuBrowser. :good:
Also, I can't confirm this right now since I'm on TouchWiz, but on CM13 peak memory usage under the same workload is higher on YuBrowser than.... any other browser I could think of, really. That sucks because other background apps get closed when I do some intensive browsing with it..
Your hypothesis might be correct: JS on M54 is probably more optimized because it's CAF's stable release, and there's probably something about M55 using a newer toolchain.
p.s: I attached a BT keyboard now while running the Speedometer benchmarks, because it likes to open the virtual keyboard from time to time, and that might affect the results. So that's why the benchmark score for that is higher than my previous runs.

Wayland server for Android

ABANDONED
Hi! Does anyone here use Linux desktop distributions in chroot environment on Android device?
I am developing wayland protocol server for Android devices. If anyone is interested in checking my project, latest version of apk is always available here:
ftp://ftp.drivehq.com/mogryph/sparkle/
Currently I am only focused on running Xwayland as client. Also apk supports audio output.
Simplest instruction:
1. Android 6 or newer required, busybox required, root required
2. Prepare linux distribution in directory, image or on partition. Make sure you have Xwayland installed in it. Make sure you specify which DE to run (or at least xterm) in ~/.xinitrc
3. Install and start sparkle.apk
4. Press "edit user.sh", uncomment (remove #) line starting with start_generic_container. Change rest of this line to match your device:
first arg - image or partition where distribution is installed. If distribution is installed in directory and mouting is not needed, leave this arg unchanged.
second arg - mount point or directory with distribution. If you use mounting (first arg), this arg can be left unchanged.
third arg - name of the user which will be used to start Xwayland and DE. Its better to specify non-root. Also this is the user who must have .xinitrc in his home dir (see step 2).
5. Save user.sh and click "Start".
6. Any problems and crashes will be reflected in the log.
If you want audio output:
1. Compile and install driver from pcm_sparkle.tar.gz in your distribtion
2. cp 1.asoundrc ~/.asoundrc
If you have blinking problem, change upload_mode from 1 to 2 in settings. If you have bad performance, setting no_damage to true may help, but in most cases no_damage=false is better. Fastest upload mode is 0 (if it works).
If you don't trust me and don't want to give sparkle root permissions (I perfectly understand this) you don't have to. Also you can do without busybox.
But in this case, you need to understand and do a lot of things. Check sparkle's user.sh to get idea about what needs to be done. Basically:
1. You need to make /data/data/com.sion.sparkle/files accessible from inside chroot container. You can use bind bound.
2. Make sure you have tmpfs mounted over /tmp in container.
3. You may need to change selinux context on /tmp to match sparkle's context or disable SELinux.
4. You need to create new directory in /tmp, symlink sparkle's wayland socket from /data/data/com.sion.sparkle/files/wayland-0 to this dir. And export XDG_RUNTIME_DIR to point to this dir. Dir must be (ch)owned by user who will be running Xwayland and DE.
5. After all this, you can try to start Xwayland and your DE.
new version
New version
rgho.st/8Fbz64Rxj
Added x86 and x86_64 support. Actually it is rewritten almost from scratch but x86 support is the only thing others can notice...
Hello! This project is interesting. I tried you app and it works on my Xiaomi Redmi Note 4X(chromium and glmark from chrooted environment works very well)! Can you publish source code on Github, because it really interesting project?
Also I'm interested, please post it on github!
Did you put this up on github or move this thread? Looks very interesting.
1
Argh, sorry, I decided to abandon this project. You are free to delete thread. Also no copyleft-licensed components were used so I don't have to bother releasing sources.
Hentacler said:
Argh, sorry, I decided to abandon this project. You are free to delete thread. Also no copyleft-licensed components were used so I don't have to bother releasing sources.
Click to expand...
Click to collapse
Check your PM please!
1
Hello again.
For last two weeks I was rewriting it from scratch (yes. again... yes, third time).
Probably need another week to make it stable.
Currently I am not sure it runs on any device except my own 5-year old phone (LineageOS 14).
I will maintain last version here:
ftp://ftp.drivehq.com/mogryph/sparkle/
There is no English documentation, but you can see script "user.sh" to get idea about how to start xwayland. In most cases it should be enough to edit few lines in that script to make it work on another device. If you execute this script on your device with "install" argument, it is supposed to place itself into sparkle's directory and sparkle is supposed to run it ("start" function) automatically. Sparkle doesn't request root unless script does.
Here is video of sparkle working:
https://www.youtube.com/watch?v=tOSFYxCF7Q8
But it seems that KDE + video recording was too much for my old phone
Still, if you going to see video, don't close it until 2:00 where I turned of composition which caused lags.
Also on device everything looks much smoother than on video, even after 2:00.
When I watch fullscreen (1280x720) video on my device, sparkle + xwayland together add just 5% of CPU load (20% load of single core).
Thats it I guess... I tried to to discuss sparkle on 4pda.ru (russian forums), but got very bad reception. "xsdl is perfect, dont reinvent the wheel" they say. So I started to hate humanity and I decided to make sparkle personal project. Also this is last time I am solving reCAPTCHA to leave post on XDA.
Still alive
We are still alive. I've changed first post to reflect actual state. Now sparkle supports audio, auto-mouting containers and is lot more stable.
Yet there are still many things I want to improve in sparkle's core before adding new functions.
Also there are few demo videos on ftp.
Amazing!
Working great on my redmi 6 pro. Stock miui 9.9.3 rom. With linuxdeploy and sparkle from your ftp. No lag on visual and sound. My Linux distribution is alpinelinux arm64 arch.
Since first time I see your posting on 4pda. I'm interested in it. And finally it's on xda.
Thanks dev.
---------- Post added at 02:52 AM ---------- Previous post was at 02:44 AM ----------
For anyone interested in the topic. Please follow the instructions in documentation from ftp. And Translate it to eng from rus.
This sounds amazing! Just curious, is it related to https://github.com/twaik/sparkle ?
I now have it working very well on my Samsung Tab S3 using Xwayland and a tiling window manager. Firefox runs amazingly well!
Is it meant to be used only with Xwayland or will it also work with native Wayland applications?
BTW, I think if you open sourced this project and promoted it a bit, it could become quite popular. It's basically the first way to run X11 GUI applications on Android devices at full speed. If you set up a donation link, you could also get compensated for your time and effort. I'll personally contribute $20 if it's open sourced, and I'm sure others will chip in as well.
robsmith11 said:
This sounds amazing! Just curious, is it related to https://github.com/twaik/sparkle ?
Click to expand...
Click to collapse
Thanks for feedback. Nice to hear that someone managed to start this thing
Twaik's repository is clone of my very very old version of sparkle. I made that version years ago when I was just starting to learn linux and C++. Sparkle was rewritten from scratch two or three times since that version. And (I believe) current version is much better.
Regarding making it open source... Few months ago I had to find real job. Can't spend much time on personal projects any more. But I have my own strange programming style and my own vision of what sparkle should be. Not sure I want others to paint on my picture. It's probably all because of Twaik! I hate how he used old open source version of sparkle. He did terrible things to it, outraging all my beliefs Sorry!
P.S.: Yesterday I've uploaded another apk to my ftp. The file is called "sparkle-testing.apk". This version is much newer and has many fixes. But I've also changed to many things since tested version including some fundamental changes. No guarantee it will run at all on other devices. Interest is mega low and I get no test reports at all.
Hi Hentacler, I've just found your project - it looks really promising. Unfortunately, the only link currently working on this thread is to github. Is this project still live?
I have a samsung galaxy note 10+, and am using it as a laptop replacement. In addition to the android apps using Samsung Dex (Samsung's desktop solution), I have several linux distributions installed inside a chroot using userLand - so far, its working great. I'd be keen to give you project a try if it's still live, and am happy to help out with testing from my device.
Re open source - while I like your project, I'm not super interested in investing time into something that's not open sourced - I appreciate your concerns about wanting to maintain the direction, but having transparent development is pretty important to me. Is Twaik's fork of your project a better place to go?
Cheers.
tillum said:
Hi Hentacler, I've just found your project - it looks really promising. Unfortunately, the only link currently working on this thread is to github. Is this project still live?
I have a samsung galaxy note 10+, and am using it as a laptop replacement. In addition to the android apps using Samsung Dex (Samsung's desktop solution), I have several linux distributions installed inside a chroot using userLand - so far, its working great. I'd be keen to give you project a try if it's still live, and am happy to help out with testing from my device.
Re open source - while I like your project, I'm not super interested in investing time into something that's not open sourced - I appreciate your concerns about wanting to maintain the direction, but having transparent development is pretty important to me. Is Twaik's fork of your project a better place to go?
Cheers.
Click to expand...
Click to collapse
ftp://ftp.drivehq.com/mogryph/sparkle/
Link to FTP should work and there you can get two versions:
sparkle.apk - old version, but confirmed to work by 3-4 people.
sparkle-testing.apk - latest version, but only briefly tested by me.
I don't ask anyone to invest anything... Sparkle doesn't request root access or any other dangerous permissions (unless you enable automatic container mounting and starting) so it's safe to try for anyone who wants.
Btw, somewhere between these two versions I've replaced BASH container initialization script with LUA version. That was probably a bad idea. LUA script is harder to start directly as root and hacks I used may not work (currently may even cause application freeze if root access is denied). Going to revert to BASH probably. But this only touches people who want sparkle to mount container and launch everything automatically on single button press.
p.s.: Why I need to solve captcha every time I post something?
Thanks for the new release! I've updated and everything seems to be working without any changes on my Samsung Tab S3 with chroot and Arch Arm Linux.
Your changes also solved the flickering for me! The old version would flicker the screen whenever my keyboard's trackpoint activated, but it's not flickering at all any more. Performance seems to be about the same.
I think this could be quite popular, but not many people know about it. Perhaps a post on Hacker News or Reddit would raise awareness.
I understand your position on open source and maintaining control. One idea if you haven't already considered it is releasing the code with a restrictive license that forbids any forks. But either way, I'm enjoying being to properly use X11 on my tablet.
BTW, have you tried any native Wayland compositors? I don't really understand the Wayland ecosystem that well. I gave Sway a brief try, but it didn't seem to work. I've only been using XWayland.
@Hentacler Thanks for your reply! Very keen to get this working, but having a few issues. I'm unsure how to configure the user.lua file - I'm using your latest apk.
I have a non-rooted device, and am running archlinux under termux. Works fine with xsdl. I have installed xorg-server-wayland for X11. I'd appreciate any advice you have.
@robsmith11 Are you able to share how you got this working on Arch? Thanks!!!!
tillum said:
@Hentacler Thanks for your reply! Very keen to get this working, but having a few issues. I'm unsure how to configure the user.lua file - I'm using your latest apk.
I have a non-rooted device, and am running archlinux under termux. Works fine with xsdl. I have installed xorg-server-wayland for X11. I'd appreciate any advice you have.
@robsmith11 Are you able to share how you got this working on Arch? Thanks!!!!
Click to expand...
Click to collapse
I am not sure it is possible to use sparkle without root...
Sparkle makes it's directory accessible for everyone (chmod 777). Before Android 8 or 9 this was enough and xwayland from termux was able to connect to sparkle. Here is how people used to start it:
export XDG_RUNTIME_DIR=/data/data/com.sion.sparkle/files
Xwayland
But newer versions of Android brought more restrictions and termux can no longer connect to sparkle. These new restrictions are implemented using SELinux if you know what it is. Applications now have different security contexts.
But that is not all. Newest versions of android brought even more terrible meaningless restrictions effectively "killing" applications like termux and many others.
In short, from now one applications are not allowed to execute code (binary) that comes from "untrusted" sources. Termux used to download a lot of such code from it's own repositories. And now it can't. We can't even unpack binaries from assets.
So I can only help with rooted devices.
P.S. Please forgive me, but I am leaving this website. Making people solve recaptcha every time they want to post something is unacceptable level of contempt.
My mail: [email protected]
Thanks for that, will have a play. I could always just root my device. Weird about recaptcha, not having this issue. Currently through termux I have access to the whole sdcard, and am able to download packages (and distros) in it - will have a play and see what else is possible.
@tillum
I basically just followed the instructions on the first post for using Sparkle without busybox. I didn't need to modify the Lua scripts.
I'm guessing SELinux may be a problem without root. I'll try setting it up without root when I have a chance later.

Categories

Resources