Related
This thread is for discussion on how to implement omnipatcher for android.
Project site => http://android-omnipatcher.googlecode.com
Project owner is brut.all
An Android app that can automatically download and apply patches/fixes for installed apps. It makes possible to add features to closed source apps without distributing proprietary code.
Planned features (in more or less chronological order):
* apks patching
o res files adding, deleting, replacing - especially useful for themes designers
o applying smali patches
o bsdiff patching
o xml assets patching
o resources.arsc patching
* signing and zipaligning apks after patching
* automatic app version matching
* automatic downloading to SD card some dependencies like smali, baksmali, zipalign, etc.
* patching system apps
o with root permissions
o without root - by changing package name and installing it beside original app
* possibility to generate update.zip file to reinstall some critical apps
* online repository of users fixes
* tool that simplify or maybe fully automate generating of patches
[Reserved for future use]
[Reserved for future use]
Brut.all said:
I though Java has native zip support?
Click to expand...
Click to collapse
Ok, Metamorph is run from console, so it hasn't got access to Java's zip lib. We wouldn't have this problem.
Brut.all said:
Big, but not huge And so far it was evolving very rapidly
Beside of that it will be iterating project. First we need patcher with some of basic features. Minimalistic UI and configuration, libs and patches will be downloaded manually to SD. Then we will add some automation, new features and so on.
Click to expand...
Click to collapse
Yes, I think an iterative project is the best for this
Brut.all said:
I did it already, this was really esay And file is significantly smaller, because smali/baksmali are built with Maven and hence have doubled deps.
I don't understand... You mean (bak)smaling only needed files? It is possible, I checked it
Click to expand...
Click to collapse
I don't know how exactly baksmali work but I have some idea in mind that I have to check... will tell after reasearching some stuff ;-)
Brut.all said:
I though Java has native zip support?
Click to expand...
Click to collapse
Yes, java has built in support (at least on desktop)
It's very interesting!
I made majority of work needed to release the first version of Omnipatcher with basic functionality and then I took to all Android stuff: UI, etc. 2 days passed and I'm almost at the starting point :-/ I got -10 to Android enthusiasm :-/
Android Layouting is not always that easy :-/
I don't have too much time now because I have to finish my pre bachelor thesis (have final design review on Wednesday) but...
How can I help with it?
Hey -- looking this over, as a non-developer/programmer; I am curious: is there any chance that this program could work to apply patches to *.img files? (Specifically, I'm thinking about hot-swapping the kernel.)
IConrad01 said:
Hey -- looking this over, as a non-developer/programmer; I am curious: is there any chance that this program could work to apply patches to *.img files? (Specifically, I'm thinking about hot-swapping the kernel.)
Click to expand...
Click to collapse
Nope, because the intent of this app is decompiling apk's, patch it and compiling again to make the patching app itself legal because no proprietary content will be distributed... the user has to provide the proprietary app to the patching util.
What you want to do could be easily done with just a binary patcher like bsdiff.
rac2030 said:
Android Layouting is not always that easy :-/
I don't have too much time now because I have to finish my pre bachelor thesis (have final design review on Wednesday) but...
How can I help with it?
Click to expand...
Click to collapse
@brut.all If you want, we could open a wave for Brainstorming on the app and I can help you with the Android app stuff your having problems with?
I'm working on it alone because I write much faster in languages like Java, than in English ;-)
I want to get first basic (root only, sorry), but working version, clean up code, release it, update googlecode site a bit (TODOs in form of issues, some usage docs, etc.) and then I will open to community development. In a few days, I think
Nice, MetaMorph pretty much does alot of this, at least in regards to apk and jar patching. MetaMorph is in the market now. the only problem we have had so far is that market apps require them to be resigned when you edit their contents, so that is problematic.
Yep, someone told me about MetaMorph already, so I checked it out, cause I prefer team work than many parallel projects on the same topic.
However I concluded that MetaMorh has different assumptions: it was created as a theme designers tool mainly, so it emphasizes speed and simplicity.
I want to create all-in-one framework with many methods of patching (simple file replacement, bsdiff, smali, XML patching) and installation (in-place replacement, uninstall & install by package manager, generating update.zip), apk version control and possibility to distribute patches without containing proprietary stuff in them. And hence I have chosen Java in contrast to MetaMorph, which is a shell script.
And you have surprised me by info that MM is in the market. You wrote about MM app here, but you didn't write that you finished it... Is it just a front-end to shell script?
too bad this thread's dead
Team Cody!
Member List (in no particular order):
@thewisenerd
@omerjerk
@#Superuser
@dhrumangajjar
@navinn
@xaak
@Agaphetos
WANTED
- Testers - to beat the hell out of our ROMs
- Graphic Designers - boot logos, wallpapers, banners(one or two people)
- Themers - theme EVERYTHING!!!
- Co-Dev(s) - Do i really know what I'm doing most of the time (the answer to that is "probably not")
- Moral Support - LOL
- Suggestions - anything you got - Lay It On Meh!!
our works:
MiniCM9
CodyROM
CM9 Build #15
Evervolv
AOKP
OmniROM
AOSPA-legacy
note to self: add all the works, links
find a thread tagged [TeamCody], that's ours
Team-
@thewisenerd
@omerjerk
@#Superuser
@dhrumangajjar
@navinn
Source- https://www.github.com/CodyROM/
Blog- http://www.codyrom.wordpress.com/
Yea, we need support and suggestions!
todo list:
generalise this
First, finish the work on "reverse mounter"; as it is *technically speaking* easy (for me, to write scripts, that do things); and is pretty straight forward (no aimless edits or so)
fix gps in omni
fix video recording in omni
udpate twrp
switch to wlan0 in omni
random trolling lol
@thewisenerd
we should fix the date bug in notif bar..
is that xml derps..??
navinn said:
@thewisenerd
we should fix the date bug in notif bar..
is that xml derps..??
Click to expand...
Click to collapse
No, its a java derp
Compiling CM11/Kitkat for pico!
I assume you have knowledge of building with source, even if not, I don't really care (for there are a lot of guides).
First, get *all* the required packages installed. As for what I mean by *all*, is not really a question for me to answer. I used <insert-random-guide-from-xda> here, and the source.android.com's guide on initializing, just to be sure.
As for java, I use openjdk. *most* sources today support openjdk, elseways, either, you could force it to be compatible by removing just ONE line in build/core/main.mk
So, that's the packages part.
As for syncing sources, as most guides say, you DON'T need to use a ~/system folder or anything. You can use a folder, anywhere.
Just open up a shell, wherever you want to get the sources synced, and type in the following commands.
I assume you have the repo tool installed. IMHO, you should really create a "bin" folder in your homefolder (short linked as "~/") using the following commands:
Code:
mkdir -p ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Then, open up your ~/.bashrc file, using Geany (a better alternative to Gedit, perhaps ), using the command:
Code:
geany ~/.bashrc
Just insert this line, randomly (preferrably at the end of the file).
Code:
PATH=$PATH:/home/<insert-your-username>/bin
Now, for syncing sources. Make sure you are a directory above working folder.
Code:
mkdir -p <insert-ROM-name>
cd <insert-ROM-name>
Now, that you are inside the working folder, take your pick about the ROM that you are going to compile. This tutorial is for CM11, so i'd be running the following command.
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
Yes, you can reference this from a cm10.2 source that you've already downloaded, and this will reduce the size required to download. Why, you could even reference this from an ICS source (just saying, not meant to be even tried).
If you aren't really building for mac, I'd suggest that you don't download the darwin repos.
Short way that I use:
Run following command in working folder.
Code:
mkdir -p .repo/local_manifests
grep "darwin" .repo/manifests/default.xml > .repo/local_manifests/local_manifest.xml
Open up local_manifest.xml using
Code:
geany .repo/local_manifests/local_manifest.xml
Add these lines on top:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
and the following line at end.
Code:
</manifest>
Now open up "search and replace" dialog box.
Search for:
Code:
<project
and replace with:
Code:
<remove-project
Voila, you've removed all the unnecessary darwin repos.
Now, for repo syncing.
I'd seriously suggest that if you live in parts of the world where the internet speeds are less than 1 m'b'ps (~128 k'B'ps (worst case, mine's around 60 k'B'ps, and I've known people with speeds ranging 30 k'B'ps), you'd sync just one repo at a time (the -jx).
run:
Code:
repo sync -j1
Else, if you have a super fast internet connection, please don't brag. Use a higher number, preferably 3, or 4.
Now, sync these repos, while I attend my classes. I'd return back and write part 2.
edit: part 2; go here: http://forum.xda-developers.com/showpost.php?p=49349691&postcount=8
Compiling CM11/Kitkat for pico! PART 2
reserved
Also, yes, you could use this localmanifest here: https://github.com/PicoKat/local_manifest/blob/dev/local_manifest.xml
but, you'd miss out the learning process
Anyways, this post would take up part 2 of the tutorial.
This is purely device specific. and, there's already a guide on android development section (of this device), the reason why I didn't make a new thread.
part 2 begins here:
Ok, so, you'd synced the repos?
Now, as opposed to roomservice, I'd prefer manually cloning the device tree, kernel, and vendors.
Clone a device tree (galaxyfreak's, or mine), into /device/htc/pico.
Clone the kernel sources from here: https://github.com/PicoKat/android_kernel_htc_pico
Clone the vendor tree from here: https://github.com/PicoKat/android_vendor_htc_pico
(note: if you are using my device tree, that has ION, you'd have to use my vendor tree, with updated blobs here: https://github.com/vineethraj49/android_vendor_htc_pico)
Ok, so that part's setup.
Now, lets move on to cherry-picking, and/or patching some stuff (from legaCyMod).
Note: you could have just added these to local_manifest too...
android_build:
Hopefully, you should know how to add remotes, and working with them, if not, click on the show content, below (as a sample for android_build):
Code:
git remote add legacymod git://github.com/legaCyMod/android_build.git
git fetch legacymod cm-11.0
git cherry-pick <commit-id>
where commit id's the looong "number" following /commit/ in the URL.
1. always rebuild build.prop
2. bringing back squisher
3. Removing TTS data
4. Revert adding auditd
5. add kitkat sdk versions
6. Revert "add drawables for all densities" (seriously, this saves space.)
7. adding support for our recovery
frameworks/av:
1. enable meta mode for video msm7x27a
2.bring back support for legacy omx
3. support legacy qcom audio variant
vendor/cm:
1. bring back squisher
2. revert adb authentication (yea, screw adb while dev'ving
3. remove ze bloats
Next, clone media-legacy to hardware/qcom/media-legacy, and display-legacy to hardware/qcom/display-legacy.
waait!!!!
You need to do some patches in some files. required to fix up camera.
patch two files, manually, making some sense out of this:
frameworks/base: https://github.com/szezso/vivo_cm11_patches/blob/d819363fe7d181e73841d3fa35c1b8c0c7d7c046/frameworks_base.patch
frameworks/av: https://github.com/szezso/vivo_cm11_patches/blob/2f1c87f4453c1c7c88e3c7d2b011994f894fe669/frameworks_av.patch
The next step:
Get prebuilts, seriously.
Code:
cd vendor/cm
./get-prebuilts
Then, "cd" back to root of source dir.
Run the following commands:
Code:
. build/envsetup.sh
brunch pico -j4
Hopefully, you should see an output package by the end of <insert-time-directly-propotional-to-crappiness-of-computer>
For batch-resizing bootanimation (in linux):
resizing part:
Code:
for file in *.png; do convert $file -resize 320x320! $file; done
you'd know which part to edit
for zip'ing part:
Code:
zip -r -y -q -0 bootanimation.zip *
will edit this later
Using CCahe
Now something very important who gonna compile ROMs, use CCache. It'll spped up the building process.
CCache - Compiler cache
How to use?
> Open a Terminal(Ctrl+Alt+T)
>
Code:
gedit /.bashrc
[You can use any alternative to gedit )
> Add the following lines to it:
Code:
export USE_CCACHE=1
export CCACHE_DIR=/[COLOR="Red"]source[/COLOR]/prebuilts/misc/linux-x86/ccache
Source here is the folder in which you have the code downloaded.
>
Code:
cd source
>
Code:
prebuilts/misc/linux-x86/ccache/ccache -M [COLOR="red"]25G[/COLOR]
25G = 25 GB of space to be used as CCache. You can use any value in this.
How does ccache work ?
Well , in short , what it does is that for C and C++ programs it caches the output. One it detects that the program is getting repeated it directly sends out the output and thus reduces the time of compilation.
After using ccache you will really feel the difference in the compilation speeds of your ROMs and kernels. //Copied.
Credits - Red Devil.
I use CCACHE, but the only difference is that I don't specify the directory. also, I did a "apt-get install ccache" long ago, and set file size according to that. Its still working just as fine.
and oh, yes, adding that USE_CCACHE=1 to .bashrc is required
IRC and you!
In case you came here via my signature, sorry for that. But really, you need to know some stuff about IRC, before going to a channel. The pico channel is #pico :fingers-crossed:
So, you might have heard about IRC, even logged into one (freenode, probably, the webclient of it), (and most probably saw that there was no activity and just closed that browser tab).
Let's take a timeout here to talk about IRC.
Instead of me talking about IRC, (and you being too lazy to Google stuff (not intended to those who solve problems themselves (not noobs (?) :wink: :wink)), here's a nice article by Rey Bango that you might want to read: IRC is Back: Here's Your Starter Guide
So, instead of me talking blah blah, and you skimming through most parts, which I assume, you did in the above article (considering you taking the energy to read it), here's what you need to know about Freenode:
..but in terms of development, from my experience, most developers tend to jump on Freenode - and rightfully so.
Click to expand...
Click to collapse
So, just to let you know, in those channels (where you thought there was no activity), there actually is a lot of discussion going on. You just don't know it yet.
So? What am I supposed to do? Keep a browser tab open? Don't expect me to say "Exactly not!" because that too is a viable option, though not very practically possible.
Here's where bouncers come in. Known as BNCs, here's what they do:
A bouncer (BNC for short) is a piece of software used to relay the communication between an IRC client and the network it is connected to, acting as a Proxy.
So, whats the point you ask? The reasons and benefits of using a bouncer are many and include hiding the real IP you are connecting from, protecting your nickname and channel from being taken on networks that don’t provide channel-/nickname registration and most of the time they’ll also notify you of private messages that came in when you’ve been disconnected – of course only when the bouncer can stay online being connected from a server.
Click to expand...
Click to collapse
Coming as either free or paid (either of them being useful, nonetheless), and cutting all the tech jargon, they allow you to "stay online" allowing you to close that browser tab you feared to keep open.
So, in case you actually read through the above quoted text, software!? Being connected from a server? Nah, just kidding. Here's where online BNC providers come in. They provide you a username, (and of course a password, which you need to select), and they host for you the BNC software (in most cases, ZNC).
Most BNCs allow caching of messages, i.e. buffered playback. Their servers are connected 24x7. You, the user, connect to their server, and through their server join the channels. You then, disconnect from their channel. Poof! But, their server still remains connected to the channels, and logs the messages in the channels, and any PMs sent to you. The next time you connect to their server, it gives you all the logged stuff, and it gets cleared. The next time you disconnect, ... Well, you get the flow.
Questions. That's what you go to IRCs for (mostly. I do it for the conversations ). How exactly do you ask questions? Similar to on XDA, but slightly different. I couldn't have said better than l3dx's answer on stackexchange:
Rule #1: Don't ask to ask
Rule #2: Behave as you would do in a real life conversation
Rule #3: Be patient. If there is no activity, it usually means that no one has read what you wrote yet. If no one responds, they don't know or didn't notice. You can re-try after a while, or ask if anyone has any clue with regards to your question x minutes ago.
Click to expand...
Click to collapse
What does Rule #1 mean?
Something very similar to what zxcdw said in the comments:
"Don't ask to ask. Just ask". Don't ask people "Anybody around?" or let alone highlight others to ask if they are around. It's just easier to drop your question, hang around and wait. Ask again in a few hours or so.
Click to expand...
Click to collapse
Also, use English, in most channels, if possible. Stay safe, don't open any unknown links or links to untested software, scripts and stuff. Stay safe.
IRC clients help you stay connected. A few simple google searches will get you going in the right direction. I personally use XChat IRC on Linux, but there are a lot of other good IRC clients available too.
Free bouncers should do, mostly. I use bnc.im, seen people using EliteBNC, some people installing ZNC in their own private servers that are online 24x7, YMMV.
That's about it for IRCs. Happy chatting!
P.S. Make sure you ask the right questions in the right channels.
sys2cache... something to help with less /system partition size.
note: this would be running at boot, with busybox, so,...
Code:
# algo:
# if read(switch_file=1)
# goto case 2.
# else case 1:
# get /system size
# get /data size
# get /cache size
# check /cache remaining size
# check for files in /system
# check for the following folders
# name generic size priority
# ./etc 3.1M 6
# ./vendor 36K 9
# ./addon.d 12K 8
# ./core 76K 7
# ./xbin 1.6M 5
# ./fonts 18M 1
# ./usr 21M 2
# ./media 4.8M 3
# ./bin 5.5M 4
#
# switch = 0;
# file folder_list;
# for i in list_args
# if (getsize($i) < getfreesize(/cache))
# mv $i /cache/$i
# mount bind /cache/$i /system/$i #fix syntax
# ifexists(/system/$i)
# switch = 1;
# folder_list >> $i
# else
# switch = 0; break;
# else
# echo "fak this, we're out of space!"
# fi
#
# echo $switch > switch_file
#
# sync; exit!
#
#
#
# case 2:
#
# for i in xargs(folder_list)
# do
# mount bind /cache/$i /system/$i #fix syntax
# done
#
# sync; exit!
#
#
#
# todo:
# * actually code this shiz
# * better error checking
# * add logging
Hey!
Make sure y'all check this!
http://team-cody.github.io/ :highfive:
welcome to another member @Agaphetos
Source- https://www.github.com/Team-Cody/
todo: update this post with website link.
lol, nvm this post
shameless bump.
since my board exams are over (sort of; only CS is left); i thought of building something for pico (a looong time since I did so).
Waht do I build?
At first thought; one *pure* CM9 build with *some* cherry-picks;
another; an updated CM11 build (updated sources and stuff)...
fixing up omx and stuff on Omni is on the "to-do" list and going to take some 'time' to do; so don't expect it to be fixed already :silly:
So; which one do I 'invest' time in? :cyclops:
@thewisenerd
MTP and OTG in cm9
Cm11 only if you can make it compressed
Sent from my Xperia S using XDA Free mobile app
mirhl said:
@thewisenerd
MTP and OTG in cm9
Cm11 only if you can make it compressed
Sent from my Xperia S using XDA Free mobile app
Click to expand...
Click to collapse
you mean MTP && USB tethering?
edit: a test build will be up today (if build goes well, that is).
edit: here you go: cm-9-20150315-UNOFFICIAL-pico.zip
thewisenerd said:
you mean MTP && USB tethering?
edit: a test build will be up today (if build goes well, that is).
edit: here you go: cm-9-20150315-UNOFFICIAL-pico.zip
Click to expand...
Click to collapse
This is one sick ROM - good job !!!
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.
WireGuard is a next generation secure VPN tunnel for the Linux kernel, with modern yet conservative cryptography and simple design principles. It is meant as a replacement for OpenVPN and for IPsec, and generally has better performance and security characteristics than both. It also is much easier to use. The whitepaper was peer reviewed for NDSS17 and the protocol itself has been formally verified. Since it lives in the kernel, it not only is very fast, but it is able to integrate in clever ways that are quite nice for battery life and overall smoothness. There are already commercial VPN providers offering services using WireGuard, and it is very easy to run your own WireGuard servers as well.
Not only is it free software, but WireGuard also comes with free stickers. Send me a DM with how many you want and to where I should send them, and I’ll drop an envelope in the box. (Do not request stickers on the mailing list.)
But WireGuard being awesome is old news. The new news is that now there’s an easy way to integrate it into Android kernels.
WireGuard runs on ordinary Android devices, but ones that have the special WireGuard kernel module will have numerous advantages. That is the topic of this thread. The main interest here in XDA Land is in making the kernelspace version readily available to kernel/ROM devs, which has the best possible performance, battery life, integration, and stability.
Adding to Kernel Trees
If you maintain your own kernel, you may easily patch your kernel tree to support WireGuard with the following commands:
Code:
$ curl https://data.zx2c4.com/wireguard-android-kernel-patcher.tar.xz | tar -xJf -
$ wireguard-android-kernel-patcher/doit.bash path/to/kerneltree
This will patch your kernel and create a commit or a series of commits for you.
Everybody: Download the App
The Android GUI app will opportunistically use the kernel component if it's available (patched in using either one of the two methods above), and will then fall back to the userspace implementation otherwise.
Getting Support
Ask or help on IRC in #wireguard on Freenode. DO NOT ASK FOR USER SUPPORT IN THIS THREAD. Devs only, please. User help is on the IRC channel.
XDA:DevDB Information
WireGuard, Kernel for all devices (see above for details)
Contributors
zx2c4
Source Code: https://www.wireguard.com/
Kernel Special Features: WireGuard kernel module integration
Version Information
Status: Release
Created 2017-11-28
Last Updated 2020-12-05
This post formerly had a list of an incredible amount of ROMs and kernels with WireGuard baked in. But by now, so many kernels have WireGuard that it became impossible to keep track of.
You can check if your current kernel has WireGuard by downloading the WireGuard app and looking at the settings panel. If it says "kernel backend", you have WireGuard in your kernel. If it says "userspace backend", you do not have WireGuard in your kernel.
Reserved
It is meant as a replacement for OpenVPN and for IPsec, and generally has better performance and security characteristics than both. It also is much easier to use.
Click to expand...
Click to collapse
Have you been in contact with devs behind DD-WRT, AsusWRT-Merlin, Tomato, etc. to help them integrate it into their router firmwares? I'm interested in the improved security, but it won't be easier than OpenVPN for a lot of people until it's baked into their router.
giltwist said:
Have you been in contact with devs behind DD-WRT, AsusWRT-Merlin, Tomato, etc. to help them integrate it into their router firmwares? I'm interested in the improved security, but it won't be easier than OpenVPN for a lot of people until it's baked into their router.
Click to expand...
Click to collapse
As far as router firmware goes, in addition to the ordinary Linux distros, it's also integrated into OpenWRT/LEDE and EdgeOS. I haven't talked to the DD, Merlin, and Tomato people yet though. That's a good suggestion.
I'm trying to add wireguard to my rom. (ViperOS for Land aka Redmi 3S).
Got this error
FAILED: patch-wireguard
/bin/bash -c "(ln -vsfT \"\$(realpath --relative-to=\"kernel/xiaomi/msm8937/net)\" \"kernel/wireguard/wireguard/src\")\" \"kernel/xiaomi/msm8937/net/wireguard\" ) && (grep -q wireguard \"kernel/xiaomi/msm8937/net/Makefile\" || sed -i \"/^obj-\\\\\\\$(CONFIG_NETFILTER).*+=/a obj-\\\$(CONFIG_WIREGUARD) += wireguard/\" \"kernel/xiaomi/msm8937/net/Makefile\" ) && (grep -q wireguard \"kernel/xiaomi/msm8937/net/Kconfig\" || sed -i \"/^if INET\\\$/a source \\\"net/wireguard/Kconfig\\\"\" \"kernel/xiaomi/msm8937/net/Kconfig\" )"
/bin/bash: realpath: command not found
ln: failed to create symbolic link ‘kernel/xiaomi/msm8937/net/wireguard’ -> ‘’: No such file or directory
Ful log here https://hastebin.com/tegecuzeke.tex
dineshthangavel47 said:
/bin/bash: realpath: command not found
ln: failed to create symbolic link ‘kernel/xiaomi/msm8937/net/wireguard’ -> ‘’: No such file or directory
Click to expand...
Click to collapse
The issue is that you don't have `realpath(1)` installed. This is usually a standard part of every linux distribution, and comes in coreutils, since 2011.
In case you're using some ancient distro, I've added a workaround:
https://git.zx2c4.com/android_kernel_wireguard/commit/?id=3736a04ff5cf00d5d07e3e9f33438fbf83dc2401
Try `repo sync` and then see if things work for you.
It will be interesting to see how this goes.
zx2c4 said:
As far as router firmware goes, in addition to the ordinary Linux distros, it's also integrated into OpenWRT/LEDE and EdgeOS. I haven't talked to the DD, Merlin, and Tomato people yet though. That's a good suggestion.
Click to expand...
Click to collapse
I think it might be impossible on some due to old kernel. On my Asus RT-AC68U running the latest AsustWRT-Merlin build, the kernel is: Linux version 2.6.36.4brcmarm ([email protected]) (gcc version 4.5.3 (Buildroot 2012.02) )
Skello said:
I think it might be impossible on some due to old kernel. On my Asus RT-AC68U running the latest AsustWRT-Merlin build, the kernel is: Linux version 2.6.36.4brcmarm ([email protected]) (gcc version 4.5.3 (Buildroot 2012.02) )
Click to expand...
Click to collapse
Indeed some devices have simply too old kernels, but many other devices have kernels ≥3.10, which is from 2013.
zx2c4 said:
The issue is that you don't have `realpath(1)` installed. This is usually a standard part of every linux distribution, and comes in coreutils, since 2011.
In case you're using some ancient distro, I've added a workaround:
https://git.zx2c4.com/android_kernel_wireguard/commit/?id=3736a04ff5cf00d5d07e3e9f33438fbf83dc2401
Try `repo sync` and then see if things work for you.
Click to expand...
Click to collapse
Thanks. Will try and report.
dineshthangavel47 said:
Thanks. Will try and report.
Click to expand...
Click to collapse
By the way, usually the best way to debug things and work out problems is the #wireguard channel on Freenode, where we can exchange in real time. Feel free to poke us there.
Hi,
Nice! Although this is complete Chinese for me i will test laters today. I signed up for the beta on Play and i am a Mullvad user which has Wireguard servers (experimental though). I will try later today and report back if i could get it working. Hopefully its not too soon for this question: will it in future be possible to exclude app from VPN usage. I had problems before with: my banking apps didn't like exotic ip adresses. English is not my native language but as i understand correctly: it can work without a kernel who has this implemented, right?
Droidphilev said:
Hi,
Nice! Although this is complete Chinese for me i will test laters today. I signed up for the beta on Play and i am a Mullvad user which has Wireguard servers (experimental though). I will try later today and report back if i could get it working. Hopefully its not too soon for this question: will it in future be possible to exclude app from VPN usage. I had problems before with: my banking apps didn't like exotic ip adresses. English is not my native language but as i understand correctly: it can work without a kernel who has this implemented, right?
Click to expand...
Click to collapse
If your kernel doesn't have the WireGuard implementation... You can't use it.
dineshthangavel47 said:
If your kernel doesn't have the WireGuard implementation... You can't use it.
Click to expand...
Click to collapse
Ok thanks,
i was refering to this:
"Work continues on making a userspace version of WireGuard that will allow folks to run on normal ROMs without kernel support. This is coming along nicely..."
and this:
"The Android GUI app, which is currently in development, will opportunistically use the kernel component if it's available, and will then fall back to the userspace implementation otherwise. "
So you mean it's not possible *yet*? There's no use for me to start testing if it's not implemented yet of course
Droidphilev said:
Ok thanks,
i was refering to this:
"Work continues on making a userspace version of WireGuard that will allow folks to run on normal ROMs without kernel support. This is coming along nicely..."
and this:
"The Android GUI app, which is currently in development, will opportunistically use the kernel component if it's available, and will then fall back to the userspace implementation otherwise. "
So you mean it's not possible *yet*? There's no use for me to start testing if it's not implemented yet of course
Click to expand...
Click to collapse
User space implementation is not complete yet. I guess...
dineshthangavel47 said:
User space implementation is not complete yet. I guess...
Click to expand...
Click to collapse
Your guess was right my friend. After trying to enable the app i get a warning that, for now, a patched kernel is needed. Thanks for your help!
Hi
Using this on my linux laptop and it seems to work great. however I cant seem to to get it to work on my phone. its sultaanXDA linage for 1+3t and it is supported. I would really like a noob friendly setup guide for the android GUI app. Im using azireVPN
andersjohansson81 said:
Hi
Using this on my linux laptop and it seems to work great. however I cant seem to to get it to work on my phone. its sultaanXDA linage for 1+3t and it is supported. I would really like a noob friendly setup guide for the android GUI app. Im using azireVPN
Click to expand...
Click to collapse
Yes. Sultan's OP3T image is supported.
christantoan said:
Try running this script with "sh script-name.sh" (as root probably) and you should get several configuration files in sdcard/Download/wireguard that you can import in the app. I'm not azireVPN user so I'm not sure this will work but I have tried the same trick (all I change is where the script save the downloaded config files) with Mullvad VPN with success.
Anyway, does anyone know how to allow local network traffic when using Wireguard (or it depends on the config file)? I cannot access local network resources when it's active. Thank you.
Click to expand...
Click to collapse
Funny, I made essentially the same modification to the script too, for the purposes of making new configs for my phone. You might want to remove the `exec sudo` line at the top, now that it doesn't actually need root. Other than that, the modification looks good.
Local network access is permitted by the default wg-quick(8) stuff on ordinary Linux. But it looks like there might be some special things needed with ndc on Android for pass through. I'll have to look into this. Thanks for the suggestion.
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.