Run exe on Android with box + wine [Root] - General Topics

1. First install 64-bit chroot Ubuntu/Debian on the phone with Linux Deploy
2. To enable multi-architecture support:
dpkg --add-architecture armhf
3. Update sources.list
sudo nano /etc/apt/sources.list
4. Install related kits :
sudo apt update
sudo apt install tigervnc*
sudo apt install git build-essential cmake wget gcc-arm-linux-gnueabihf
sudo apt install zenity:armhf libasound*:armhf libstdc++6:armhf mesa*:armhf #box86_dependencies
sudo apt install mesa* zenity* #box64_dependencies
5. Compile Box86 with parameters for Raspberry Pi 4
cd
git clone https://github.com/ptitSeb/box86
cd box86
mkdir build; cd build; cmake .. -DRPI4ARM64=1 -DARM_DYNAREC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j$(nproc)
sudo make install
cd
rm -rf box86
6. Compile Box64
git clone https://github.com/ptitSeb/box64.git
cd box64
mkdir build; cd build; cmake .. -DRPI4ARM64=1 -DARM_DYNAREC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j$(nproc)
sudo make install
cd
rm -rf box64
7. Wine :
mkdir wine
mkdir wine64
7.1. Download wine binaries:
wget https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-x86/PlayOnLinux-wine-7.0-upstream-linux-x86.tar.gz
7.2. Download wine64 binaries:
wget https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-amd64/PlayOnLinux-wine-6.17-upstream-linux-amd64.tar.gz
Extract both wine and wine64 in those two folders you had created before:
tar -xzvf PlayOnLinux-wine-7.0-upstream-linux-x86.tar.gz -C wine
tar -xzvf PlayOnLinux-wine-6.17-upstream-linux-amd64.tar.gz -C wine64
8.Add these lines to your /etc/profile:
export BOX86_PATH=~/wine/bin/
export BOX86_LD_LIBRARY_PATH=~/wine/lib/wine/i386-unix/:/lib/i386-linux-gnu:/lib/aarch64-linux-gnu/
export BOX64_PATH=~/wine64/bin/
export BOX64_LD_LIBRARY_PATH=~/wine64/lib/i386-unix/:~/wine64/lib/wine/x86_64-unix/:/lib/i386-linux-gnu/:/lib/x86_64-linux-gnu:/lib/aarch64-linux-gnu
Use $WINEPREFIX to separate execution environments ( temporary )
For example, if I want to execute 32-bit Box86 + Wine, the complete instructions are as follows:
export BOX86_PATH=/home/android/wine/bin/
export BOX86_LD_LIBRARY_PATH=/home/android/wine/lib/wine/i386-unix/:/lib/i386-linux-gnu:/lib/aarch64-linux-gnu/
box86 wine *.exe
In case of 64-bit Box64 + Wine64:
export WINEPREFIX=/home/android/.wine64
export WINEARCH=win64
export BOX64_PATH=/home/android/wine64/bin/
export BOX64_LD_LIBRARY_PATH=/home/android/wine64/lib/i386-unix/:~/wine64/lib/wine/x86_64-unix/:/lib/i386-linux-gnu/:/lib/x86_64-linux-gnu:/lib/aarch64-linux-gnu
box64 wine64 *.exe
To run wine32 without always deleting the prefix, put these in your .bashrc
export PATH=~/wine/bin:~/wine64/bin:$PATH
alias win32='WINEPREFIX=~/.wine32 WINEARCH=win32'

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}

Its working fine
But can u fix this ??

Check this git for one-line set up.

Related

Backup | Protect | Restore - root (su)

For experienced users only.
As the thread title suggests, this is a guide to backup, protect and restore root (su) as is sometimes needed after a system upgrade, broken Superuser update, etc...
Yes, there is an app for this, but if your like me, and enjoy full control over your system and don't mind working from the terminal, than this guide is for you.
What's involved:
We will be using two Linux commands orignially for the Linux second extended file system (ext2) but also works on ext3 and ext4.
- chattr (change file attributes)
- lsattr (list file attributes)
What's needed:
1. Terminal Emulator - there is an excellent one by Jack Palevich HERE
2. BusyBox compiled with the aforementioned utils/applets - an excellent pre-built binary by Linus Yang can be found HERE
-- I've also created a flashable zip for Linus Yang's BusyBox HERE
3. Extended file system as previously mentioned
A picture is worth a 1000 words:
Let's start with that and then review below
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
su ~ we need root access rights to make changes to the system
mount -o remount ~ we remount the system rw (read/write) to make the changes
cp -p ~ we copy/backup the su binary preserving (-p) the current file attributes/permissions, i.e. [rwsr-sr-x root root]
lsattr ~ list attributes; shows the files immutable bit is unset (not protected)
chattr +i ~ the +i is to set the immutable bit on the file
lsattr ~ list attributes; shows the files immutable bit is now set (protected)
chattr -i ~ the -i is to unset the immutable bit on the file
lsattr ~ list attributes; again, shows the files immutable bit is unset (not protected)
mount -o remount,ro ~ we remount the system read-only when finished making changes (always - don't forget)
Now what:
To restore root (su), i.e. after a system upgrade, we call the (su)protected /system/su-bak from terminal and use it to restore root access rights to /system/bin/su
Code:
/system/su-bak
mount -o remount,rw /system
chown 0.0 /system/bin/su
chmod 06755 /system/bin/su
mount -o remount,ro /system
Notes:
-In all my examples above, my su binary is in the /system/bin folder, however yours may very well be in the /system/xbin folder, so handle accordingly
-As long as the upgrade (OTA) is an in-place file system update then this should work, it is essentially the same process as the OTA RootKeepers
Sources and info:
chattr:
http://en.wikipedia.org/wiki/Chattr
http://linuxcommand.org/man_pages/chattr1.html
lsattr:
http://en.wikipedia.org/wiki/Lsattr
http://linuxcommand.org/man_pages/lsattr1.html
-JR-

Must-know Command Line (Terminal) hacks for Developers

Using various command lines tools of Linux can make working very easy for developers. Here are a few tricks than can really help out.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
1. grep
I cannot emphasize on this tool more, this utility is your one stop destination for searching anything. Want to look for all .so files in a folder? Type in
Code:
ls | grep .so
Or maybe a '.so' (library) file that starts with 'mtk' (e.g. mtkOmxVenc.so)
Code:
ls | grep mtk*.so
Or what if a '.so' (library) file that has 'Omx' somewhere in the name
Code:
ls | grep *Omx*.so
Awesome! Now that pole like character is simply called "the pipe" it pipes the output to another program, in this case grep. Now grep -s case-sensitive. To make it case insensitive, just use the -i flag with it. Now try looking for all .mp3 files in a folder!
What if you were in a folder with 1000s of files and were looking for a file with the text 'I love XDA Developers' in it? Pretty simple. Make sure your current directory is where you want to search, and type in
Code:
grep -R 'I love XDA Developers'
Great! You are becoming a command line genius! Now let's try some real world stuff. Say you want a rough idea on how many libraries or executables are somehow linked to 'libmediaservice.so'. It can be necessary when you get dlopen errors. Can you guess how to get an approximate result? Try to do it before looking any furter. Got it? 3... 2... 1... and the answer is
Code:
grep -R libmediaservice.so
Now was that too hard? Of course not!
2. head and tail
Quickly view the first few or last few lines of a text file with head or tail subsequently.
Code:
head logfile.log
Code:
tail logfile.log
3. sed
sed, short for stream editor can do tonnes of things, for now let's focus on searching and replacing. Say, we need to replace the text 'libxda.so' by 'libxdadev.so' in all the files within this current directory. We would simply command,
Code:
ls -1 | xargs sed -i 's/libxda.so/libxdadev.so/g'
(The -1 flag makes sure that ls ouputs in just ONE row, there is a better way to do this with find, we'll check that later)
4. find
This is the hypercharged version of grep; as the name implies, you can find stuff with it. For example, say you want to find all the folders under the current folder recursively.
Code:
find . -type d
[tip: . (dot) refers to the current folder]
you want to find all the files under the current folder recursively.
Code:
find . -type f
That was easy, but not too much useful. Let's try something more. Okay, here's a fun thing to do, we want to find empty files in the current folder whose name starts with 'xda', has executable permissions and is owned by 'tuxboy'.
Code:
find . -type f -name xda* -empty -executable -user tuxboy
Whoa! That was big! This baby is capable of doing so much more. Here are a few more options, self explanatory.
Code:
-empty
-fstype TYPE
-group NAME
-name PATTERN -newer FILE
-nouser
-nogroup
-path PATTERN
-perm [+-]MODE
-regex PATTERN
-readable -writable -executable
-wholename PATTERN
-size N[bcwkMG]
-type [bcdpflsD]
-user NAME
5. wc
This is the mother of all counters. You can count bytes, characters or lines in files with this tool. Want to know how many characters are there in a file?
Code:
wc -m filename.txt
Or, how many words are there in a file?
Code:
wc -w filename.txt
Or, how many lines are there in a file?
Code:
wc -l filename.txt
Or, the length of the longest line in a file?
Code:
wc -L filename.txt
Cool eh?
6. man and --help/-help/-h
Every command usually comes with some documentation. Say you want to get a short documentation on how to use the 'ls' command, at least one of the following commands should give you answers.
Code:
ls --help
Code:
ls -h
Code:
ls -help
If you want comprehensive documentation. Man is there for you!
Code:
man ls
Hope this will help you. If you have learned something new, hit Thanks!
This is beautiful, thank you :angel:.

[CHROOT] Debian install on android with root

We need:
-debian chroot tarball or raspberry pi image (Download debian arm64 tarball)
-Magisk
-busybox (Magisk module avaible)
-GNU/Linux(for adb shell)
-Android terminal emulator (Download))
1- download tarball or image on computer
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2-push file to /sdcard/ directory
3-Open android shell. Move file to /data/ and unpack file
4- Move rootfs to /data/linux
5- now go phone and run mount.sh in terminal (AOSP terminal has issue so We need another terminal)
6- If phone doesn't have busybox You must use busybox magisk module or any busybox installer.
7-after that reboot phone and run mount.sh in terminal
8-run chroot.sh in terminal and check update
9- done
Notes:
-if you want to install gui, You can install vnc server and connect in android vnc viewers.
-You can only install arm64/arm architecture rootfs.
-if you access system directory in rootfs, You can create /data/linux/system/
-if apt doesnt have internet access, edit /data/linux/etc/passwd file and replace _apt users UID to 0
-If you have any questions, You tell me
Mount.sh
Code:
#!/bin/sh
busybox mount --bind /dev dev
busybox mount --bind /sys sys
busybox mount --bind /proc proc
busybox mount --bind /data/cache tmp
busybox mount --bind /dev/pts dev/pts
busybox mount --bind /system system #optional
busybox mount --bind /sdcard root
Chroot.sh
Code:
#!/bin/sh
export TERM=linux
export TMPDIR=/tmp
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
export USER=root
export HOME=/root
/system/bin/chroot . /bin/bash
Is chroot support present in stock kernel?
kvsjxd said:
Is chroot support present in stock kernel?
Click to expand...
Click to collapse
Yes. Just root needed.
An alternative method to do a ubuntu/debian chroot would be to install Termux and just follow the instructions on the termux-ubuntu repository on Github.
Basically you download a script and it installs everything for you.
The readme file of the repo follows:
A script to install Ubuntu chroot in Termux
You need to install wget and proot in Termux before using this script.
Code:
pkg install wget proot
The script will make its files in the current directory. So if you want your Ubuntu-filesystem at a particular location switch to that folder first and then call the script with it's relative path. Example:
Code:
mkdir -p ~/jails/ubuntu
cd ~/jails/ubuntu
wget https://raw.githubusercontent.com/Neo-Oli/termux-ubuntu/master/ubuntu.sh
bash ubuntu.sh
After running it you can run "start-ubuntu.sh" to switch into your ubuntu
Click to expand...
Click to collapse

[Guide][MOD][THEME] Enable WhatsApp Desktop Dark Mode in MacOS

WhatsApp is set to receive the much-awaited dark mode on desktop platforms. According to a recent report by WABetaInfo, WhatsApp Web and WhatsApp for PC/Mac are currently being tested with a dark theme that paints the main screen and side panel in varying shades of dark grey. In recent builds the code for dark mode is available but there's no official option to enable it. So here's how can you enable it yourself.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Enable dark mode in WhatsApp Desktop version of MacOS (Although it must be similar in windows client too)
PREREQUISITES
What things you need to install before starting up WhatsApp Desktop Application Homebrew Nodejs asar node module Installing section is just to install prerequisites if you already don't have them. Otherwise skip to Applying Dark Mode.
INSTALLING
Follow these Steps:
You need to install Whatsapp Desktop on your Mac(Download from OFFICIAL WEBSITE is suggested rather than app store version).
Open Terminal and Install Homebrew
Code:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
This will install Homebrew on your Mac. To check the version type the following command.
Code:
$ brew -v
Install Nodejs using Homebrew
Code:
$ brew install node
If everything installed successfully then you can type in the following command in the terminal to check the Node and NPM version.
Code:
$ node -v
$ npm -v
Install asar node module globally
Code:
$ npm install -g asar
APPLYING DARK MODE
Go into the app’s directory and create a directory for our working
Code:
$ cd /Applications/WhatsApp.app/Contents/Resources
$ mkdir temp-darkmode
Unpack the app.asar file in the above directory using asar
Code:
$ asar extract app.asar temp-darkmode
Open directory temp-darkmode and insert the code
Code:
cd temp-darkmode
open index.html and edit
Code:
nano index.html
find body
HTML:
<body class="native darwin">
replace it with code below
HTML:
<body class="native darwin dark">
save the file, hit ctrl+x type y and enter
Pack the app.asar file,Go into the app’s directory
Code:
$ cd /Applications/WhatsApp.app/Contents/Resources
to pack type
Code:
$ sudo asar pack temp-darkmode app.asar
You are done
Source: Github

[TOOL] Syndical - an alternative to well-known SamLoader

Syndical
This is an alternative to SamLoader - cleaner code, easier to understand and tamper with.
Written purely in C#. SamLoader was, of course, the base of Syndical, but impemented differently.
Current progress can be viewed here: Trello board.
Source code and releases: GitHub.
Why I should use Syndical?
1) It looks a lot better than any other firmware downloaders
2) Download & Decrypt is a lot faster, as it won't download the entire file and then only decrypt it.
3) Because I'll steal your liver
Warning
Resume mode might work not as expected.
Also Samsung ships only two last firmware versions, Fetch is proof.
Screenshots
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
How to use
Arguments
Code:
-m, --mode Required. Which mode I should use
-v, --firmware-version Firmware version
-i, --input File to decrypt
-o, --output Filename for decrypted/downloaded file
-M, --model Required. Device model
-r, --region Required. Device region
-f, --factory Download factory firmware (Binary Nature)
-h, --disable-hash-check Disables hash check in Download mode
-r, --disable-resume Disables resume in Download mode
--help Display this help screen.
--version Display version information.
Modes
Code:
Download Download firmware
Decrypt Decrypt firmware
Fetch Fetch latest firmware
DownloadDecrypt Download and decrypt firmware simultaneously
Examples
Code:
./Syndical.Application -m Download -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -f
./Syndical.Application -m Decrypt -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -f
./Syndical.Application -m DownloadDecrypt -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -f
./Syndical.Application -m Fetch -M SM-A207F -r SER
Credits
TheAirBlow for Syndical itself .
nlscc for SamLoader.
Licence
Mozilla Public License Version 2.0
Interesting. Does it have a GUI?
Slaggy said:
Interesting. Does it have a GUI?
Click to expand...
Click to collapse
It doesn't, and probably it never would get one. Maybe I'll make an Avalonia GUI for Thor Suite (I have plans to make a software bundle: flash tool, firmware downloader, PIT Viewer/Editor, etc.), but I want to make the flash tool and etc. to be written in C++ (it would be faster, I can make my own driver, working with libusb is easier, etc.), but I'm very bad at it, so I need someone with relatively good knowledge to help me. Until I find someone, all Samsung Loki projects would be abandoned (Thor and Syndical)

Categories

Resources