[Remix OS for PC] HypoTurtle:
Note: This is a Q/A thread please don't duplicate posts - upvote/comment on similar post

Root Access

By default you have access to root via the root shell (ALT+F1 ALT+F7 to exit) using this root will give you access/control over some system related items but for proper root access and use of a su access manager (i.e. SuperSu) you need to 'manually' install a SuperSU.zip package that is normally installed via recovery - this process has been automated via RMXTools on Windows and a rootx.sh script on Linux.

Additionally the system is being 'forced' to remain ro (read-only) via the initrd.img - so an altered one is needed - the one provided here has just two ro's removed so the OTA mechanic is still in place.

System-less root

An alternative to the above this requires modifying ramdisk.img and includng a file in the data.img.

Required files can be obtained here: 64bit [32bit - will require it's own su.img and ramdisk.img]

Instructions -- download and replace the ramdisk.img (keep a copy of the original for OTA),

-- boot into RemixOS

-- download su.img

-- copy su.img to /data/su.img using ALT&F1 # i.e #cp /data/media/0/Download/su.img /data/su.img

-- reboot

Optional. If you also want rw access to /system files, then also download an replace the initrd.img ==> this will break OTA and will require replacing initrd.img and system.img with stock files for an OTA to complete.

Note. It is unknown what the consequence of rooting/modifying system.img will have on applying the implied upcoming regular OTA's OTA section follows
​

OTA

OTA's as expected/hoped are patched updates, unfortunately they aren't individual file patches but are block patches, meaningthat for an OTA to complete you need to have stock unaltered system.img, ramdisk.img, kernel and initrd.img files - if you have altered any of these or potentially just mounted system as rw even once; an OTA will simply fail.

Verification Lets have a look at the OTA [64bit] updater-script

(range_sha1("/mnt/system.img", "2,0,1") == "12775f6b5137acc7d8a1dcc2f4a401d194ce7644") || abort("/mnt/system.img has been remounted R/W; reflash device to reenable OTA updates");
if range_sha1("/mnt/system.img", "2,0,655360") == "359e95683918ae74e3742dbf2c6e50ef20fb38e8" then
ui_print("Verified system image...");
else
(range_sha1("/mnt/system.img", "2,0,655360") == "177ef6310b9f9125f9d76e71da381d98d50dfb6d") ||
abort("system partition has unexpected contents");
endif;
apply_patch_check("/mnt/initrd.img", "2", "bb0e9d622986383dcdba757ed6602d4f39f878ff", "1ea2c462df3804af097cf6c9deb7a062af7a4659") || abort("\"/mnt/initrd.img\" has unexpected contents.");
apply_patch_check("/mnt/ramdisk.img", "2", "4a516fa61dc2ffabe03806aa768217cb7c713ea2", "b14ab6183073f0162c95f80ed8168f3462882fcb") || abort("\"/mnt/ramdisk.img\" has unexpected contents.");
apply_patch_check("/mnt/kernel", "2", "ffbd1a85f514f1c662b327733b96a63535b11a95", "9a4464cae128abb4b90148aa413d6035ef09b5af") || abort("\"/mnt/kernel\" has unexpected contents.");

# ---- start making changes here ----

ui_print("Patching system image after verification.");
show_progress(0.900000, 0);
block_image_update("/mnt/system.img", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");
apply_patch("/mnt/initrd.img", "-",
1ea2c462df3804af097cf6c9deb7a062af7a4659, 1568778,
bb0e9d622986383dcdba757ed6602d4f39f878ff, package_extract_file("initrd.img.p"));
apply_patch("/mnt/ramdisk.img", "-",
b14ab6183073f0162c95f80ed8168f3462882fcb, 1153529,
4a516fa61dc2ffabe03806aa768217cb7c713ea2, package_extract_file("ramdisk.img.p"));
apply_patch("/mnt/kernel", "-",
9a4464cae128abb4b90148aa413d6035ef09b5af, 5041936,
ffbd1a85f514f1c662b327733b96a63535b11a95, package_extract_file("kernel.p"));
set_progress(1.000000);

From this we can see the 4 needed files as stated previously and the expected sha1 hash for these files:

[b]64bit 1503 OTA[/b]
ramdisk.img b14ab6183073f0162c95f80ed8168f3462882fcb
system.img 359e95683918ae74e3742dbf2c6e50ef20fb38e8
initrd.img 1ea2c462df3804af097cf6c9deb7a062af7a4659
kernel 9a4464cae128abb4b90148aa413d6035ef09b5af
Could someone with 32bit OTA post their sha1 values

In order to check these in Windows open a command prompt in the RemixOS folder and issue:

PowerShell

Get-FileHash -Path .\*.img -Algorithm sha1 > sha1.txt

Get-FileHash -Path .\kernel -Algorithm sha1 >> sha1.txt

Then read the resultant sha1.txt file​

GApps

Within the beta there are preinstalled 'disabled' gapps

#terminal (ALT+F1)

Original Credit goes to [url="https://www.reddit.com/r/RemixOS/comments/48puc4/gapps_are_preinstalled_but_hidden_heres_how_to/"]SubredditReddit[/url]
Follow the guide there - I would just be parroting it.

GUI (Via App)

[unverified]

Freeze JideAppPolicy app

Unfreeze GoogleApps

Alternative: Those who kept their gapped installed data from Alpha to Beta may have noticed that gapps still worked with doing anything to 'enable' them ; thus it must be concluded that something in data is keeping them active - perhaps an update of GooglePlay(Services) has been installed in /data - in that vain could someone simply install a copy of PlayStore and/or GooglePlayServices obtained from apkmirror.com or via raccon
​

Overlay Apps

Overlay apps like Tincore Keymapper and Twilight can't run properly by default due to them not having access to the Draw On Top permission - there are several reasons for this I guess; 1 being that with the multiwindow framework overlays are part of the integral part of the OS and third-party apps possibly misusing it could have unforseen consequences, and 2 it could simply be proper Android policy (the overlay was originally indented for just Warning/Error messages).

That being said; Tincore and Twilight have worked fine for me, but use at your own risk.

GUI (Via App)

Download App Ops from the Playstore (root required) - this one is tested and works as expected.

Once downloaded give it root access, install AppOps and reboot.

After reboot open the AppOps app, go to device tab, find the desired app and give it the Draw On Top permission.

#terminal (ALT+F1)

[unverified]There is an appopps binary present in /system/bin (well a script for appopps.jar) - likely it's being used to disable this 'feature'

[b]---For Tincore Remapper ---
#appops set com.tincore.and.remapper SYSTEM_ALERT_WINDOW allow
--- For Twilight ---
#appops set com.urbandroid.lux SYSTEM_ALERT_WINDOW allow[/b]

Personally I wouldn't touch anything else in the AppOps app to reduce the risk of messing something up.

Note: if using a overlay layer like Twilight, buttons like those to grant SU permission will be unclickable until you disable/pause the overlay

Alternative [unverified]: the root App Ops app just needs root to install another app named App Ops to /system/priv-app as seen in the attached screenshot below - thus it should be possible to include this app via something like the rooting method from RMXTools without requiring full root to be installed. But it's untested ad I wouldn't be comfortable with posting a copy of that apk without the developers permission.

Screenshots

Tablet Mode

GUI (App/Root Browser)

/system/build.prop edit ro.remixos.box=true to ro.remixos.box=false

and while you are there you might as well edit

ro.no_wallpaper=true to ro.no_wallpaper=false

#terminal (ALT+F1)

[unverified]

[b]#sed -i -e 's/ro.remixos.box=true/ro.remixos.box=false/g' /system/build.prop[/b]
[b]#sed -i -e 's/ro.no_wallpaper=true/ro.no_wallpaper=false/g' /system/build.prop[/b]

Screenshot

Launcher

In RemixOS the default desktop is essentially (like Windows) an expanded file browser window (com.jide.filemanager); enabling tablet mode (/disabling box mode) as above and exposing additional Experimental Features (multitap kernel version in Settings => About) allows you to disable the file based browser and use the other; technically stock launcher (com.android.launcher3); this is a minimal launcher without widget support and without an app drawer.

Third-party launchers

Download your 3rd party app of choice (Nova/Apex seem to be working 'fine')

GUI (Via App)

freeze My Home and Launcher

#terminal (ALT+F1)

[b]#pm disable com.android.launcher3
#pm disable com.jide.filelauncher[/b]

Press the Home (circle) button. Once launcher is set-up make sure it is set to run in full-screen mode i.e. Settings=>App=>Nova=>Restart in FullScreen Mode​

Credit to rafial who mentioned a similar procedure with launcher3 for Remix1.0

Screenshots

PhoenixOS

In PhoenixOS there is a similar filemanager/launcher3 setup but launcher3 is an 'empty' app and additionally 3rd party launchers are actively blocked from being installed, so until the location of this block is found 3rd party launchers won't work

​

(Auto-)Rotation

Due to the number of different accelerometer/gyroscope sensors there are numerous different ways that sensors reading can be processed; and currently Ax86 doesn't read from a property value to rearrange the sensor readings - thus if you 'enable' autorotation (disable the forced landscape), results may vary by device - i.e. screen/accelerometer may be misaligned (90/180/270 degrees).

To enable autoration - in addition to the build.prop edits for 'Tablet Mode' above; enable additional Experimental Features by multitapping on Kernel version info - then disabling Forced landscape and file based launcher

Screenshots

Disabling Inputs

Procedure listed here​

Apps

If an app isn't working correctly or instantly crashes there's 2 options to try before writting it off:

1. Open the app fullscreen mode

2. If available use a different set of libs; this is done using pm install -r --abi * *.apk

I have also a simple script here it's run like applib sonic for a sonic app, then follow onscreen directions (add this to /system/bin as well)​

Build Prop tweaks

Apart from the Tablet mode edits mentioned above:

​

Requests

If there's something that works in Androidx86 but not in RemixOS then please request it here and I'll take a look​