Remove Exchange lock on Captivate with 2.2 Stock ROM - Captivate Q&A, Help & Troubleshooting

I'm a Samsung Captivate user with the stock AT&T Froyo 2.2 ROM, rooted. After some playing around I think I have atomic reproducible steps for trimming out the Exchange security policies. Removed my post in the other thread on this and posting in the Captivate forum.
NOTE: I included the steps for BUILDING this APK (primarily for other phones that are similar but not identical), but many people won't want that. If you are only interested in using my pre-built .APK file, skip down to "II. INSTALLING the modified Email.apk". Download link provided there. You must still have rooted your phone and have a working busybox install (I usually just use Titanium Backup to fix my busybox install the first time after rooting).
As always, this is at YOUR own risk. YOU take responsibility for the fact you may be violating your corporate email policies.
CREDITS:
Initial thread giving me hints
This post for giving extra info on how to handle odexed APKs
This thread giving me the final clue on disabling the check
Smali/Baksmali project for deodexing and re-odexing files
NOTE: I don't actually know if the second code change (as shown below) was necessary or not. I did this change first and after it I still had to accept the security policy, delete the policy after email configuration, and I still got notifications about needing to accept the security policy every time I read mail (even though I didn't actually accept the policy again). To really make the APK work I had to add the first change below. However the APK is working for me so I'm going to keep it in there.
I. BUILDING the modified Email.apk on a Samsung Captivate Froyo 2.2 stock ROM using Windows 7
I tried to make the instructions detailed enough that you can do this on other builds, too. If you are using a custom ROM, chances are good you won't have an Email.odex file, which will significantly slim down the steps needed.
The first 2 items are left as exercises for the reader since they are well documented elsewhere.
root your phone and get busybox installed/working
get adb running in an otherwise empty subdirectory (I used "deodex")
grab a copy of baksmali and smali from http://code.google.com/p/smali/downloads/list
... make sure java is in your %PATH% as documented on the Smali site
NOTE: the following commands are run from your "cmd" window:
`adb pull /system/framework`
`adb pull /system/app/Email.apk`
`java -jar baksmali.jar -c:twframework.odex -x Email.apk`
... Samsung default ROM uses touchwiz, so we needed to include it for baksmali (note: leave out the "-c:twframework.odex" for AOSP-based ROMs like CM7)
... output of the odex should be in a new subdirectory
Edit "out\com\android\email\SecurityPolicy$Policy.smali (note, on CM7 and probably AOSP this is SecurityPolicy.smali)
... Find the line with "const/4 v5, 0x0" in it (for the Captivate APK it was line 641) in the ".method public isActive" section
... Replace "0x0" in that line with "0x1".
Edit "out\com\android\email\SecurityPolicy$PolicyAdmin.smali
... replace the contents of the "onDisabled" section with the contents of the "onEnabled" section
Original code:
Code:
.method public onDisabled(Landroid/content/Context;Landroid/content/Intent;)V
.registers 5
.parameter "context"
.parameter "intent"
.prologue
.line 647
invoke-static {p1}, Lcom/android/email/SecurityPolicy;->getInstance(Landroid/content/Context;)Lcom/android/email/SecurityPolicy;
move-result-object v0
const/4 v1, 0x0
invoke-virtual {v0, v1}, Lcom/android/email/SecurityPolicy;->onAdminEnabled(Z)V
.line 648
return-void
.end method
New Code
Code:
.method public onDisabled(Landroid/content/Context;Landroid/content/Intent;)V
.registers 5
.parameter "context"
.parameter "intent"
.prologue
.line 639
invoke-static {p1}, Lcom/android/email/SecurityPolicy;->getInstance(Landroid/content/Context;)Lcom/android/email/SecurityPolicy;
move-result-object v0
const/4 v1, 0x1
invoke-virtual {v0, v1}, Lcom/android/email/SecurityPolicy;->onAdminEnabled(Z)V
.line 640
return-void
.end method
`java -jar smali.jar -o classes.dex out`
Using something like 7zip, open the "Email.apk" file and add your new "classes.dex" to the apk
II. INSTALLING the modified Email.apk
NOTE: If you chose to download my modified Email.apk, grab it here. You must still have rooted your phone and have a working busybox install (I usually just use Titanium Backup to fix my busybox install the first time after rooting).
NOTE: Next steps can be altered to fit your preferred method for removing and uploading the Email.apk. The important part is to make sure you delete "/system/app/Email.apk" and "/system/app/Email.odex", then push your new Email.apk to /system/app ... my steps follow.
NOTE: THE FOLLOWING IS GOING TO GET SPECIFIC TO THE SAMSUNG CAPTIVATE RUNNING STOCK FROYO 2.2, modify the shell commands to fit YOUR device.
from Windows command shell again: `adb push Email.apk /mnt/sdcard`
Force Email to stop (Settings -> Applications -> Manage Applications -> All -> Email -> Force Stop) ... while you're in there you may want to "Clear Data". Not sure if this was important or not.
Load your adb shell via "adb shell". The following commands are to be run directly in your adb shell:
`su` # become superuser
`mount` # see which partition YOUR /system is and use it in the next command if different!
`mount -o rw,remount -t yaffs2 /dev/block/stl9 /system` # /dev/block/stl9 may differ for you! NOT st19, stl9. Remounts writeable
`cp /system/app/Email.odex /mnt/sdcard/Email.odex-ORIGINAL` # back up your files just in case
`cp /system/app/Email.apk /mnt/sdcard/Email.apk-ORIGINAL`
`rm /system/app/Email.odex`
`rm /system/app/Email.apk`
`cp /mnt/sdcard/Email.apk /system/app` # copy the file from the sdcard, had failures when trying to push directly to /system/app
`chmod 644 /system/app/Email.apk` # give it normal APK permissions
`rm /mnt/sdcard/Email.apk` # remove from the temp location
`mount -o ro,remount -t yaffs2 /dev/block/stl9 /system` # remount to read-only
`exit` # get out of su
`exit` # get out of the shell
Add your Exchange account as normal.
NOTE: You will get a message saying you have to accept the server security policy, however I did not actually have to do so.
OPTIONAL: Add the "Email" icon back to the touchwiz launcher (unless you'd rather use something else):
Applications -> {Context menu} -> View Type -> "Customizable Grid"
{Context menu} -> Edit
Drag the Email icon down to the launcher bar where it used to be (or customize it with something else ... only the middle 2 launcher icons are configurable, Phone and Applications/Home will be locked)
{Context menu} -> Save
OPTIONAL: Switch back to Alphabetical List or Alphabetical Grid via the "View Type" setting.
To be sure you have things working, it is a good idea to reboot. See note below.
NOTE: Originally I had a few random shutdowns after finishing the above, might be unrelated (I'm a little worried I got -another- phone with that problem after warranty replacement). They went away after I did a battery removal and charged to 100% before powering on. If you get a random shutdown, do this. However I'm not adding this as a required step since I was later able to upgrade without even needing a reboot. It may have been something that corrupted when removing the initial .odex file, which was not needed as I kept testing new versions.

Thank you!

There are pre-built APKs posted all over XDA, some modified from Stock Android 2.2, some Android 2.3 and some from CM7. I have tried them all before. But all of them lacking a lot of exchange specific features like Out of Office settings, peak/off peak schedule and move mail to folders etc. The stock email client from Samsung actually quite feature packed.

calestus said:
Thank you!
Click to expand...
Click to collapse
Very welcome
As an update I've been running this email package since posting and have had zero issues. Just in case someone reading this is worried about problems.

Awesome, thanks...

I recently got a Captivate myself, and found when I updated to Froyo I could no longer add my Exchange account. I tried using the Email.apk you modded but was still unable to add my Exchange account. I had struggled with this same issue running Froyo on my old WinMo phone. In that instance using the mods from this post I was able to get Froyo to work with my Exchange server, so I incorporated those changes (along with my own) and followed your directions for the Captivate.
After studying the output from smali I changed the method ProvisionDocWbxml() in com\android\exchange\adapter\ProvisionParser.smali to the following:
Code:
.method private parseProvisionDocWbxml()V
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v5, 0x1
.line 64
const/4 v1, 0x0
.line 65
.local v1, minPasswordLength:I
const/4 v2, 0x0
.line 66
.local v2, passwordMode:I
const/4 v3, 0x0
.line 67
.local v3, maxPasswordFails:I
const/4 v4, 0x0
.line 68
.local v4, maxScreenLockTime:I
const/4 v7, 0x1
.line 72
.local v7, supported:Z
const/4 v6, 0x0
.line 74
.local v6, isDevicePasswordRequired:Z
.line 139
new-instance v0, Lcom/android/email/SecurityPolicy$PolicySet;
invoke-direct/range {v0 .. v5}, Lcom/android/email/SecurityPolicy$PolicySet;-><init>(IIIIZ)V
iput-object v0, p0, Lcom/android/exchange/adapter/ProvisionParser;->mPolicySet:Lcom/android/email/SecurityPolicy$PolicySet;
.line 141
return-void
.end method
The original mod from the mentioned post worked in the past, but this should bypass the checking altogether and simply create a security policy with the default settings of nothing. I'm not anywhere near 100% sure this is clean, and it could probably be tweaked further (for one it appears like it's allocating 10 memory registers but only 8 are being used now, and v6 isDevicePasswordRequired isn't being used either). If the Email app would actually tell me what policy the phone doesn't support I would have just taken that one out instead of disabling the security entirely.
I continued following the directions in the first post. Once I added classes.dex into the apk I signed it following the instructions here and optimized it with the zipalign tool. On the WinMo Android I wasn't able to run the apk without signing it so I didn't even try here.
With the new apk I was able to add my Exchange account. It's been working now for a couple hours. The only issue I've noticed so far is the account name in the Mail app itself was showing [email protected] (I put this in as the email address when I added the account to get to the server settings screen, since my email address and username aren't related). I changed the account name in the account properties but it didn't update it. Removing the account and adding it back with the correct information fixed it.
All the standard caveats apply... like jahfry said, you may be violating your corporate email policies by doing this. At the very least set some sort of password on your device.

It works for the Verizon Samsung Fascinate too!!
Running EB01 Deoxed with EB16 kernel. rooted
Here's what I did:
1. removed exchange account and selected "none" under security setting.
2. using RootExplorer went to /system/app and renamed email.apk to email.apk.old.
3. copy op's email.apk to /system/app
4. reboot, then added exchange account, accepted both terms of use and administrative security agreements. I was NOT asked to set pin and when i wake up the phone it goes right to puzzle lock!!
No More PIN every time the phone sleeps.
Huge thanks to the OP for this!

Just wanted to add, settings stayed intact after another manual reboot!
Thanks again OP!

For what it's worth....
Just an FYI for you guys, I work in IT (as I'm sure many of you do) and we have Exchange policies pushed out to any phone getting email for HIPPA reasons. We recently had a user lose their phone, and after finding that they had disabled the security on they phone (we test to confirm functionality at time of configuration, so we knew it WAS working), they were immediately terminated (all users who receive email on their phones must sign an agreement that they understand the policies and will abide by them).
I know it's a bit of a pain, but weigh that against unemployment in this economy.

Luckily I don't have to contend with HIPPA issues (except for that tediously boring training seminar) or a signed agreement, though that by no means justifies disabling the security. I completely understand the ramifications of doing this and if I could leave the policies intact and continue to access email on my device I would. I too work in IT and at least once a month have to wipe a device for one reason or another.
The thing that really irks me is I was able to sync my phone when it was running 2.1. After installing the "official" Samsung update for 2.2 my phone no longer supports features it had previously. Granted 2.1 was probably not supporting whatever particular policy is failing on 2.2, but they should have either added true support for the policy or left the "bug" intact.
I know I could put 2.1 back on the phone (at one point I even did so to make sure I could), but I like 2.2. And even though I have a password on my phone I imagine at the very least I'd get a good spanking if discovered by the security czar. Hopefully I don't work with anyone here Currently I've given up on the patched app and am exploring some of the other available email applications. Maybe Samsung will release another update that will fix this issue in the future (but who am I kidding).

This syncs up my mail quite well, but I get occasional force close when viewing messages, and consistent force close when hitting reply. So it's not really usable for me, at the moment.
Has anyone else had this problem, and if so how did you fix it?
Thanks!

I'm still using this on the Captivate with happiness. I decided I wanted to have it on my Nook Color, too. Unfortunately I didn't see CrEOF's post until after I got it done ... and I have about 6 hours to get to the airport ... so my Nook package is my original. However its working beautifully for me so I'm not going to worry about it.
My Nook is running CM7 7.10 beta3.1 with Dalingrin's .32 kernel ... however it looks like Email.apk hasn't been changes significantly in a long time so I'm betting this .apk will work with any CM7 (CyanogenMod) device, possibly any CM device, and possibly any AOSP device. The Samsung devices needed Touchwiz libraries but this one doesn't have those.
If you have a Samsung device with stock ROM, see the TOP POST for your .apk. The following is for almost everyone else:
http://www.easy-share.com/1915675065/Email.apk
Again ... don't use the link directly above if you're using a stock Samsung device with Touchwiz ... go to the top post for that.

ohnoezmahfone said:
This syncs up my mail quite well, but I get occasional force close when viewing messages, and consistent force close when hitting reply. So it's not really usable for me, at the moment.
Has anyone else had this problem, and if so how did you fix it?
Thanks!
Click to expand...
Click to collapse
I haven't seen that problem at all, and haven't been getting reports of bad issues with the mod. Are you running the 2.2 Froyo version of the Samsung Captivate stock firmware? Might be library incompatibilities with the 2.1 Eclair version.
Otherwise I'd recommend:
* re-downloading and re-installing to make sure there was no corruption
* using Clockwork Mod or something similar to clear your Dalvik cache just to be sure
Not sure past that. Good luck

I just loaded Cognition 5 v2 (2.3.3) on my Captivate. Any chance this will work on it?

Wow. Sorry for the long delay in replying. It should work on Gingerbread ROMs just fine.
After jumping from 2.2 to a couple of ICS ROMs (which I knew this probably wouldn't work on ... and there are other mod'ed Email.apk versions out there for ICS ROMs anyway) ... I decided to go back to rooted stock. So, I just tested Email.apk out with my 2.3.5 stock install and ...
All seems to work just fine, without needing mods.
I don't think much changed in the Email app between 2.2 and 2.3.5 anyway, so I'm planning to just keep using this.

Related

[P905 LTE ONLY!][KERNEL][ODIN] STOCK RELOADED | su | busybox | init.d | permissive !

I am not responsible for any possible bad effects which may result from using included software! You flash it on your own risk!!!
STOCK RELOADED v1 fix 1
Kernel base: stock XXUANC3 (kernel 3.4.0-1131235)
Kernel ramdisk: modded
Features: a few...
Security level: low!
Purpose: giving everyone who loves free exploring of Android secrets and who doesn't consider security as an absolute priority and who wants to put some life in this, indeed, awesome device, a possibility of playing with his device without disturbing restrictions, forced by Samsung, at least until fully-custom kernels, compiled from sources, appear (and that may take some time, as source code available atm seems to be broken, causing all the compiled kernels to stuck at boot screen).
Features working out-of-the-box:
- su binary from SuperSU by Chainfire @ /sbin/su (binary only for scripting purposes! Flash cf-root to use SuperSU app!)
- busybox 1.22.1 binary compiled by Stericson @ /sbin/busybox
- init.d support - just put your favorite scripts into /system/etc/init.d using any file manager and chmod 755 (not 777! it's NOT smart to permit write access for "world" to any system file), chown root:root, they will run on every boot. Well, to be honest, above permissions are given to all the scripts automatically during boot, but it has not yet been tested
- SELinux: Permissive - Samsung's most recent policy of forcing SELinux Enforcing mode by pre-compiling it into a kernel binary part, found in latest KitKat builds since at least a few months, HACKED FOR THE FIRST TIME EVER using innovative method of injecting an information directly into kernel memory space and forcing overwriting potentially-persistent kernel symbol value on-line during boot!)
- unsecure adb access (not tested yet)
- ext4 tweak: 20 sec (instead of stock 5 sec) write commit delay for /data partition (significantly increases IO performance!)
- some further, minor modifications
WARNING!!!
- flashing this WILL undoubtly trip KNOX, avoiding your warranty (which atm cannot be reverted! in any way)
- flashing this WILL cause a warning message of avoided warranty to be displayed on every boot (ofc it disappears right after reverting to stock boot.img)
- flashing this WILL disable some of the very important security features provided with stock firmware!!!! For advanced and experienced users only!!! Use at your own risk!
Known issues:
- AllCast Share mirroring not working (typical for all Samsung devices running not-exactly-stock kernels since S3). WORKING FIX AT POST #16!!!
http://forum.xda-developers.com/showpost.php?p=54516532&postcount=16
Please consider solution from post #3 as not-always-working and depreciated!
Installation:
- compatibile with XXUANC3 firmwares but probably also with other (past and hope future too...) KitKat 4.4.2 Samsung branded firmwares;
- rooting by Chainfire's CF-Root first recommended as it will install SuperSU app in Android (this kernel contains su binary only giving su access without any policy settings!);
- enter download mode and plug the tablet via USB...
- ...select provided file in PDA section (and NOT touch anything except that)...
- ...and flash with Odin in a same way as CF-Root or like anything else...
- enjoy.
DOWNLOAD HERE:
Current version - STOCK RELOADED v1 fix 1
http://www63.zippyshare.com/v/87557346/file.html
FIXED: file name changed so it can be flashed directly by Odin without renaming! Sorry for this silly mistake!
=======
Changelog:
v1 fix1:
- fixed permissive mode due to trivial error;
- delayed init.d execution to a moment AFTER init process set cfq scheduler so it is not overriding mmcblk0 tweaks (if put in init.d) anymore;
- minor code cleanups
v1:
- initial release
- init.d support
- SELinux permissive
- unsecure ADB
- ext4 delayed commit for /data
=======
Stock XXUANC3 kernel (to revert changes)
http://www65.zippyshare.com/v/32441894/file.html
Revert using Odin, in the same way you've installed a Reloaded Version....
Awww man,...I wish i could flash this, but I'm on the exynos =(
Sent from my SM-P900 using Tapatalk
rgolnazarian said:
Awww man,...I wish i could flash this, but I'm on the exynos =(
Sent from my SM-P900 using Tapatalk
Click to expand...
Click to collapse
Sorry pal, Qualcomm only, not even a chance to run this same way as the devices (and mostly important: provided software, ie. system structure) DIFFER A LOT between themselves.
Update 1: uploaded fix #1 which is resolving some trivial issues found in initial version; sorry for that, now we can say that every described feature has been included hope for some feedback... thank you...
Update 2: FIX FOR NOT WORKING SCREEN MIRRORING CAN BE DOWNLOADED HERE:
http://www67.zippyshare.com/v/25492738/file.html
I have personally modified a library that is being used by screen mirroring feature, which forces video encryption using keys from stock kernel, and which prevents to run mirroring at all . This is an issue of any modified kernel, on any Samsung device. Attached library fixes this, by disabling HDCP at all. It has been reported that the library resolves the issue for any Qualcomm based Samsung device running 4.4.2 KitKat and for any custom kernel. It will NOT work for Exynos devices...
Installation:
- download attached libwfdsm.so file
- overwrite genuine one in/system/vendor/lib (important! NOT /system/lib!!!!)
- chmod 644 libwfdsm.so ||| chown 0.0 libwfdsm.so ||| restorecon -R /system/vendor/lib
- mirroring will work again after reboot!!
YAY!
Beautiful, absolutely beautiful. You made ma a very happy man with this. I'll flash this as soon as I get home from work. Can't wait to try it out, the stock kernel is giving me SOD and frozen wifi issues sometimes.
esgie said:
Sorry pal, Qualcomm only, not even a chance to run this same way as the devices (and mostly important: provided software, ie. system structure) DIFFER A LOT between themselves.
Update 1: uploaded fix #1 which is resolving some trivial issues found in initial version; sorry for that, now we can say that every described feature has been included hope for some feedback... thank you...
Update 2: FIX FOR NOT WORKING SCREEN MIRRORING CAN BE DOWNLOADED HERE:
http://www67.zippyshare.com/v/25492738/file.html
I have personally modified a library that is being used by screen mirroring feature, which forces video encryption using keys from stock kernel, and which prevents to run mirroring at all . This is an issue of any modified kernel, on any Samsung device. Attached library fixes this, by disabling HDCP at all. It has been reported that the library resolves the issue for any Qualcomm based Samsung device running 4.4.2 KitKat and for any custom kernel. It will NOT work for Exynos devices...
Installation:
- download attached libwfdsm.so file
- overwrite genuine one in/system/vendor/lib (important! NOT /system/lib!!!!)
- chmod 644 libwfdsm.so ||| chown 0.0 libwfdsm.so ||| restorecon -R /system/vendor/lib
- mirroring will work again after reboot!!
Click to expand...
Click to collapse
I was literally just about to post in the old thread with bad news about the modified "libwfdsm.so" file & screen mirroring with a custom kernel...if u remember i confirmed that the file u altered would work with a custom recovery on the 8.4 lte & i just assumed that it would work with an altered boot.img as well but unfortunately thats not the case after testing the other night (unless something else is wrong with my setup). So...my question is have u changed something else since then to allow it to work again & have u personally tested this yourself?
sorry to hijack the thread...didnt know if i should pm or post in the older thread
THEDEVIOUS1 said:
I was literally just about to post in the old thread with bad news about the modified "libwfdsm.so" file & screen mirroring with a custom kernel...if u remember i confirmed that the file u altered would work with a custom recovery on the 8.4 lte & i just assumed that it would work with an altered boot.img as well but unfortunately thats not the case after testing the other night (unless something else is wrong with my setup). So...my question is have u changed something else since then to allow it to work again & have u personally tested this yourself?
sorry to hijack the thread...didnt know if i should pm or post in the older thread
Click to expand...
Click to collapse
No problem, anyway, thanks for pointing the issue out! This may be an important information for mirroring users!
Since then I didn't change anything, yet. Really, I am also not sure if I have tested it with modified kernel, as the one posted here is the first kernel for P905 at all, and it's not even "fully" customized, as the kernel binary base was left unchanged.
So, I'd like to be sure: you are saying that modded lib:
- fixed the problem for custom recovery, but...
- ...didn't fix it for custom kernel
right?
I was looking for a solution to persistent enforcing mode since some time, so I was flashing test boot.imgs from time to time, then reverting to stock again, meanwhile I created above lib, I can't really be sure about if it is working when both bootimg and kernel are customized (this would also be an opposite to previous Sammy's Android releases, where a single fix was solving all the issues related to customizations of both kernel and recovery!).
We also have to be aware that the issues may not be a result of flashing different kernel at all, but a result of the changes themselves, ie. disabled knox, disabled encryption of i-dont-really-know-what, etc, etc.
And the most important thing! Since I have heard of AllShareCast/Screen Mirroring for the first time (it probably appeared for the first time in S3/Note2/Note10.1), it always required resetting the flash counter - which could be viewed in download mode and which is NOT the same as Knox flag - to ZERO and that requirement AFAIR remained totally independent from the requirement of having stock boot/kernel (or lib patch). Have you checked the counter state? Did you reset it to zero again using Chainfire's Triangle Away after flashing non-stock kernel (which, obviously, TRIPPED the counter)? Can you check if it is working? Note that at least on my P905, Triangle Away still works flawlessly and resets the counter without any problems and even without a need of reboot!
Please check above info and try if the issue is fixed after running Triangle Away. I am leaving for a short business trip soon, so I'll perform my own tests with AllShare cast until next of the week, however, neither today nor tomorrow...
I get an "md5 error! binary is invalid" when I choosse the file in Odin. I downloaded the file 6 times, and every time I get the md5 error.
What do I do?
EDIT: Renaming the file to "boot.tar.md5" seemed to solve the problem.
cavkic said:
I get an "md5 error! binary is invalid" when I choosse the file in Odin. I downloaded the file 6 times, and every time I get the md5 error.
What do I do?
EDIT: Renaming the file to "boot.tar.md5" seemed to solve the problem.
Click to expand...
Click to collapse
Argh possibly too many dots in filename... will correct it tomorrow.
cavkic said:
I get an "md5 error! binary is invalid" when I choosse the file in Odin. I downloaded the file 6 times, and every time I get the md5 error.
What do I do?
EDIT: Renaming the file to "boot.tar.md5" seemed to solve the problem.
Click to expand...
Click to collapse
same here...
Hi,
I have a problem with screen mirroring.
Installed the patch and mirroring connects to the dongle, but the TV screen turns just black.
The dongle works perfect with HTC One M8, it must be a softwareproblem?
Thanks for help!!!
Will this work on the P905V (Verizon Variant)? I need to downgrade the permissions in my Security in order to use Towelroot, because they're set to Medium and I believe that prevents Towelroot to work properly. Most of the other Note 12.2 variants have been rooted....except the Verizon version.
Can anyone give me some advice please. When I enter the command in terminal emulator I get an error saying "Unable to open chown. No such file or directory". Am I missing something obvious lol.
Will this work on p907a AT&T version of note pro 12.2?
Sent from my SAMSUNG-SM-P907A using XDA Premium 4 mobile app
cnote74 said:
Will this work on p907a AT&T version of note pro 12.2?
Sent from my SAMSUNG-SM-P907A using XDA Premium 4 mobile app
Click to expand...
Click to collapse
On the topic name it says [P905 LTE ONLY], and your device is some different..
tdetroit said:
Will this work on the P905V (Verizon Variant)? I need to downgrade the permissions in my Security in order to use Towelroot, because they're set to Medium and I believe that prevents Towelroot to work properly. Most of the other Note 12.2 variants have been rooted....except the Verizon version.
Click to expand...
Click to collapse
I would like this answered as well. I also have the "v" variant. Maybe saying LTE includes many? See my link I attached, found while investigating this specific question.
http://www.usatoday.com/story/tech/2013/07/07/sprint-att-verizon-phones-network-carriers/2486813/
Ever since I rooted my tablet it goes on random reboot kicks. I want to start over. Also TWRP will not stick when I try to flash it.
I have many issues which I'm currently posing in their appropriate forums. It would be nice to wipe to a rooted stock.
Guys!
I have probably found another solution for non-working Screen Mirroring / AllShare Cast when custom kernel is flashed (again, LTE devices only).
No need of modded lib
Seems that the only thing we need is to
1) run Terminal Emulator and type:
Code:
su -c setprop wlan.wfd.hdcp disable
(will work immediately; won't stick between reboots!), OR...
2) edit /system/build.prop file with any root file manager/text editor and add a line (no matter where):
Code:
wlan.wfd.hdcp=disable
(will work only after reboot; will stick between reboots).
Try this using kernel from op waiting for feedback!
Thanks. The Galaxy is connecting to theTV, but the screen is only turning black - no Display...
Any idea?
Thank you.
esgie said:
Guys!
I have probably found another solution for non-working Screen Mirroring / AllShare Cast when custom kernel is flashed (again, LTE devices only).
No need of modded lib
Seems that the only thing we need is to
1) run Terminal Emulator and type:
Code:
su -c setprop wlan.wfd.hdcp disable
(will work immediately; won't stick between reboots!), OR...
2) edit /system/build.prop file with any root file manager/text editor and add a line (no matter where):
Code:
wlan.wfd.hdcp=disable
(will work only after reboot; will stick between reboots).
Try this using kernel from op waiting for feedback!
Click to expand...
Click to collapse
esgie said:
Guys!
I have probably found another solution for non-working Screen Mirroring / AllShare Cast when custom kernel is flashed (again, LTE devices only).
No need of modded lib
Seems that the only thing we need is to
1) run Terminal Emulator and type:
Code:
su -c setprop wlan.wfd.hdcp disable
(will work immediately; won't stick between reboots!), OR...
2) edit /system/build.prop file with any root file manager/text editor and add a line (no matter where):
Code:
wlan.wfd.hdcp=disable
(will work only after reboot; will stick between reboots).
Try this using kernel from op waiting for feedback!
Click to expand...
Click to collapse
I tried both methods and still get no devices found when I turn on screen mirroring.
ColBill said:
I tried both methods and still get no devices found when I turn on screen mirroring.
Click to expand...
Click to collapse
Hm.
This is weird, as the problems with allshare cast + custom kernels is not that "no devices are found" but that devices ARE found without any problem but the connection process fails after a few secs. This solution may help with the issue i described, but it will surely not solve the problem with no peers detected at all.
No peers detected = problems with wifi direct (are you able to send files between wifi direct between devices?)
Can you tell me what is your exact device config? And are you using allsharecast dongle or other third party hardware?
@fokus
Only one: also reset flash counter with Triangle Away and then try again. And make sure you spell the value in the command as "disable" not "disabled" - it's tricky and one can miss it...
Well, there are two additional things to add.
Guys, make sure you have updated Samsung's ScreenMirroring firmware update app to the latest version. And check out the samsung mirroring fix app in google play, which solves some issues for various devices (dunno which ones exactly as i have never been in need of using it).
The fix half worked for me lol. The tablet now connects fine to the Netgear PTV3000 but all I get is black screen. Step in the right direction though as at least it connects now. Just need to get a picture to show lol.

[Q] Init.d Support & SELinux

I am sure this will soon be moved into general ware it will sit among questions not related to compiling or Rom building but I am in hope it is her long enough to be read and maybe addressed.
I rely a bit on init.d support for my Rom's especially CM12. I do this so changes can be made without changing the code or default.xml as much as possible in adition to Google Apps I would like not included. My basic philosophy is if it can be installed via Play Store than I would like the first boot only to include the Google Core files and Play Store so for example if you look at the below github link will see the changes I needed in CM11 to replace the default launcher with the Now Launcher, Replace Stock Camera with Google Camera and the same for the Calendar but would like the users to decide if they would like to include whatever apps they would like as oposed to needing to remove the APK. Anyhow in short I use init.d to avoid making as little changes to code or default.xml as possible as well as what gapps package is used. Many include incompatible libs as a few for my CM based incarnation need to be replaced using either the Stock lib or libs taken from data/app that are more current so the script on first boot after flashing gapps will move files from a staging directory and place or replace ware needed and then remove the staging directory.
CM11
https://github.com/Starship-Android/android_device_starship-common/blob/cm-11.0/app-update
https://github.com/Starship-Android/android_device_starship-common/blob/cm-11.0/cleanup
CM12
https://github.com/Starship-Android/android_device_starship-common/blob/cm-12.0/app-update
https://github.com/Starship-Android/android_device_starship-common/blob/cm-12.0/cleanup
So far have done a decent amount of Google work and have learned my problem with both AOSP and CM is that SELinux is blocking init.d but have not found anything on how to address steps on fixing for what I use it for. The above links are just a small part but give enough of an idea of what I am trying to accomplish via init.d.
Any help would be appreciated. Until now I had fought a bit with SELinux once introduced to apply to the Kernel for the device I was developing at the time HTC EVo V 4g & EVO 3D but since then is still unfamiliar territory as I have not needed to learn much about it other than implementing into a Kernel when cm-10.2 was released. Both Devices had not been updated past ICS by HTC. I am thinking that maybe I need to add or change permissions in one of the rc files in the boot.img but honestly not sure as mentioned I have found plenty of mentions that SELinux is what is causing my init.d problems but have not seen anything on a solution or even just a link to an explanation of what specific changes had been made regarding SELinux or a further more detailed explanation specific to what in SELinux is responsable so can try to understand enough to figure out myself how to make the necessary changes .
Otherwise like my previous thread on What needs to be done differently developing with AOSP for developers who have gained all their experience bringing Cyanogen to new devices and other Sources who are now trying to develop AOSP Rom's for Nexus devices think this is a topic that would help developers save time and research but will probably be moved to general Q&A. Is off topic but with other Devices if questions or topics required basic knowledge of compiling source, Kernel changes or github would see the opposite in the threads being moved into developer discussions and not for example move a thread discussing say compiling the AOSP Kernel in line compiling both Rom and Kernel together or code changes needed in the build repository / Directory to stop custom recovery from being replaced with Stock recovery when users flash a custom Rom and reverting from Block based update zips to using the old school non Block based update zips. So far though I have posted these topics here as you don’t see members with such knowledge looking through the general Q&A section. Maybe I just inadvertently made an enemy of an admin as was surprised almost besides myself when a previous thread in the middle of discussing what changes would be needed for in line AOSP Kernel compiling in line like CM does compiling the Kernel along with the Rom and doing away with pre built Kernels. Needless to say the discussion was moved and died in general Q&A so if this is actually read I am asking that this thread remain in Developer Discussion long enough for an answer or at least a link to a resource covering the topic as a topic regarding the implementation of SELinux policy in a custom Rom will surely die in general Q&A, Thanks!
Are you OK with just disabling selinux? That's what I ended up doing. I recompiled the kernel with the option of using a boot command-line parameter to enable or disable as I see fit.
Gene Poole said:
Are you OK with just disabling selinux? That's what I ended up doing. I recompiled the kernel with the option of using a boot command-line parameter to enable or disable as I see fit.
Click to expand...
Click to collapse
When you have the option to disable or enable it, how do you set it to "disabled" afterwards?
I tried to compile a kernel+rom with selinux disabled many times but got only bootloops. With Kitkat it was working flawless.
L changed a partition entry adding a selinux policy to the mounting information. You need to change this entry int fstab.hammerhead to keep it from hanging on boot:
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337[COLOR="Red"],context=u:object_r:firmware_file:s0 [/COLOR] wait
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337 wait
Then your kernel should boot. You can add a command line entry to the boot image to turn it off or on.
Edit:
You may also have to comment out a line at the top of init.rc. I'm not sure, but mine is commented so I must have done it for some reason.
Code:
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /init.environ.rc
import /init.usb.rc
import /init.${ro.hardware}.rc
import /init.${ro.zygote}.rc
import /init.trace.rc
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_score_adj -1000
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
[COLOR="Red"]#write /sys/fs/selinux/checkreqprot 0[/COLOR]
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
# Set the security context of /adb_keys if present.
restorecon /adb_keys
start ueventd
# create mountpoints
mkdir /mnt 0775 root system
Thanks, will give it a shot!
Any downside on disabling it?
Well, obviously, anything that selinux might be protecting you from would be able to get through, but as developers, we're pretty pessimistic about what we run on our devices.
Gene Poole said:
Well, obviously, anything that selinux might be protecting you from would be able to get through, but as developers, we're pretty pessimistic about what we run on our devices.
Click to expand...
Click to collapse
So its only f*** the NSA for us then!
So i add this to boardconfig: androidboot.selinux=disabled
Then do those things you said. Would i need to put on kernel defconfig :
#CONFIG_SECURITY_SELINUX=is not set
Or will i have to add that "allow selinux disabled on boot"
Or is it enough to have that boardconfig parameter and your things.
Thank you very much mate!
Oh and yes im building a full rom with inline kernel
I think that should do it. I've got a pretty hacked up boot.img so I can't be sure what's in there for what.
I have the following setting in my kernel config:
Code:
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
CONFIG_DEFAULT_SECURITY_SELINUX=y
Ok thanks for all the Selinux help but may look like I’m not able to run init.d scripts because root is disabled by default. So bringing up a new topic about starting first boot with root access. I have been looking over the CM github for a commit that turns it off so I can either manually revert or rebase a clone.
Gene Poole said:
L changed a partition entry adding a selinux policy to the mounting information. You need to change this entry int fstab.hammerhead to keep it from hanging on boot:
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337[COLOR="Red"],context=u:object_r:firmware_file:s0 [/COLOR] wait
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337 wait
Then your kernel should boot. You can add a command line entry to the boot image to turn it off or on.
Edit:
You may also have to comment out a line at the top of init.rc. I'm not sure, but mine is commented so I must have done it for some reason.
Code:
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /init.environ.rc
import /init.usb.rc
import /init.${ro.hardware}.rc
import /init.${ro.zygote}.rc
import /init.trace.rc
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_score_adj -1000
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
[COLOR="Red"]#write /sys/fs/selinux/checkreqprot 0[/COLOR]
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
# Set the security context of /adb_keys if present.
restorecon /adb_keys
start ueventd
# create mountpoints
mkdir /mnt 0775 root system
Click to expand...
Click to collapse
Bumb to this method. Something is changed in Nougat, after editin all these stuff, i will loose data and cell connections..

Prevent home button from turning screen on?

I'm trying to find a way to stop the home button from turning on the screen. My wife puts the phone in her purse and I constantly turns the screen on. I read this:
http://android.stackexchange.com/qu...-home-button-from-waking-my-samsung-galaxy-s5
on StackOverflow that had me edit gpio-keys.kl, but it did not work on lollipop. From what I understand the xposed modules don't work at all with lollipop and touchwiz either, so using wanam probably won't work. I have root, so any suggestions would help. Thanks!
shaklee3 said:
I'm trying to find a way to stop the home button from turning on the screen. My wife puts the phone in her purse and I constantly turns the screen on. I read this:
http://android.stackexchange.com/qu...-home-button-from-waking-my-samsung-galaxy-s5
on StackOverflow that had me edit gpio-keys.kl, but it did not work on lollipop. From what I understand the xposed modules don't work at all with lollipop and touchwiz either, so using wanam probably won't work. I have root, so any suggestions would help. Thanks!
Click to expand...
Click to collapse
Wanam actually does work for me. I'm currently on OF2. It also worked on OC4.
Or if you're comfortable decompiling/recompiling you can try: http://forum.xda-developers.com/showthread.php?t=2799050 has it somewhere in there. I haven't tried this mod specifically.
Edit:
[Guide How-To] DISABLE HOME KEY WAKE
This will prevent the Home Key from waking the phone.
android.policy.jar smali edit:
smali/com/android/interal/policy/impl/PhoneWindowManager.smali
.method private isWakeKeyWhenScreenOff(I)Z
Add the new lines in BLUE
Code:
:sswitch_1
move v0, v1
goto :goto_0
[COLOR="Blue"]:sswitch_4
return v1
nop
[/COLOR]
:sswitch_data_0
.sparse-switch
[COLOR="Blue"]0x3 -> :sswitch_4
[/COLOR] 0x18 -> :sswitch_0
0x19 -> :sswitch_0
Thanks! I'll give it a shot

Qestion regarding manually disable the apk signature verification in android MM 6.0.1

hi , i want to manually disable android apk signature check for android 6.0.1 (n900t samsung note 4) for my custom OS.
but there is no classes.dex in the services,jar to decompiled and to be edited.
did it moved other place ? i specifically means samsung roms.
_______________________
previously we could disable it by editing services.jar\smali\com\android\server\pm\PackageMa nagerService.smali
Code:
.method private compareSignaturesCompat(Lcom/android/server/pm/PackageSignatures;Landroid/content/pm/PackageParser$Package;)I
.locals 13
const/4 v0, 0x0
return v0"

[ROM][LINK] Sailfish OS Droid 4 maserati

I DID NOT MAKE THIS ROM!!!!!! - A developer by the name of TheKit made this rom, so do not give me any credit for this rom, give it all to them.
I am simply linking it because I love this phone, I love Sailfish OS on it, and I think a lot of people would enjoy Sailfish OS on it as well and just don't know it is available.
Q: "What is Sailfish OS and why should I use it?"
A: Sailfish OS is a great OS for many reasons. Having used multiple android roms I can attest to the fact that:
1. It has MUCH better battery life (however it has a weird battery read bug, see issues below)
2. It is MUCH faster and generally more stable when it comes to the things that work (your calls won't drop, your system won't lock up due to lack of ram, etc.)
3. It has a great gesture driven UI that is a joy to use and very gorgeous to look at. No more of this all white bull**** Google has been forcing down our throats since 2014
Q: "How good is the battery life?
A: After a day of playing cave story at work and reading discord and listening to music, I am at about 30-40% end of day (I start at 8:30AM, stop at 4:00PM)
Okay now that the Q/A segment is over, lets get to the real meat
ISSUES
1. Battery Read is wonky, it only goes in 10% increments until it reaches 20%, then it starts going in 5% increments
2. If you use the 2.1.3.7 build keyboard backlight is broken, but it works fine on the 2.1.0.11 build
3. Bluetooth is wonky, I was able to play audio through speakers in the 2.1.3.7 build...
4. FM Radio is broken too
5. As the maemo-talk thread says, CDMA is untested, and like on Photon Q, most likely does not work. GSM works great though! :good:
6. The old 2.1.0.11 build has a slew of issues compared to the new 2.1.3.7 build. These include data not working out of box, wifi requiring a reboot to work, and auto rotation not working in a majority of apps by default. Consult this thread and the maemo talk thread for more help, and if you want rotation anywhere, install patchmanager 2.0 and auto rotate anywhere from warehouse for sailfish os.
Alien Dalvik install tutorial
I did not make this and do not know who did. the developer claims someone threw a brick at them with an sd card attached. The sdcard contained links to these files in the form of a text file names "monkeyAIDS.txt"
https://drive.google.com/file/d/1mS6di1jYfVeDoFBjcANS6SmfkhGyEKoa/view - AD Jolla C (different from the Turing phone rpm, this is built for 3.1.x kernels)
http://sfos.scanf.su/maserati/alien-patched.tar.gz
So extract both files to your ~/ (home) directory and type in the following:
devel-su
[insert root password you set in settings]
zypper in [alien dalvik rpm]
rsync -a /home/nemo/alien/ /opt/alien/
ln -s /vendor /opt/alien/system/vendor
reboot
OPTIONAL: fix for the default 320PPI value
devel-su
[insert root password]
vim /opt/alien/system/build.prop
change ro.sf.lcd.density to the value of your choosing (Droid 4 is 256)
Keyboard Backlight Fix, works on 2.1.0.11, don't know about 2.1.3.7 -- Thank you @moodroid for this legendary patch!
On <2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then do 'pkcon install mce' and 'systemctl restart mce'.
Download Links
Here is the thread with the Download Link to the 2.1.0.11 build
https://talk.maemo.org/showthread.php?t=99031&page=9
If you don't mind a lack of keyboard backlight and want a more up to date build, grab the new and fabulous leaked 2.1.3.7 Build:
https://drive.google.com/file/d/1k3MOCrMvbFb114Omf0MzSvnQ7wBkTiWH/view?usp=sharing
Basically if you are fed up with how ****ty the latest Lineage OS builds are and just want to try something new, give this a try. Why not? What have you got to lose. All in all great work by TheKit and I am very happy with the port as it is and I think you will be too.
Hi,
On <2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then doing 'pkcon install mce' and 'systemctl restart mce'.
Hope you get the OK to share your AD success!
Thanks
moodroid said:
Hi,
On 2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then doing 'pkcon install mce' and 'systemctl restart mce'.
Hope you get the OK to share your AD success!
Thanks
Click to expand...
Click to collapse
dude you are a legend!
I would add that to the OP but you are first comment so anyone viewing the op will see this. I will definitely tell TheKit about this (then again, he gave you the 2.1.3.7 build so you can just tell them yourself)
Greetings,
I've been playing around with SailfishOS on my Droid 4 in the past few days, and I have a few questions about the whole thing. TheKit publicly shared a 2.1.3.7 build for the Droid 4 on his thread at Maemo, is that the one you are talking about or is it a different build? As someone mentioned this specific build seems to have issues with wifi, and I have the same problem. I can't post links, but the download link to the build I mentioned is on page 12.
The 2.1.0.11 build seems to work fairly well, however I wasn't able to install Alien Dalvik. After the installation the "Android Support" button does show up in the settings app, however nothing happens when I click the start button. I also attempted installing an apk both via the GUI (by clicking on it in the downloads) and via the command line by using "apkd-install", but it doesn't seem to work. Full log of the installation process attached.
I talked with TheKit, and the 2.1.3.7 build I mentioned (the one at page 12) is indeed outdated. He just updated the OP at Maemo and added the latest 2.1.3.7 build, which I just flashed and it's working great. Also installed Alien Dalvik following the instructions in the OP and it seems to be working fine as well! However I wasn't successful with the backlight fix method yet.
For anyone wondering how I flashed the latest build I went CM11 --> SailfishOS 2.1.0.11 --> SailfishOS 2.1.3.7 (rel2).
NIKKOS said:
I talked with TheKit, and the 2.1.3.7 build I mentioned (the one at page 12) is indeed outdated. He just updated the OP at Maemo and added the latest 2.1.3.7 build, which I just flashed and it's working great. Also installed Alien Dalvik following the instructions in the OP and it seems to be working fine as well! However I wasn't successful with the backlight fix method yet.
For anyone wondering how I flashed the latest build I went CM11 --> SailfishOS 2.1.0.11 --> SailfishOS 2.1.3.7 (rel2).
Click to expand...
Click to collapse
Hi Nikkos,
Sorry - that was me that posted the backlight fix, and I agree that it doesn't work on 2.1.3.7-rel2. It'd worked on every other version I tried, and I've now edited my post above. Glad everything is working.
Sorry again
moodroid said:
Hi Nikkos,
Sorry - that was me that posted the backlight fix, and I agree that it doesn't work on 2.1.3.7-rel2. It'd worked on every other version I tried, and I've now edited my post above. Glad everything is working.
Sorry again
Click to expand...
Click to collapse
No worries.
If anyone is wondering how to change the SailfishOS UI scale (I find the default one to be way too big) here's how I did it via the terminal:
Code:
devel-su
rm /etc/dconf/db/vendor.d/locks/silica-configs.txt
dconf write /desktop/sailfish/silica/theme_pixel_ratio value
I believe the default value should be around 1.1; you can also reset the value to stock with:
Code:
dconf reset /desktop/sailfish/silica/theme_pixel_ratio
or read the value with:
Code:
dconf read /desktop/sailfish/silica/theme_pixel_ratio
Not exactly droid 4 related, but thought I'd share.
Okay, I got the backlight to turn on!
Type the following in the terminal:
Code:
devel-su
echo 255 >/sys/class/leds/keyboard-backlight/brightness
It seems to properly react to some triggers like standby after being turned on but not to others like sliding the keyboard in and out (which means it will always stay on if the screen is on, regardless if it's been slided in or out). My assumption is that the keyboard sliding trigger got broken in some way, as I believe that's the way the backlight is being turned on. The events which trigger the backlight seem to be stored in the file /sys/class/leds/keyboard-backlight/trigger, so I assume that would be a good starting point to attempt fixing this.
The keyboard backlight intensity can also be changed, just change the 255 to a different value (it goes from 0 to 255).
Note: this change is not permanent, it will need to be applied again at reboot. Writing a script which executes the above commands at boot should be trivial though, and I will include instructions when I get it done myself.
EDIT:
Here's how to make the change permanent. Following these instructions you will create a Systemd service which will turn the backlight on when active and off when inactive; it will automatically run at boot and it can also be controlled like any other Systemd service (i.e. using systemctl via the terminal)
Type the following commands through the terminal:
Code:
devel-su
cd /etc/systemd/system
touch keyboard-backlight.service
chmod 744 keyboard-backlight.service
You will now need to edit the keyboard-backlight.service file with a text editor (either vim or nano will do, vim comes preinstalled, nano does not). Depending on your preferred text editor, type the following:
Code:
vim keyboard-backlight.service
or
Code:
nano keyboard-backlight.service
Now write the following to the file and save it:
Code:
[Unit]
Description=XT894 keyboard backlight service
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 255 >/sys/class/leds/keyboard-backlight/brightness"
ExecStop=/bin/sh -c "echo 0 >/sys/class/leds/keyboard-backlight/brightness"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Now type the following to enable the service:
Code:
systemctl enable keyboard-backlight.service
That's it. You can now control the service by using the following:
Code:
systemctl start keyboard-backlight //This will turn the backlight on
systemctl stop keyboard-backlight //This will turn the backlight off
systemctl status keyboard-backlight //This will display the service status
Can anyone share the google drive file from the first post? Is there an alternative link available? Or could you PM me a google drive link? Thanks!
Can anyone suggest the best/correct ROM-slot size for TWRP?
Is it still like for CM/LOS:
800MB for system
10MB for cache
and rest for data as one likes?

Categories

Resources