A Beginner’s Guide to Modifying Android Devices - General Topics

Warning: Even an expert runs the risk of “bricking,” or locking up their Android device when modifying it. Often this is a ‘soft brick’ from which they can recover, but sometimes the device is “hard bricked” from which no recovery is possible, and the device becomes a source of spare parts. Proceed at your own risk. Neither the author, nor XDA is liable if you do “brick” your device.
Note: I have insufficient posts to include outside links. I'll add them when I do. Until then you'll need to search the 'net.
Keeping that in mind, you may wish to acquire an older model device to practice with before attempting to modify leading edge devices. Kijiji and Craig’s List are good sources for low cost, used devices that can be used for practice. I acquired the Samsung Galaxy S5 neo (SM-G903W) with Android 7.0.0 (Nougat) installed, I’m using in this guide for about $20 USD. Although any device will do, try to get one from the same manufacturer as the device you want to modify. If your device is a phone, you do not need a SIM card to follow this guide.
The Android OS is a derivative of Linux, and many, but not all commands are the same. You should refer to Linux or Unix manuals for an explanation of the commands. Search the ‘net for “Linux Commands” to find the latest manuals.
As the boot animation and sound are the most common modifications, changes to those are the goals of this guide. It seems as though there is an app for everything now. Yes, they are handy, but this guide will use the command line for many of the modifications. I use Terminal Emulator on the device for command line access. I also use BusyBox to expand the command set available. Both are available from the Play Store. You need root access to install and use BusyBox.
The first step is to read the manual for your device. Pay particular attention to the method used to enter the download and recovery modes. The Samsung Galaxy S5 neo uses volume up + home + power to enter the recovery mode, and volume down + home + power To enter the download mode from the power off condition. Press the volume and home buttons first, and then press the power button while holding them down. The device will boot into the desired mode. You may also require special USB drivers on your PC for your device.
Next you need to take as complete a backup of your device as possible using the stock options. See your manual for help with this. It’s also a very good idea to download the full firmware, as well as the boot and recovery partitions and any tools needed to re-flash this software. The best way to find these is to consult the manufacturer’s website, then this forum, followed by a ‘net search if nothing else provides results. For my device I need Odin on my PC. I found the full firmware at sammobile.com and firmware.mobi. The boot and recovery images can be extracted from the Samsung file, and then re-compressed using 7-zip on your PC. The firmware.mobi website offers all three files for several versions of Android, as well as a configured Odin package to root my device.
Now that we’re ready, the next few posts in this thread will cover the following sequence:
1. Root Device
2. Install Recovery
3. Install Applications
4. NANDroid backup
5. Make your modifications​

Root Device with Chainfire
Warning: If you have a KNOX enabled device, rooting it will trip the KNOX warranty flag, voiding your warranty. This flag cannot be reset, and will prevent some applications from working.
Warning: Rooting improperly can “Hard Brick” your device, turning it into a source of spare parts.
There are numerous rooting tools out there. I use Chainfire whenever possible. The current website firmware.mobi will generate an easy to use package including Odin for supported devices. Download and extract the package to a new folder on your PC. Start Odin using the root.bat file. Read the warnings. Next:
Ensure Developer Options are enabled on your device. On the SM-G903W, go to Settings/About Phone/Software information/Build number seven times. Other devices may use a different method. Consult your manual.
In Settings / Developer Options ensure OEM Unlock is on and turn on USB Debugging
Note: I also turn “Auto update system” off
Turn the device off, then re-boot into the download mode (Volume Down + Home + Power, and then press Volume Up on my device)
Plug the device into a USB port of your PC
Select AP in Odin, then select the image.tar.md5 file downloaded with your package.
Ensure one of the COM ports is highlighted.
This is your last chance to abort. DO NOT CONTINE if you have any doubts.
Click Start
When your device is rooted successfully you’ll see a green pass in Odin. Congratulations! Your device will re-boot into recovery mode to root the device, and then re-boot normally. Well, that’s how it was supposed to work. When I used the CF Autoroot file for the SM-G903W, I got the error message “Recovery is NOT seandroid enforcing”, and was unable to boot into the recovery mode. I used Odin to re-flash the recovery partition which allowed me to enter the recovery mode again. A little searching on this forum, led me to this post by Neoony. I used the link for the SM-G903F and succeeded in rooting the device.
Now you need a root manager. My preference is Super SU. Install it from Google Play. Run Super SU. It will let you know if you were not successful by reporting that your device is not rooted.

Install Backup/Recovery (TWRP)
As we intend to modify the Android system itself, we need the ability to back it up and restore it. There are several options including Clockwork Mod (CWM), Team Win Recovery Project (TWRP) and Titanium Backup. My personal preference is TWRP.
Installation is as follows:
Install the “Official TWRP App” from Google Play
Run the App, agree to the Terms and Conditions, and enable “Run with root permissions,” then tap OK.
Tap “TWRP FLASH” on the next screen
Select your device from the drop down menu, you will need a network connection for this. You’ll be presented with a series of choices. Choose the latest and greatest. The image will be downloaded to your device.
Select “FLASH TO RECOVERY”, and confirm the image is correct. You will see the message “Flash Completed Successfully!” when installation is complete.
Exit the “Official TWRP App” and re-boot your device into the Download, followed by Recovery, and finally normally to confirm all is well.

Install Applications
The applications to install are those you will use to customize your device. I suggest BusyBox, and Terminal Emulator from the Play Store. BusyBox requires root access for the expanded command set. Terminal Emulator will allow command line access on your device so you won’t need ADB on your computer. You will be able to gain root access through it to modify anything on your device anytime, anywhere.
Other Apps you may find useful are the Jota Text Editor, and Hex Editor. These are also available through the Play Store.

NANDroid backup
Once the device is rooted, and your choice of applications are installed it’s a good idea to fully back up the device. This includes ALL partitions, so you have a baseline that you can re-flash. If your device has minimal memory, you may need an SD card or USB OTG drive to hold your backup. These backups will often be larger than 4GB.
Re-boot your device into the Recovery Mode. In TWRP, select ALL the partitions. Select the desired Storage location, and tap OK. Swipe to backup your device. Note the warning that “Backups of data do not include any files in internal storage such as pictures or downloads.” That is not the purpose of TWRP, and is best accomplished with the native backup utility. This backup will require several minutes.

Make your modifications
With root access, a recovery program and needed applications installed; and a complete backup we are finally ready to modify the Android installation of your device. We’ll start with the boot animation.
Modifying the boot animation:
Most devices use a ZIP file for boot animations. Samsung uses a proprietary QMG file. I tried to convert a boot animation that I put together a few years ago into the QMG format using Samsung’s Theme Designer Version 2.0.4 (Build 3918), as the links I found to newer versions on the XDA forum were broken. Searching through this forum, I found this post by Jertlok. I used the Marshmallow version with Nougat successfully.
Enough of this talking, let the games begin! Find the boot animation you want to use and download it to your device.
I’m using the Terminal Emulator for this installation. Our first step is to find the source and destination folders for this file. The relevant folders for the SM-G903W are:
boot animation: /system/media
downloads: /data/media/0/Download
If you have another device and the boot animation is located elsewhere, do a search of this forum first to find them. Look for your device first, and the other models by the same manufacturer.
Type the following commands using the Terminal Emulator:
Code:
su get super user privileges
mount -o rw,remount /system remount /system with read & write permissions
cd /system/media go to directory with boot media files, may differ
ls verify this is the correct folder
mv /data/media/0/Download/bootanimation.zip . move the file to our current location
ls verify the file was moved
exit leave super user mode
Reboot your device and verify the boot animation works.
Note: Don’t forget the period at the end of the mv command. This is a shortcut meaning the current directory, saving you from typing the full location.
Modifying the boot sound:
Finding the location for the boot sound can be more involved that finding that for the boot animation. If you know the name of the file, you can do a search through Terminal Emulator with the following commands:
Code:
su get super user privileges
cd /system/media choose a starting point for your search
find –name PowerOn.ogg name of the boot sound on the SM-G903W
This shows the file to be located in /system/media/audio/ui. Put the sound you want in the Download folder. I’ve named mine bootsound.ogg to show another use of the mv command. Use the following commands in Terminal Emulator:
Code:
su get super user privileges
mount -o rw,remount /system remount system with read /write permissions
cd /system/media/audio/ui go to the folder containing PowerOn.ogg
ls confirm we’re in the right folder
mv PowerOn.ogg PowerOn.ogg.bak rename PowerOn.ogg
mv /data/media/0/Download/bootsound.ogg . move bootsound.ogg
mv bootsound.ogg PowerOn.ogg rename bootsound.ogg
ls confirm the change has been made
exit leave super user mode
Reboot your device and verify the boot sound works. The shutdown sound is not used in the stock ROM. You can add a shutdown sound in the same manner by placing PowerOff.ogg in /system/media/audio/ui. Note: If PowerOn.ogg or PowerOff.ogg do not play, check your file permissions. Set them to the same values as the remainder of the files in the directory, usually 644.

Wrap up
Everyone needs to start somewhere. My goal in starting this thread was to provide that starting point, and a path forward for those new to modifying an Android device. That is why I started with a stock not-too-old device, and showed how to take it to manually changing the boot animation and sound. Why manually, when there are apps for that? An App can only accomplish a single task, such as changing the boot animation. At the command line you can do almost anything. You won’t be stopped by the lack of an App.
Much of the material covered by this guide is specific for a device. Those with Samsung devices came out far ahead, and those with a Galaxy S5 neo may just have hit the jackpot. The general sequence for all devices is the same. You’ll just need to dig for those devilish details.
There are two things that should stick out:
1. Use a not too old device by the same manufacturer as your target when starting. It’s far cheaper than bricking a bleeding edge device.
2. Backup, backup, backup! This can’t be stressed enough. Losing hours or days of work is very depressing, and often leads to dropping a project.
Good luck modding your device. This forum is one of the best, if not THE best place for resolving those devilish details that you will encounter.

The Next Step: Changing the Boot Logo
First, thanks to Near_07 for his post Galaxy S9 and S9+ Boot logo. I modified his package to make one for the Samsung Galaxy S5 neo. Note that his script is for the same exynos platform. This is critical for packages containing binaries.
I unpacked the pile to a new directory on my PC.
The first thing I did was to verify paths and filenames in the script "update-binary". I opened the file using WordPad on my PC for ease of reading. The file contains references to "/dev/block/platform/11120000.ufs/by-name/UP_PARAM", which does not exist on the S5 neo. I used Terminal Emulator to check for something close and found "/dev/block/platform/13540000.dwmmc0/by-name/PARAM ". I copied the file to the Download directory, and from there to my PC. Opening the archive, I found that it contained the file "logo.jpg". Bingo! I was in the right place. I copied the "update-binary" back to the Download directory on the S5 neo, and used Jota Text Editor to change ALL the references from 11120000.ufs to 13540000.dwmmc0; and UP_PARAM to PARAM. I then copied the modified "update-binary" back to replace the original on my PC. Why did I use Jota Text Editor on the S5 neo, instead of notepad on my PC? Unix, Linux, and Android use different end of line sequences than the PC. There are programs for the PC capable of generating Android compatible files, but I'm sticking with software already mentioned in this tutorial.
Choosing or Creating a New Boot Logo:
Choose or create a new .jpg image, the same size as your screen for your new boot logo. I've attached the original logo.jpg from my S5 neo to this post. I used that as a starting point, moving and adding elements to mate with my boot animation. I've included a demo copy in the zipped package. I've also attached a copy of the first image in my boot animation sequence. The powered by Android Nougat element fades in as the animation runs.
How to Change the Boot Logo:
You are rooted and have TWRP installed if you've been following along. These are pre-requisites. STOP NOW if they are not installed.
Download the file S5neo_Boot_Logo_Changer
Unzip the file to an empty directory
Replace logo.jpg with your desired logo. Note the name MUST be exactly the same.
Use 7-Zip to compress the contents of your working folder, with 'Store' as the compression method
Copy the resulting archive to the Download folder on your S5 neo
Re-boot your S5 neo into the Recovery mode
Install the package, re-boot, and enjoy!

Removing Bloatware (or fun with scripts)
Bloatware consists of the unwanted apps generously added to your phone by Google, the manufacturer, and your carrier. There can literally be a hundred or more of these apps on your phone. So how do you get rid of them? You can use a package found on this site, but that can be problematical. You may have a different view of bloatware than the package’s author. You may not know what each APK deleted by the package does, and delete one you actually want on your phone. If this happens you’ll need to restore from backup, factory reset the phone, or even re-flash the firmware. My preference is to archive the APK on my desktop so that hopefully I can restore the APks with the package manager.
To start, grab one of the packages to delete bloatware for your version of Android, for as close to your phone as possible. I used this one by Windforce. The contents of updater-script may include a section that looks like this:
Code:
run_program("/sbin/rm", "-rf", "system/app/AASAservice");
run_program("/sbin/rm", "-rf", "system/app/BluetoothMidiService");
run_program("/sbin/rm", "-rf", "system/app/CloudGateway2017");
run_program("/sbin/rm", "-rf", "system/app/GooglePrintRecommendationService");
There are many tools such as word processors, and text editors that you can use to strip out the unwanted bits so that you end up with something like this:
Code:
AASAservice
BluetoothMidiService
CloudGateway2017
GooglePrintRecommendationService
Save it as a file, ensuring that you have an Android (Unix) end of line character. We end up with a list of folders containing the unwanted APKs. Next we need a script to archive the APKs.
The following script has been designed to run in the ‘Download’ folder, from the Terminal Emulator, or ADB (Android Debugging Bridge). It was written on my desktop using Notepad++, to ensure the proper end-of-line character was used. The script, and APK lists must be copied to the Download folder from the desktop. To access the Download folder from the Terminal Emulator or ADB, Super User or root permissions are required. File permissions allowing root to execute the script must be set. Finally the script must be run from within a shell.
Code:
mount -o rw,remount /system # mount /system for read/write
tempdir=/system/app/app # temporary folder for APKs to be archived
mkdir $tempdir
while read apkname # loop parses file for APK names to archive
do
mv /system/app/$apkname $tempdir/$apkname
done < sysapp.txt # supplied list of APKs to be archived
tar -czvf sysapp.tar.gz $tempdir # archive APKs
rm -rf $tempdir # remove temporary folder recursively
rm -rf /cache/* # clear cache contents
rm -rf /data/dalvik-cache/* # clear dalvik-cache contents
reboot
exit 0
After the script has executed, you’ll note the icons for the archived APKs remain on the apps screen, and are still listed under Apps. The must be manually removed. You’ll find that ‘Uninstall’ is now available in both places for the archived apps.
Attached is a .zip file containing the script, and data files I used on a Samsung Galaxy S5 neo (SM-G903W).

Related

[DROID] Root instructions (UPDATED)

The following is a guide for how to obtain root access within an ADB shell, then locally on the device.
UPDATED TO SIMPLE VERSION WITHOUT ADB
--------------------------------------------------------------------------
Credit:
- embeem for bringing the Eclair signature check hole to attention.
- For creating the exploited update package: Zinx Verituse (initially posted here)
- mjxg for writing a complete guide which I have modified and reposted here (original thread here
- Cyanogen for providing Superuser.
--------------------------------------------------------------------------
THIS WILL NOT UPDATE YOU TO 2.0.1. If you would like to end up with a rooted 2.0.1 and haven't been pushed the update OTA yet, then please follow this (http://alldroid.org/viewtopic.php?f=210&t=568) guide THEN follow the directions below.
--------------------------------------------------------------------------
1 - Download the droid-super_user.zip file from: http://alldroid.org/download/file.php?id=659 (md5sum cf653352967253e99d967498ffd9ce69).
Do not extract.
2 - Rename the file to "update.zip".
3 - Plug your Droid into your computer via USB. On the Droid go to the Notifications bar and select "USB Connected" then press "Mount".
4 - Once the device is mounted, the SD card will show as a removable device on your computer
5 - Put the "update.zip" file you just renamed into the Root (top) directory of your SD Card.
6 - Unmount the device from your computer, and turn the Droid off.
7 - Hold down the "X" key on the physical keyboard and while doing so press the power button. Hold both of them down until you see a Triangle with an !.
8 - Press the Vol+ and the Camera button together until you get a menu.
9 - Using the D-pad on the physical keyboard, select the option to update with the update.zip file.
10 - This should take a little bit. Once it's done select the option to reboot the phone.
Now you can download a root application, or terminal emulator and try out your new found root access.
This works with 2.0.1
Please do not start removing any applications just yet. You will run into problems trying to flash anything. Wait until we have a recovery image made.
can some one dump the phone?
Looking at the change in Gerritt:
https://review.source.android.com/#change,12807
It has not been approved yet, although that doesn't prevent Mot from cherry picking it.
I just tried the droid-root.zip update on my Droid, worked great. The only thing I might add is to rename the otakeys.zip from /system/etc/security/otakeys.zip to prevent future OTA updates.
Don't want to lose root now that we have it.
-Howard
http://www.magicandroidapps.com. - Home of Better Terminal Emulator Pro, the best terminal emulator for Droid.
With root, you can dump out the MTD partitions to /data/local, ie:
adb shell
$ su
# cd /data/local
# cat /proc/mtd
Use this output to figure out which partitions are what, and then dump them out, ie:
# cat /dev/block/mtdblock0 > pds.bin
Then 'adb pull' the /data/local/*.bin files to your PC.
-Howard
http://www.magicandroidapps.com - Home of Better Terminal Emulator Pro, the best terminal emulator for Droid.
There is now a more streamlined way of going about this. I need to update the guide.
NEWEST METHOD that DOES NOT require adb
New exploit zip, including Superuser from CyanogenMod
First you have to update your phone to 2.0.1. If you have already done this manually, or if your phone has already received the OTA update, move on to the next section.
First, download this attachment ( http://alldroid.org/download/file.php?id=646 ) and rename it to "update.zip".
Copy update.zip to the SDcard in your phone.
Reboot your phone to recovery mode by holding down x while the phone turns on. once you see the /!\ emblem, press the Volume Up and Camera buttons at the same time.
Select Install update.zip from the menu.
Reboot once it is done.
Now your phone is updated to 2.0.1
Now, to root the phone.
download this attachment ( http://alldroid.org/download/file.php?id=659 ) and rename it "update.zip"
Copy update.zip to the phones sdcard
reboot phone to recovery mode (hold x while turning phone on, press volume up + camera button)
install update.zip
reboot
and you are done.
all credit to Zinx Verituse over on Alldroid.org
su works but apps still say I don't have root?
I'm an IT Professional not a newb, but not super great on Linux either.
I've followed the rooting steps, after updating manually to 2.0.1
The issue is, I can go: su using a term emulator on my phone and it says "access granted courtesy of magicandroidapps" (something like that).
I can do things through the term emulator, but for some reason when I download apps that require root and try to use them it still says I don't have root access? What gives? I couldn't even rename a file in /etc/bluez using ROOT EXPLORER (a file manager).
It's like root works on term emulator but not through GUI apps? Am I missing something?
Disregard, problem solved
Disregard.
Updated to new, simple, one flash instructions.
i cant get this to work for nothing. when i download the files i extract them to the desktop then put them into one folder named update.zip is this wrong?
dabo318 said:
i cant get this to work for nothing. when i download the files i extract them to the desktop then put them into one folder named update.zip is this wrong?
Click to expand...
Click to collapse
It never said to extract. Rename the .zip to update.zip (make sure it's not update.zip.zip) then carry on.
I've got a question. This is a hole found in android, so this should work for any android device, as long as you append the original exploit.zip to that devices update.zip, correct?
ok i finally got the zip on the phone and trying to setup metamorph now. its been setting up file: zip for about five min is this normal?
Here is a link to a tutorial on how to create your own update.zip in order to deliver whatever you may need to (with a size limitation).
http://alldroid.org/viewtopic.php?f=210&t=626
Please note this is exclusive to the current Android 2.0
cellulararrest said:
Here is a link to a tutorial on how to create your own update.zip in order to deliver whatever you may need to (with a size limitation).
http://alldroid.org/viewtopic.php?f=210&t=626
Please note this is exclusive to the current Android 2.0
Click to expand...
Click to collapse
And 2.0.1 ... thanks though, that pretty much answered my question. So any device that gets pushed 2.0/2.0.1 ota update and on before this hole is patched up this should work on. Let's hope they don't patch it before we get a hold of a milestoine update.
Btw- someone should check out the 2.1 sense dump and see if this hole is still present.
Oh and sorry about getting slightly off topic, just seemed the most revelent place to ask.
Yeah that would be good to check 2.1. But I don't think anyone is actually using that recovery image. If it's even available. Everyone has fancy dancy custom recovery images.
COMPREHENSIVE HOWTO "ROOT YOUR DROID" (my best attempt anyhow)
*deleted* per a noobs request (cuz I've heard from others as well that my directions were outdated even though they use super-root from Cyanogen).
Rainabba, Please delete that post. it's out-of-date and incorrect.
i just installed a terminal app from the market, type su and hit enter, it asked to allow or deny, so i believe just a terminal app will give you SU also, correct?
im an idiot when it comes to adb. also just a reminder to the root nobbs, if your using vista, just name the update, update dont add the .zip to it, or it wont work.
Correct. Please don't start removing apps from your system. A few people have been doing that just because they can and are causing themselves real problems. Hold off until someone succeeds in their endeavors for a custom recovery image.

GUIDES & FAQs [Android]: ADB Workshop by Adrynalyne and Guide by Captainkrtek

DO NOT POST IN THIS THREAD BEFORE READING THE WHOLE POST
PLEASE ADD GUIDES TO COMMON ISSUES YOURSELVES
To my recollection, the previous WM Guides thread was successful.. so we'll be moving on to android as well - from beginner to pro.
I hope this thread will provide answers to a decent percentage of your questions.
Please hold until guide collecting is finished..
In the meanwhile you are ALL invited to send me links or full guides to add to this thread.. remember, we are all about sharing.
COMING SOON! (in the meanwhile, you've got a great battery life guide at http://forum.xda-developers.com/showthread.php?t=471521 - be sure to thank BruceElliot for it!)
also, if you decide to post a guide, please keep the guide as neat as possible, with a title containing the LEVEL ([BEGINNER], [INTERMEDIATE], [PRO]) and the commonly searched words so that people who look for it can find it easily. (if you can, use the same color (dark orange) and same size (4) and Bold.. for the main title.. tho that's not a must )
post #2. [BEGINNERS+INTERMEDIATE] Replacing System Files using Android Commander
post #3. [EVERYONE] ADB Workshop by Adrynalyne and Guide by Captainkrtek
post #4. [QUICK FAQ's] Common QnA's for beginners by Timmymarsh (work in progress)
[BEGINNERS] Replacing system files using Android Commander
Replacing system files using Android Commander:
(This post was formally based in the HD2's RTL support thread and revolved around our need to replace frameworks)
so:
1. Download the android SDK from: http://dl.google.com/android/android...08-windows.zip
2. EXTRACT(!!!) the android-sdk-windows to c:\
(make sure you extract the dir - not run the setup from inside the zip file)
3. install Android Commander from http://androidcommander.com
4. Connect your device and make sure it's set to Debugging mode in /settings/applications/development/
5. You might have to set a dir containing your adb.exe file. set it to c:\android-sdk-windows\tools\
6. You will see a Total Commander-like interface. you can then copy the framework.jar file to the correct directory (there's no difference between SD android builds and androids in ROM - the system dir will be shown the same way)
a. Yes, you can replace/delete system files while android is running.
b. (for androids running from SD) Any file copied to /sdcard/android/root/system/X will be copied to /system/X in the system file. The sdcard/android root dir is JUST LIKE your root in ROM androids.
c. Make sure you either created a backup or verified a match in any other way before replacing files like frameworks, zimage, modules, etc.. your android might not boot afterwards (I keep all system.ext2 files backed up so that i can restore them incase i screw something up.)
enjoy
[EVERYONE] ADB Workshop by Adrynalyne and Guide by Captainkrtek
This following guide was rewritten by Captainkrtek, please make sure to thank him for it
Original Post:
(http://forum.xda-developers.com/showthread.php?t=879701)
This workshop was held in #android-learning on irc.freenode.net by XDA Member Adrynalyne. All credit to him for this guide, I simply am taking it and turning it into a guide. Here we go!
You can find the raw IRC log here
Good evening folks, and welcome to my ADB workshop. This is by no means a full explanation on the subject, but more of a crash course to help folks get up to speed, and get more from their devices. There may be some things you already know here, so please be patient and respect those who do not.
Reference Files
http://adrynalyne.us/files/How to install adb.pdf
http://adrynalyne.us/files/Using ADB.pdf
So, lets just start with the basics.
What is ADB?
ADB stands for the android debugging bridge and is used for testing and debugging purposes by developers.
However, we like to get more out of our devices, and its a great way to fix things.
Knowing adb can mean the difference between a paperweight and a working phone.
So, to start with, we will look at installing ADB.
Generally speaking, the Sun/Oracle JDK is required to run all SDK functions.
ADB is but one tool in the SDK arsenal.
So, we begin by downloading and installing the JDK. This can be found here:
https://cds.sun.com/is-bin/[email protected]_Developer
Choose your OS, download and install. I recommend that 64 bit users use the regular x86/32 bit version as well.
Moving ahead, we download the Windows sdk from here:
http://dl.google.com/android/installer_r08-windows.exe
Due to already installing JDK, you won't be stopped by the install process.
Now, if you notice, I installed it to:
C:\android-sdk-windows
I did this because it makes things easier when setting up path variables.
I encourage everyone to do the same, but obviously it is not required.
So, this SDK is handy, but is only good up to 2.2. We want the latest and greatest! (Well I do)
So, we navigate to:
C:\android-sdk-windows\
and we run SDK Manager.exe
If you notice in your PDF file for installing adb, you will notice that you can update, and I made a choice not to include earlier sdk versions.
I won't go into full detail on that, but depending on the version of SDK you have, 8 or 9, it WILL make a difference in using adb.
By default, for version 8 adb.exe resides in C:\android-sdk-windows\tools
By default, for version 9 adb.exe resides in C:\android-sdk-windows\platform-tools
We will assume version 9 in this guide
Really, the SDK is installed and adb is usable right now, but in my humble opinion, its not enough
I like the ability to use adb in ANY directory on my machine.
To do this, we edit Windows's environment variables.
Specifically, the system path.
To do this, we click on start, or the orb (depending on OS), and right click on Computer, left clicking on properties in the menu.
If its windows XP, I believe it brings you into advanced system properties immediatly. Vista and 7 need a second step.
On the left hand side, as you notice I have highlighted in the pdf, left click advanced system settings.
Under advanced tab, we left click environment variables...
There are two boxes here.
We are concerned with system variables, however.
So we scroll down the list and highlight path and click edit.
Ignoring all the extra stuff in here, make sure you are at the end of the line, and type
Code:
;C:\android-sdk-windows\platform-tools
The semicolon allows us to separate it
from the previous path statement.
Click ok all the way out.
We now have ADB setup globally. We can use cmd.exe (I use powershell) and no matter what directory we are in, adb is recognized.
If it is not, make certain you entered the path into system variables, and made no typos.
If you installed to a different location, you will need to adjust the path accordingly.
This concludes the section on installing the Android SDK to use ADB.
This next section will be on using ADB, so please open that pdf now.
Now, this applies to any OS, not just Windows.
Well, with the exception of the USB drivers.
I will not go too much into that, but if you take a look at the PDF, it goes through installing usb drivers for the sdk, and how to download them.
Fiarly straightforward, in that rspect.
Now, to setup our phones to use with the SDK and ADB, we must change some settings.
First, we go to menu softkey, then settings.
We scroll down to Applications and tap it.
Under Development, we will check Enable USB Debugging. Please note the SGS phones are different in this respect.
The USB cable must be unplugged before enabling or disabling this setting.
Once this is done, we are now ready to play with adb
One quick note: If you get device not found/conencted, please reboot your phone. DJ05 has a quirk in it where ADBD randomly crashes on boot.
A reboot will fix this
ADBD= ADB Daemon
Ok, continuing on.
Lets look at installing applications. This is also known as sideloading.
Unlike installing from the SD card, it does not require unknown sources to be enabled.
The command for this is
Code:
adb install packagename
This assumes that you are working from the directory where the file is located.
This will install the application to /data/app.
It will also show sometimes useful errors if install fails.
That is not something you will see from the Android GUI.
Now, a lot of us have probably deleted files with apps like Root Explorer. While this isn't really a bad thing, it leaves behind databases and data for the application removed.
This is where the 0kb applicaiton entries come from.
If you take that application entry name, you can uninstall the extra data via adb.
First we go to the adb shell which logs into the phone.
Code:
adb shell
If we end up with a $, we will want admin rights, in many cases. This is not one of them, I don't beleive.
To get admin rights, you want to type
Code:
su
Look at your phone if this is the first time, it may prompt you to allow access. Else you will get permission denied.
If you are not rooted, this will not work either.
Ok, now that we are logged in, we will type
Code:
pm uninstall packagename
where packagename is the name of the 0kb listing.
Now this seems like a pain in the a** and I agree.
HOWEVER
There will be a time where Manage applications crashes when you try to uninstall it from the phone. In this case, a factory reset, or this method is the only effective way to fix the problem.
Moving on.
How many of us have removed system applications or renamed them? Did you know that you can simply disable them from the system?
Code:
adb shell
su
pm disable appllicationname
This will disable it, and the system will ignore it.
This can be seen as safer than deleting or renaming things, but your mileage may vary.
On the other hand, you can also re-enable these applications.
Code:
adb shell
su
pm enable applicationname
Please note: Not all applications will properly re-enable. I believe a factory reset or reinstall of said application will fix the issue.
Also, application names are absolutely case sensitive.
*nix based Operating Systems see the letter 'a' and 'A' as two different things.
when you log into adb shell, you are playing by android rules
Ok, a lot of us tweak and mod our phones and turning off the device to get to clockwork recovery, or battery pulls, or multiple button holds to get into Download mode are troublesome and annoying at best.
ADB can help us here.
Here, we do not need to be logged into the shell
If we want to merely reboot the phone:
Code:
adb reboot
If we want to go to recovery (works well with voodoo5)
Code:
adb reboot recovery
If we want to go to Download Mode because we need Odin, heaven forbid:
Code:
adb reboot download
Its instant. No waiting on animations or anything else.
Its also handy if Android has locked up, but yet still works in adb.
I for one hate taking my case off to battery pull.
So now we move on to pushing and pulling files.
Sometimes, I don't feel like mounting my sd card to copy a file over to my phone.
I can use this command to push a file straight to my sd card:
Code:
adb push filename /pathtodirectoryonphone
So for instance, if I have test.txt that I want to send, I would type:
Code:
adb push test.txt /sdcard/
and there it goes.
Ok moving on
Pushing files can be done to any directory, however, some are protected.
For instance, /system is going to give you a permission denied or a read only filesystem error.
To get around this, the easiest thing to do is push the file to your sdcard, then log into the shell:
Code:
adb shell
Code:
su
We will then mount the system as writable
Code:
mount -o rw,remount /dev/block/stl9 /system
Then we can use something like
Code:
cp /sdcard/test.txt /system/app/test.txt
cp stands for copy
and it requires the path of the file and destination path. The name of the file is optional
When you copy it, you can rename it to whatever you like.
For instance, if we wanted to backup a file
Code:
cp /sdcard/test.txt /sdcard/backuptest.txt
Now, lets assume you do not have busybox installed.
You non rooted users will not.
Then you must use a slightly more complicated command called dd
This is used like this:
Code:
dd if=/sdcard/test.txt of=/system/app/test.txt
if is for inputfile
of= output file
Not every user friendly, but probably one of the safer copy commands.
Ok, moving on to pulling files.
Lets say you want to get a file from your phone, to modify, backup, etc.
To do this, we simply use adb in this manner:
Code:
adb pull /pathtofile/filename destinationname
For instance, if I wanted to backup ADW launcher in system/app
I would do this
Code:
adb pull /system/app/ADWLaucnher.apk ADWLauncher.apk
And it will pull the file from the phone and put it in the current directory.
Like above, you can specifcy where it goes.
pushing files to the sdcard, it seems prudent to talk about changing permissions.
sdcards are typically fat32, which destroys permisisons, and Android is heavily permission based.
So if you push an application to your sd card, then try to copy it to /system/app/ bad things are going to happen, or the app may not even show up.
So in that case, we use something called chmod.
This is used in this manner
Code:
adb shell
su
chmod 755 /pathtoapplication/applicationname
Keep in mind
you dont want to do this while its still on your sd card.
an example
Code:
adb shell
su
chmod 755 /system/app/ADWLauncher.apk
755 is good for applications and script files.
Just a couple more topics to cover.
Lets go over deleting files.
This becomes especially handy for removing rogue applications.
To do this, we must be in the adb shell.
Code:
adb shell
su
rm /system/app/ADWLauncher.apk
You may need to remount system as writable with:
Code:
mount -o rw,remount /dev/block/stl9 /system
That applies when using chmod as well.
So what I did above was delete ADW Launcher from system/app
However, what if I wanted to delete the entire contents of a directory?
Same thing as before, except
Code:
adb shell
rm -f /data/dalvik-cache/*.*
I just cleared my dalvik-cache with that command
very quick, very effective.
If you just tried that, please reboot your phone now
Ok....this leaves us with the final topic: logcat
logcat allows us to log what the OS is doing, and possibly delve information for when things are not working
its quite simple Reading it is another.
To use logcat
Code:
adb shell
logcat
To logcat to a certain file do
Code:
adb shell
logcat > /sdcard/logcat.txt
Now we let the log settle down to a reasonable amount of data coming in and not a wall of scrolling, then start the app in question. When it gives an error, we hit ctrl-C and kill the adb shell session.
This should have captured enough data to see the error. Now, I prepared an example. A user came to me on IRC, and Google Maps was force closing. Clearing data didnt fix it, Clearing dalvik-cache, and fix permissions did not fix it. In this case, the user did not know how to use adb So I had him grab an app called alogcat from the market and email me the log. This is also a very valid method.
this file explains what the problem was, and highlights what to look for as an example.
http://adrynalyne.us/files/logcat.pdf
___________________________________________________________________
This concludes the guide from Adrynalyne, there will be more workshops such as this one in irc.freenode.net #android-learning.
Thanks to everyone in #samsung-fascinate !
QUICK FAQ's
sources: Q&A Section, The Weekly Q&A Section by XDA News Writers (thanks guys)
Q: ‘Is there any way to block specific apps from using my data connection?’
A: Try the Droid Wall application.
Q: ‘I read how you can make changes in the build.prop file on my Android device. How exactly do I get to it?’
A: Install ASTRO file manager, browse to /system, long press on build.prop – Edit – Copy. Press on the home icon then Edit icon – Paste. Connect sd card, edit it, and paste it over from where you copied build.prop
Q: What happens if I update my phone? will I need to re-root it and get the ROM again? will all of my applications get erased? If so, is there a way around this?
A: You will lose your root, but not apps if it is just an update.
Q: I just tried to flash a ROM from recovery on my Android phone and got “Verification Failed, Installation Aborted” What happened?
A: Before you can flash a custom ROM the .zip file must be digitally signed in the ROM kitchen, if unzipped and re-zipped it will lose its verification, this happens often using the Safari browser as it likes to decompress .zip’s. Or if your download is corrupted (download the ROM again) it will fail the Verification.
Q - HTC Location Widget shows "map data unavailable"
A - On the widget, click the pin/then click the windows button/click get more/scroll to download maps/download relevant map (care, maybe a big file). Now exit and click onto map, your location should now be visible :)
Q:So, I moved all the apps on the SD, but is still not enough. How can I free some memory? I could delete the cache of the older upgrade or something else?
A:Do you have pictures and videos? If so, check if they are on the SD card and not on your internal memory. Cleaning your cache helps, and try deleting your text messages threads.
Q: ‘What exactly is a kernel and what are the benefits in changing it?’
A: A kernel is a bridge between the applications and the actual data processing done at the hardware level. The kernel’s responsibilities include managing the system’s resources – the communication between hardware and software components. Flashing different kernels gives you different operating speeds, better battery life, the ability to overclock, and more.
Android control other device with IOIO Board.
It use ADB.
http://androidcontrol.blogspot.com/2011/10/ioio-board-for-android-control-io.html
timmymarsh said:
QUICK FAQ's
sources: Q&A Section, The Weekly Q&A Section by XDA News Writers (thanks guys)
Q: ‘Is there any way to block specific apps from using my data connection?’
A: Try the Droid Wall application.
Q: ‘I read how you can make changes in the build.prop file on my Android device. How exactly do I get to it?’
A: Install ASTRO file manager, browse to /system, long press on build.prop – Edit – Copy. Press on the home icon then Edit icon – Paste. Connect sd card, edit it, and paste it over from where you copied build.prop
Q: What happens if I update my phone? will I need to re-root it and get the ROM again? will all of my applications get erased? If so, is there a way around this?
A: You will lose your root, but not apps if it is just an update.
Q: I just tried to flash a ROM from recovery on my Android phone and got “Verification Failed, Installation Aborted” What happened?
A: Before you can flash a custom ROM the .zip file must be digitally signed in the ROM kitchen, if unzipped and re-zipped it will lose its verification, this happens often using the Safari browser as it likes to decompress .zip’s. Or if your download is corrupted (download the ROM again) it will fail the Verification.
Q - HTC Location Widget shows "map data unavailable"
A - On the widget, click the pin/then click the windows button/click get more/scroll to download maps/download relevant map (care, maybe a big file). Now exit and click onto map, your location should now be visible :)
Q:So, I moved all the apps on the SD, but is still not enough. How can I free some memory? I could delete the cache of the older upgrade or something else?
A:Do you have pictures and videos? If so, check if they are on the SD card and not on your internal memory. Cleaning your cache helps, and try deleting your text messages threads.
Q: ‘What exactly is a kernel and what are the benefits in changing it?’
A: A kernel is a bridge between the applications and the actual data processing done at the hardware level. The kernel’s responsibilities include managing the system’s resources – the communication between hardware and software components. Flashing different kernels gives you different operating speeds, better battery life, the ability to overclock, and more.
Click to expand...
Click to collapse
Thank you for your patience and taking the time to answer those questions. I loved your simple and easily digestible format.
There is a note
*nix based Operating Systems see the letter 'a' and 'A' as two different things.
when you log into adb shell, you are playing by android rules
Click to expand...
Click to collapse
this note is all wrong..
1. linNUX is not *NIX.
2. Mac OS-X is a *NIX OS, it is based upon UNIX, they use their own variant called Darwin. Darwin does not require capitolization.
3. The word should be POSIX. Linux is POSIX compliant and POSIX defines the capitolization standardards
soft brick
Taioba said:
Is there any way to use ADB even though I can not enable USB debugging by the android?
I have an Atrix with soft-brick. How can I restore a file (framework-res.apk) knowing that my USB debugging is off?
I can enable ADB via fastboot?
Thanks!
Click to expand...
Click to collapse
I found this for atrix 4g....
http://forum.xda-developers.com/showthread.php?t=965546
hope it helps
knoknot said:
i have a bricked s2 not so sure how to go about reviving it via adb
Click to expand...
Click to collapse
check this thread
http://forum.xda-developers.com/showthread.php?t=1237815
thanks. searched for that
Thanks for it.
Great Guys............ :good:
Thanks for sharing.
Thanks for sharing this guild :d, i am new member for reccod
Great job~ Sometimes could be used this.
I'm using Windows 10 RTM and I've set the path, yet I still get the "unrecognized application" error in the command console. What am I missing?
Nevermind, a restart fixed it. Used to be you didn't have to.... sheesh.
nir36 said:
Replacing system files using Android Commander:
(This post was formally based in the HD2's RTL support thread and revolved around our need to replace frameworks)
so:
1. Download the android SDK from: http://dl.google.com/android/android...08-windows.zip
2. EXTRACT(!!!) the android-sdk-windows to c:\
(make sure you extract the dir - not run the setup from inside the zip file)
3. install Android Commander from http://androidcommander.com
4. Connect your device and make sure it's set to Debugging mode in /settings/applications/development/
5. You might have to set a dir containing your adb.exe file. set it to c:\android-sdk-windows\tools\
6. You will see a Total Commander-like interface. you can then copy the framework.jar file to the correct directory (there's no difference between SD android builds and androids in ROM - the system dir will be shown the same way)
a. Yes, you can replace/delete system files while android is running.
b. (for androids running from SD) Any file copied to /sdcard/android/root/system/X will be copied to /system/X in the system file. The sdcard/android root dir is JUST LIKE your root in ROM androids.
c. Make sure you either created a backup or verified a match in any other way before replacing files like frameworks, zimage, modules, etc.. your android might not boot afterwards (I keep all system.ext2 files backed up so that i can restore them incase i screw something up.)
enjoy
Click to expand...
Click to collapse
Thanks, this Guide is very informative
Help with LG D722
I'm using LG D722 phone and I somehow unlocked bootloader and installed twrp recovery. I backed up Lollipop that's what I'm using and i want to restore custom ROM
I know I need to install Google Apps after installing Custom ROM. But Do I also need to install Modem files on my device ? Because I can't find them on XDA Forums. Please give me a link or something. The help is not just appreciated but seriously needed.
Success. Thanks
Hello, I walk testing one recovery but I'm booting before flashing, the question is, will the recovery feel same when booted vs flashed? I've booted and used to flash a pair of zips but felt very laggy and bugged although did the work right. Thanks
Edit: solved, tried myself
Sent from my SHIELD Tablet K1 using XDA-Developers mobile app
http://forum.xda-developers.com/showthread.php?t=872128&page=2

BootBuddy - Run Boot Scripts from SDcard (a safe alternative to init.d)

INTRODUCTION:
Boot Buddy will allow you to run Linux shell scripts when your Android device is booting up. It will run your scripts early in the boot process, before the home screen appears.
The intended audience is generally intermediate to advanced users, and those who want to play with shell scripting on their device.
FEATURES:
BootBuddy is similar to init.d scripts, but with a core difference that it stores boot scripts on your SDcard instead of the internal system. This allows for several interesting enhancements. Feature listing-
Much more Safe than init.d. If you have a script that is malfunctioning, just boot with the sdcard out, and put the sdcard back in after your device reaches home screen. Your device is Saved, No Problem!
Boot Buddy is designed from the start to run scripts right from your SDcard. Just download any scripts to your boot_buddy_scripts directory and they're ready to run. (No more screwing around with permissions and files in your /system/etc/init.d/*)
SDcard storage allows you to copy a script to another device, or multiple devices easily.
Boot Buddy's author has several years of scripting and programming experience. It is streamlined, fast, and doesn't perform worthless functions like repeatedly logging the authors name and time (*hint to a t-init author*).
Clear goals of making operation simple, intuitive, and clean.
If you're currently using an "init.d" solution, BootBuddy can integrate seamlessly with it.
If you try BootBuddy and you don't like it, the installer also works as an uninstaller for easy clean removal.
BootBuddy is Open Source GNU GPL. Open for anyone to modify and improve upon.
As a developer, I make software to operate the way I would want if I were an end user, because I actually do use it, and I am an end user like you.
REQUIREMENTS:
Android 4.0 and up
Rooted device
An sdcard
Script Manager Free (or any other app that can run scripts as root)
Boot Buddy Installer bb_install.sh
INSTALL:
Start Script Manager, and allow/grant root access.
Navigate to the bb_install.sh file.
Tap on the file to show the menu options.
At the top, highlight the "Su" icon.
On the top-left, tap "Run".
The script will run quickly. It will automatically detect your sdcard location and create a folder on your sdcard named "boot_buddy_scripts". In that folder, you put the scripts you want to run at system boot. A log file will be kept at /data/boot_buddy.log
If you need your scripts to run in order, they are ordered by filename using the busybox "sort" program. They will run in alphabetical order using this format 0-9A-Za-z.
YOUR FIRST SCRIPTS: (OPTIONAL)
Here are a couple example scripts you may use.
The Android /system is normally mounted with read-only permissions by default. We will change that with the first script listed below. It will cause /system to be remounted to read-write permissions during boot.
The second script will create a file at every boot named /mnt/sdcard/sys_mount_info.txt. That txt file will give us information about how /system is currently mounted.
Download the file 00rw_system.sh into your boot_buddy_scripts folder.
Download the file 99sys_mount_info.sh into your boot_buddy_scripts folder.
Reboot your phone.
That's it, you just installed 2 new scripts and had them run at boot. It's Really just that simple to add startup scripts to your system.
To verify they are running, use any text viewer to open the file /mnt/sdcard/sys_mount_info.txt. It may show more than one line of text. There should be a line similar to this:
/dev/block/(device specific text) /system (fstype) rw,(more text)
The rw means that /system was successfully remounted as read-write during boot.
At any time you can delete either script if you choose. Easy!
UNINSTALL:
If for any reason you find you don't want or don't like Boot Buddy, you can cleanly uninstall it using the installer bb_install.sh. These instructions are almost identical to installing. (All match the installation steps, except step 4)
Start Script Manager, and allow/grant root access.
Navigate to the bb_install.sh file.
Tap on the file to show the menu options.
Type --uninstall in the text area labeled Arguments.
At the top, highlight the "Su" icon.
On the top-left, tap "Run".
Boot Buddy will be uninstalled. It will not remove the contents of your boot_buddy_scripts folder. If you have an "init.d" system installed, it will cleanly remove only Boot Buddy parts and leave the rest.
MUST READ
ADVANCED NOTES:
Boot Buddy will Not cause harm to your system, but it may not work on custom roms. Also, it may fail to detect the real location of your SDcard. It requires that /system/etc/install-recovery.sh is run during the boot process, and that file will be created if it does not exist. Also the file /data/boot_buddy.sh will be created. The script /system/etc/install-recovery.sh will run /data/boot_buddy.sh. The script /data/boot_buddy.sh will run the scripts on your sdcard. The file /data/boot_buddy.log will log any script output.
For Windows and Mac users- If you download the installer to your pc first, do not edit the installer with a text editor. Your computer will add hidden markers at the ends of each line that will prevent the installer from running. If you want to edit it, you should do so on a Linux pc or directly on your Android device.
Tell us about your results!!!
BootBuddy source code: http://github.com/Sepero/bootbuddy
NOTE : I AM NOT A DEVELOPER I AM ONLY SHARING THIS. So Try On Your Own Risk. I Can't Help Anything.
Credits :
[email protected]
Script mgr says I'm not root, despite me in a root terminal elsewhere. wtf ?? ...
I'm not root in script mgr., even though I'm showing up as root in terminal.
I've installed Super user (chains sd ), just in case the App doesn't support my other Supersu App or similar.
I've utilised the su icon and run.
I did tick run as executable.
No reboot tried.
What am I missing ??
Please advise.
I give you 5 stars to the thread
Almost first!!! haha.... this is awesome dude this could be HUGE.
Steve Eligoyo said:
I'm not root in script mgr., even though I'm showing up as root in terminal.
I've installed Super user (chains sd ), just in case the App doesn't support my other Supersu App or similar.
I've utilised the su icon and run.
I did tick run as executable.
No reboot tried.
What am I missing ??
Please advise.
Click to expand...
Click to collapse
You must to select root when start on script mgr, you have skull head with crossed bones
Steps to complete failure: Page 96 ?? ...
Here are the steps I've taken to get kicked in the teeth:
Boot phone > menu > script mgr. > start > scroll to file (in this case bb _install.sh ) > open file > tick su ( tried boot and bgr several times, nada amigo ) as instructions state > run > unexpected oper error: your not root > rinse and repeat sixty times > open terminal > su > Works just fine > Post my question on xda in the WTF Thread
Update:
After creating the directories and files needed to make this train wreck into a working setup, (obviously a few are missing here, working on it), I reopened script mgr and browsed the file system, which shows bb _install.sh file (and the other two in this
Thread as well) with the green su skull and crossbones with the boot dot next to those skulls, yet the apps shell /console says oper error - Your not root.
Again, I open terminal, su > enter > Viola!, I'm root.
I've installed the sdcard v. of script mgr as well and I get a message stating /data/system/xbin does not exist.
I'll likely need to tweak the script mgr settings to /sdcard 0/externalsd /directory bind /system /xbin/bb _install.sh - something like that.
Still doesn't explain why the app is putting the brakes on root terminal in the nag screen.
Any ideas ??
MAN THANK YOU !!!! as a noob i couldn´t get init.d to work right. so i tried your script on the xperia z3c with stock 4.4.4
to make it compatible with z3c you need to edit the file /data/boot-buddy.sh after the installation
and replace both
/boot_buddy_scripts/
with
/storage/emulated/legacy/boot_buddy_scripts/
or
/storage/sdcard1/boot_buddy_scripts/
or another prefered location
then make a new folder boot_buddy_scripts in the location.
really it executes the scripts way before the apps are starting , this is so nice and will be on my phones from now on !
edit: i also now changed the log file creation to the sd card for quick access (most filebrowsers open there by default)..
the logfile is major awesome btw if something didn´t go right , its easy to debug , thanx alot again
Won't install says I don't have busybox. I have it but it has to go in system bin instead of xbin. Amy way to get this working?

[ROOT] [FRAMEWORK MOD] Enable 'Daydream' screensaver, change lock screen wallpapers!

Current as of March 29, 2018.
I've been saving this for a rainy day and it's raining at my house today I have been with XDA for about a year and a half now. I made a list of several goals I wanted to accomplish, mainly to do so without root. Though I have been successful at many tricks and hacks on these tablets WITHOUT root, sometimes, no matter how hard you try, some things can't currently be done without it. One of the goals I set was activating Android's stock Daydream screensaver. This is something that was built into Android and is a feature that is greatly underappreciated and many people just don't know it exists. It's also a feature Amazon blocks us from using. Another goal was to find a way to change the lock screen wallpapers after you got rid of Amazon Photos.
After several weeks of reading and researching, I finally discovered a working way to edit the framework and successfully install it back onto at least two of the Amazon tablets I own. In doing so I discovered how Amazon blocks the use of certain features and settings and in some cases, have been able to reverse their code and replace it with values that activate those things. As you can see in the screenshot below, the Daydream screensaver feature is installed onto the tablet. Using Activity Launcher, tap the top left pull down menu and select 'all activities. Scroll until you see the settings option and tap it. Then scroll until you see 'Daydream'. That's as far as you can go. If you tap it, the display settings is what pops up. Furthermore, if you disable or delete Amazon Photos, and you're stuck with their lock screen wallpapers for the rest of time, until now.
{
"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"
}
In this case the settings don't redirect to another app like setting your lock screen wallpapers, which until now, required Amazon Photos to change. They simply take advantage of the framework, and block the use of the Daydream function through settings within it. That setting, among many more settings, are all allowed to be blocked and are options Android provides to manufacturers and service providers when they purchase the rights to a copy of an Android OS.
Today I am proud and very happy to announce through modding the FireOS framework on the Fire 7 and HD 10, I have successfully activated Android's stock Daydream screensaver, while at the same time, not destroying the fabric of FireOS. I have also found a way for you to once and for all, change your lock screen wallpapers WITHOUT the use of Amazon Photos.
In this TWO PART guide, I'll show you how to enable the use of the Daydream screensaver, install the 'Colors' add-on and show you how to change your lock screen wallpapers. The best part about Daydream, I have been able to track down the proper APK for Android's stock 'Colors' screensaver, also known as 'BasicDreams' and as you can see in the screenshot below, it surprisingly worked on both the Fire 7 and HD 8
The hardest part of all this, once Daydream was activated, was finding the proper APK to get this working. It took me about a week or more to track down the closest version of the 'BasicDreams' APK for our version of Lollipop and I provide it to you today as well. Follow the guide below on how to get Daydream activated and in part two, learn how to change your lock screen wallpapers WITHOUT the use of Amazon Photos.
*****WARNING*****
Editing or modifying the system framework can be very damaging to your device. I have spent an extensive amount of time studying it and ways to edit it. I am writing this guide now because I believe this method is the safest way to edit the framework without damaging your tablet. With that said, your results might not be the same. As such, from this point forward in this guide, I cannot be responsible for any damage that may occur to your device. Please only continue if 1) You are willing to risk a possible brick 2) If you are willing to flash back to the last version of FireOS that your tablet was on in case a brick does occur.
Part 1: Enable 'Daydream' Screensaver
Requirements:
- Rooted Amazon Fire 7 or HD 10.
- Windows PC with ADB installed.
- APKtool (Please note you need to install Java version 7 or greater in order to use APKtool).
- 7-Zip
- Proper 'BasicDreams' screensaver APK, provided at the bottom of this post.
- Notepad++
- ADB insecure
- Patience.
Instructions:
1. On your PC, Download and install 7-Zip, Java (INSTALL JAVA BEFORE YOU INSTALL APKTOOL!!), APKtool and Notepad++ and ADB Insecure, if you haven't done so already, from the links provided above. Download links and install instructions for APKtool can be found here. On your Fire 7 or HD 10, download and install ADB insecure from the link provided above. For APKtool, I recommend you create a folder named 'apktool' in your C:\ directory, as seen in the screenshot below:
2. Once you've installed those two things, plug your tablet into your PC and make sure you have ADB debugging enabled in developer options. (Tap settings, device options, tap serial number 7 times, tap developer opeions and enable ADB). Open an ADB window. We need to get a copy of your framework package by typing the command below into your ADB window and pressing enter. This command assumes you installed APKtool into your C:\ directory:
Code:
adb pull /system/framework/framework-res.apk C:\apktool
3. Now on your PC, you need to navigate to your APKtool folder in C:\. When the window opens, open a command window by holding down shift and right clicking on the APKtool folder window and select 'open command window here'. An example of how that command window would look is posted below:
4. Now we need to install the framework APK into APKtool so it's able to decompile it. In the APKtool command window, type the following command:
Code:
apktool if framework-res.apk
5. Time to decompile the framework so we can look inside of it and make ONLY one edit. Yes that's all it takes is one edit. Amazon only blocks out the Daydream screensaver by using one word. Type the following command in the APKtool window to decompile the framework APK:
Code:
apktool d framework-res.apk
6. Now go back to your APKtool folder on your PC. Another folder should have been created inside the APKtool folder. The folder will be called 'framework-res'. Open up the folder and double click the RES folder. Scroll down until you see the folder named 'values' and double click it. You then should then see a list of XML files, like in the screen shot posted below:
7. Right click on the file named 'bools.xml' and select 'Open with Notepad++'. Slowly scroll the page and look for the configuration setting as seen below. On my Fire 7 the configuration is on line 98:
Code:
<bool name="config_dreamsSupported">false</bool>
8. In the configuration it will say 'false'. Change it to 'true' (no quotation marks) so it looks like this:
Code:
<bool name="config_dreamsSupported">[B]true[/B]</bool>
9. Then save the file by clicking on the floppy disc icon at the top left of Notepad++. DO NOT MAKE ANY OTHER EDITS!! You can now close Notepad++ and open the command window for APKtool again. We have to recompile the framework. Do that by typing the following command into the APKtool command window:
Code:
apktool b framework-res
10. You might get an error or three as the APK recompiles. As long as APKtool builds the APK, ignore the errors. If any pop up during the rebuild process, at most there will be 3 that will say something about an 'ellipsis' and time formatting. They don't mean anything as far as I can tell. If there are more errors which are fatal for the framework APK building, APKtool will not complete the build process. If the build process successful, move onto the next step. Otherwise please repeat the process from step two and make sure you don't edit anything else.
11. Back on your PC, bring up the APKtool folder again. Open the 'framework-res' folder. A few new folders have been created by APKtool. The only one you need to worry about is 'dist'. Double click that folder. This is where APKtool puts rebuilt APKs. Right click on the 'framework-res.apk' file and choose '7-Zip' and 'open archive'. DO NOT CHOOSE UNZIP!!! (Unzipping or decompiling the APK improperly will result in undesirable consequences when you install it back on your tablet.)
12. A 7-Zip window will open up listing a few files. You can make it a little smaller and move it out of the way, but don't minimize it. Back at the APKtool folder (you should still be inside the dist folder), click the back or arrow up button until you are back in the main APKtool folder. Right click your OLD framework-res.apk file and select 7-Zip and 'open archive'. Again do NOT unzip or decompile the APK. You can make the 7-Zip window that opens, smaller if you like, but now make sure the two 7-zip windows are side by side, noting which one is the OLD and which is the NEW archive (the one with 'dist' in the directory is the NEW APK. See below):
13. Highlight the 'res' folder in the 7-Zip window containing the NEW archive. Now drag the 'res' folder from the new archive into the 7-Zip window containing the OLD archive. A window will appear asking if you "really want to copy the folder". Click yes. Now highlight the 'resources.arsc' file in the NEW archive window and then drag it to the OLD archive window and click yes when it asks you if you really want to copy it. You can now close both 7-Zip windows and navigate back to your APKtool window.
14. Now it's time to install the modified framework. Open ADB Insecure if you've already installed it. Grant it SuperUser rights and check the box next to "enable insecure adbd" and open an ADB command window. In order for this next step to be successful, you MUST have insecure adbd enabled. When you're ready, type the command:
Code:
adb remount
15. The window should reply with 'remount succeeded" as seen above. Now we are going to install the framework to the system. Don't worry about setting permissions for the framework. Because we are pushing the framework into the system via ADB and because the framework-res APK was already a system app, ADB will automatically set the proper permissions for the framework APK. This is the moment of truth! Type the following command below (this is assuming you installed APKtool into the C:\ directory). Once installed, within 5-10 seconds some buttons may appear different or be a different color. This is normal and generally signals a successfull installation. If within 5-10 seconds your tablet automatically reboots itself, that generally signals a soft brick. Here we go! Type the commands below, into your ADB command window one at a time:
Code:
adb push C:\apktool\framework-res.apk /system/framework/framework-res.apk
adb reboot
16. If your tablet rebooted successfully, congrats, you just activated Daydreams Before we install the Colors screensaver, go ahead and navigate to your display settings on the tablet. You'll notice a new tile, 'Daydream'. Tap on it and a new window opens. From here you can use the stock desk clock app for the screensaver, install 'Colors' or choose the Amazon screensaver. For Colors: Download the attached BasicDreams APK at the bottom of this post, but do NOT install it. Place the APK into your ADB folder. When done type the following command below. Again no need to worry about setting permissions to the APK as ADB will do it for us:
Code:
adb push BasicDreams.apk /system/app
adb reboot
17. When your tablet reboots, download and install Activity Launcher if you haven't done so already. Tap the pull down at the top left and select all activities. Scroll down until you see SystemUI and tap on it, then tap 'Dessert Case'. To stop the screensaver, tap and pull up near the navigation bar and swipe it closed. Navigate to your display settings again and tap on Daydream. You now have 3 screensavers!!! Tap the three dots at the top right for options on when the screensavers should turn on aka 'daydream'. You can also tap 'start now' to preview them.
So far, these are the only three I have been able to get working. I am still trying to get Photo Table to work, but I am pretty sure Gapps needs to be installed, and I haven't gotten that far to test it. I've tried other screensavers from the Play Store with no luck unfortunately. However if anyone finds anymore working ones, please post your results/finds
Thanks everyone who followed. This makes me quite happy to see this unique feature on these tablets as they are deserving of such a thing. It's disappointing Amazon lets such a great thing go to complete waste. This maybe an old feature, but a very cool and underappreciated one. I hope everyone enjoys this as much as I did unlocking it. I'll be honest; I never thought I would be able to learn basic coding. At least not enough to get this far and accomplish the things I have. Thanks for the support everyone
Watch for part two in the next couple days: Change your lock screen wallpapers...WITHOUT using Amazon photos!!
Part 2: Change your lock screen wallpapers
This guide will teach you how to change all of the stock FireOS wallpapers. This is much easier than activating Daydreams and you don't need Java or Apktool to make the edits.
This guide is mainly for individuals who want to or already disabled/uninstalled Amazon Photos. When you disable or uninstall Amazon Photos, you lose the ability to change your lock screen wallpapers. This guide will work for both the Fire 7 and HD 10.
Requirements:
- ROOTED Fire 7 or HD 10
- 7-Zip
- ADB insecure
- Your choice of any 7 wallpapers
- Windows PC with ADB
Instructions:
IMPORTANT: Make a copy of your SystemUI.apk at /system/priv-app/SystemUI and place it somewhere on your PC in case you have an unfavorable result, you won't have to reset your device.
1. Download and install 7-zip.
2. First we need to get a copy of your SystemUI. Plug your tablet into your PC, making sure ADB debugging is enabled in the developers menu. Open an ADB window on your PC and type the command below (the actions of moving the SystemUi.apk around should only be done via ADB. Never copy and past an APK from one device to another if you intend on editing it.)
Code:
adb pull /system/priv-app/SystemUI/SystemUI.apk
3. Running the above command will have resulted in making a copy of your SystemUI.apk and then placed it on your PC, into the same folder as ADB.
4. Create a folder on your desktop for the 7 wallpapers you desire. You can pick 7 different ones, or use the same wallpaper 7 times, but you can't choose any more or any less of a quantity. Putting anymore or less in the SystemUI will cause the tablet to bootloop. I have a collection of about 200 stock Android wallpapers from the first version, all the way to Nougat. It doesn't matter what size they are because you'll be resizing them anyways.
5. Once you've chosen your wallpapers, you'll have to resize them. For this guide I will be using Microsoft Paint. Navigate to the folder containing your new wallpapers and open the first one in Paint. Click the 'Resize' button at the top left of the screen, select Pixels and make sure the 'maintain aspect ratio' box is UNCHECKED. Your wallpaper MUST be the same size/resolution as Amazon's. Enter the values as listed and pictured below:
Code:
Horizontal: 1920
Vertical: 1200
6. Save the wallpaper as a .jpg. The name doesn't matter right now because we will be renaming them. If you are going to use 7 different wallpapers, you need to make a copy of the wallpaper you just resized. Open it in paint and again click resize, select Pixels and make sure 'maintain aspect ratio' is UNCHECKED. Reverse the dimensions:
Code:
Horizontal: 1200
Vertical: 1920
7. If you want to keep the same wallpaper on your lock screen all the time, repeat the above step with copies of the same wallpaper. Regardless if you use the same ones or different ones, you will have 14 wallpapers in the folder when done.
8. Navigate back to your ADB folder and locate SystemUI.apk. Right click on it and select the '7-Zip' option then 'open archive'. DO NOT UNZIP, EXTRACT OR DECOMPILE THE APK! Resize the window so you have a good amount of space to open the wallpaper folder we just made. Place the windows next to each other.
9. In the 7-zip, SystemUI archive window, double click on the 'res' folder then locate and double click the 'raw-hdpi-v4' folder. This is the location of the Amazon's default lock screen wallpapers. In your custom, wallpaper folder, you need to rename each wallpaper to match the names of Amazon's. It's important you do this step and that the names match. Otherwise when you reinstall the SystemUI, it will crash.
10. When you're done, in your custom wallpaper folder, click on 'Edit' a the top and 'select all'. Click on any of the wallpapers but don't let go! Start to drag them over to the 7-zip SystemUI window. Make sure you have all of them, then let go. When the box pops up asking you if you want to overwrite the other wallpapers just click yes. Close both windows and open an ADB window again.
11. Download and install ADB Insecure from the link at the beginning of this post. Open it and grant it root access if you don't have SuperSU set to automatic. Check the box to put ADB into insecure mode. In the ADB window, type the following commands, pressing enter after each one.
Code:
adb remount
adb push SystemUI.apk /system/priv-app/SystemUI/SystemUI.apk
adb reboot
12. That's all. If successful, your tablet will reboot and your custom lock screen wallpaper(s) should appear. If unsuccessful, your tablet will reboot, but with no SystemUI active. I'll write a small guide on recovering from a SystemUI crash without reflashing firmware if anyone has a problem. Until then enjoy your wallpapers. Just remember you have to repeat this guide each time you want to change them. Until I can figure out how Amazon Photos has such control over the lock screen, this is the only way to change your lock screen wallpapers if you uninstall Amazon Photos. Thank you for following everyone!
Definitely looking forward to trying this!
Still waiting for part 2. Also wondering if it's possible to modify the framework so that we can customize the power options.
oscarcx said:
Still waiting for part 2. Also wondering if it's possible to modify the framework so that we can customize the power options.
Click to expand...
Click to collapse
Got a little busier this weekend than I predicted. I will try to get part 2 up today or tonight.
Is it possible? Yes. However I'm having a difficult time with it. Those settings are a bit scattered and butchered so I'm having trouble figuring out which xml to edit. Amazon created their own xml files to override some of androids. It also doesn't help that a lot of values from the bools are repeated then scattered across various system apps. I know one issue is the power profile. Amazon did a good job of butchering that setting and it's proving difficult reconstruct. In other words the power profile is almost non existent.
DragonFire1024 said:
Got a little busier this weekend than I predicted. I will try to get part 2 up today or tonight.
Is it possible? Yes. However I'm having a difficult time with it. Those settings are a bit scattered and butchered so I'm having trouble figuring out which xml to edit. Amazon created their own xml files to override some of androids. It also doesn't help that a lot of values from the bools are repeated then scattered across various system apps. I know one issue is the power profile. Amazon did a good job of butchering that setting and it's proving difficult reconstruct. In other words the power profile is almost non existent.
Click to expand...
Click to collapse
No need to hurry. These are great discoveries so take your time to write the tutorial
In my opinion, your tutorial is kind of way too detailed. I know it's great for tech newbies, but by simplifying it a little bit could effectively save your time.
For the power option, if it's way too hard to customize it, maybe spending time on other stuff will be a better choice.
Anyways, thanks for your amazing work!
oscarcx said:
No need to hurry. These are great discoveries so take your time to write the tutorial
In my opinion, your tutorial is kind of way too detailed. I know it's great for tech newbies, but by simplifying it a little bit could effectively save your time.
For the power option, if it's way too hard to customize it, maybe spending time on other stuff will be a better choice.
Anyways, thanks for your amazing work!
Click to expand...
Click to collapse
I think it's more of putting pieces back in the right spots, for example, settings fragments. Some things are directed with Amazon's fragments and it's just a matter of finding the right android fragment and replacing it. In other cases, Amazon blocks out some features in an 'assets' file. Some things are also set in smali files/java and I know very little about smali, so have been reading up on that. Sometimes the fix is just a simple word change like the DayDream. I also recently discovered other settings or at least "project defaults " set by mediatek. I'm able to change some of those and supposedly add them to the build prop for more activation, but so far I haven't seen a difference.
Change your lock screen wallpapers everyone Part 2 is out!
DragonFire1024 said:
This guide will teach you how to change all of the stock FireOS wallpapers. This is much easier than activating Daydreams and you don't need Java or Apktool to make the edits.
(........................)
Thank you for following everyone!
Click to expand...
Click to collapse
Brilliant! Never thought of replacing those default wallpapers. At least this is a temporary solution.
I am wondering how the lockscreen wallpaper works and correct me if I am wrong. The app called "Special offer" is included in stock Fire OS and it has the ability to either change the wallpaper or overlay the wallpaper. Maybe it's a good idea to start from there but I am not sure about the legitimacy issue.
The lockscreen itself is weird though. Using Gravity Box, I can change some of the features but not all of them. Someone here told me that the lockscreen is deeply integrated into Fire OS.
oscarcx said:
Brilliant! Never thought of replacing those default wallpapers. At least this is a temporary solution.
I am wondering how the lockscreen wallpaper works and correct me if I am wrong. The app called "Special offer" is included in stock Fire OS and it has the ability to either change the wallpaper or overlay the wallpaper. Maybe it's a good idea to start from there but I am not sure about the legitimacy issue.
The lockscreen itself is weird though. Using Gravity Box, I can change some of the features but not all of them. Someone here told me that the lockscreen is deeply integrated into Fire OS.
Click to expand...
Click to collapse
There's a line in the build.prop file called "curlockscreen" with a value of 1. I have no idea exactly what it's for, but it might be related to disabling and/or modifying the lock screen.
lakitu47 said:
There's a line in the build.prop file called "curlockscreen" with a value of 1. I have no idea exactly what it's for, but it might be related to disabling and/or modifying the lock screen.
Click to expand...
Click to collapse
Just did a quick search on it and looks like it's the default lockscreen style
I decided to give Part 1 a try.
I got up to step 15 successfully, including having the Daydream tile.
I'm presuming that — to install BasicDreams.apk (in step 16) — you need to have another round of "adb remount"
Unfortunately, although "adb remount" worked when I did it the first time, trying to do it now results in an error:
remount of system failed: Invalid argument
remount failed
Trying to copy (with the "adb push BasicDreams.apk" command) results in an error:
adb: error: failed to copy '[PATH]/BasicDreams.apk' to '/system/app/BasicDreams.apk': remote Read-only file system
(Unsurprisingly, this is the same error if I try to do the "adb push BasicDreams.apk" thing without trying "adb remount")
In all cases, I'm re-enabling the "Enable insecure adbd" option from the "adbd insecure" app.
Any ideas how to fix this?
GamerOfRassilon said:
I decided to give Part 1 a try.
I got up to step 15 successfully, including having the Daydream tile.
I'm presuming that — to install BasicDreams.apk (in step 16) — you need to have another round of "adb remount"
Unfortunately, although "adb remount" worked when I did it the first time, trying to do it now results in an error:
remount of system failed: Invalid argument
remount failed
Trying to copy (with the "adb push BasicDreams.apk" command) results in an error:
adb: error: failed to copy '[PATH]/BasicDreams.apk' to '/system/app/BasicDreams.apk': remote Read-only file system
(Unsurprisingly, this is the same error if I try to do the "adb push BasicDreams.apk" thing without trying "adb remount")
In all cases, I'm re-enabling the "Enable insecure adbd" option from the "adbd insecure" app.
Any ideas how to fix this?
Click to expand...
Click to collapse
Make sure box is checked in adb insecure. After a reboot, you need to check the box again.
oscarcx said:
Just did a quick search on it and looks like it's the default lockscreen style
Click to expand...
Click to collapse
Yes but broken up internally. I do have a fix but I have to consult a developer before I announce it as it uses a piece of software from another rom.
GamerOfRassilon said:
I decided to give Part 1 a try.
I got up to step 15 successfully, including having the Daydream tile.
I'm presuming that — to install BasicDreams.apk (in step 16) — you need to have another round of "adb remount"
Unfortunately, although "adb remount" worked when I did it the first time, trying to do it now results in an error:
remount of system failed: Invalid argument
remount failed
Trying to copy (with the "adb push BasicDreams.apk" command) results in an error:
adb: error: failed to copy '[PATH]/BasicDreams.apk' to '/system/app/BasicDreams.apk': remote Read-only file system
(Unsurprisingly, this is the same error if I try to do the "adb push BasicDreams.apk" thing without trying "adb remount")
In all cases, I'm re-enabling the "Enable insecure adbd" option from the "adbd insecure" app.
Any ideas how to fix this?
Click to expand...
Click to collapse
How about,
adb shell
su
mount -o rw,remount /system
Instead of adb remount? It looks like an error in adb remount.
Supersonic27543 said:
How about,
adb shell
su
mount -o rw,remount /system
Instead of adb remount? It looks like an error in adb remount.
Click to expand...
Click to collapse
You can do that I suppose. I haven't tried. I side stepped that method because adb will make sure the APK has the permissions assigned properly amongst other anomalies I've come across. These are old APKs from original sources I work with. Most of the time i keep them safely inside their zipped ROM and sometimes you only get so many uses out of them if you move them around outside the system too much without proper permissions. In a matter of speaking they get lost and stop working. So I try to minimize the amount of time they remain away from home. With that said, it shouldn't be a problem.
Sent from my Samsung Galaxy S4 using XDA Labs
To follow up here:
1) I was certain I re-enabled adb insecure.
2) I tried "mount -o rw,remount /system", and got a similar error: "mount: Invalid argument". I also tried a command that worked in the past (that I'm pretty sure is doing the same thing): "mount -w -o remount /system" (no quotes, obviously), and also got the "mount: Invalid argument" error.
3) The error I had in this circumstance was similar to one I had on an unrelated matter regarding getting FlashFire working.
What I suspect is that somehow /system gets tired of being written to, and it "locks me out" for some reason. (There are two points when I have traditionally made use of "mount -w -o remount /system" — when I copy over the initial /system image via "dd if=/sdcard/system.img of=/dev/block/mmcblk0p13; sync" and when I disable OTA updates with "mv /system/priv-app/DeviceSoftwareOTA/DeviceSoftwareOTA.apk /system/priv-app/DeviceSoftwareOTA/DeviceSoftwareOTA.apk_" )
Another possibility is that I had somehow made a mistake in following this tutorial originally, typing "adb push [SOURCE]\framework-res.apk /system/framework-res.apk" instead of "adb push [SOURCE]\framework-res.apk /system/framework/framework-res.apk"
I deleted the errant framework-res.apk from /system, but I wonder if that somehow tripped up some kind of "don't muck with this" flag that wouldn't let me remount it.
4) Speaking of which, are you sure about this command in Step 16?
adb push BasicDreams.apk /system/app
Click to expand...
Click to collapse
I can't get it to work. In fact, if I use a file browser to go to /system , I just have a non-folder file named "app" that happens to be the same size as BasicDreams.apk . . .
I reflashed my /system and confirmed that I don't seem to have a folder named "app" in /system , so I can't quite figure out what that command is doing . . . Does it need to be:
adb push BasicDreams.apk /system/priv-app
? (I have a 2017 HD10, if it matters.)
5) For my second attempt, I tried to do as "clean" a re-install of my system as I could, avoiding the two instances of when I would remount /system in the past (flashing a straight system.img extracted from an update and freezing the OTA app with Titanium Backup). This time, remounting worked both times, as did the rest of the procedures (with the exception of the "BasicDreams.apk" problem, directly above).
GamerOfRassilon said:
To follow up here:
1) I was certain I re-enabled adb insecure.
2) I tried "mount -o rw,remount /system", and got a similar error: "mount: Invalid argument". I also tried a command that worked in the past (that I'm pretty sure is doing the same thing): "mount -w -o remount /system" (no quotes, obviously), and also got the "mount: Invalid argument" error.
3) The error I had in this circumstance was similar to one I had on an unrelated matter regarding getting FlashFire working.
What I suspect is that somehow /system gets tired of being written to, and it "locks me out" for some reason. (There are two points when I have traditionally made use of "mount -w -o remount /system" — when I copy over the initial /system image via "dd if=/sdcard/system.img of=/dev/block/mmcblk0p13; sync" and when I disable OTA updates with "mv /system/priv-app/DeviceSoftwareOTA/DeviceSoftwareOTA.apk /system/priv-app/DeviceSoftwareOTA/DeviceSoftwareOTA.apk_" )
Another possibility is that I had somehow made a mistake in following this tutorial originally, typing "adb push [SOURCE]\framework-res.apk /system/framework-res.apk" instead of "adb push [SOURCE]\framework-res.apk /system/framework/framework-res.apk"
I deleted the errant framework-res.apk from /system, but I wonder if that somehow tripped up some kind of "don't muck with this" flag that wouldn't let me remount it.
4) Speaking of which, are you sure about this command in Step 16?
I can't get it to work. In fact, if I use a file browser to go to /system , I just have a non-folder file named "app" that happens to be the same size as BasicDreams.apk . . .
I reflashed my /system and confirmed that I don't seem to have a folder named "app" in /system , so I can't quite figure out what that command is doing . . . Does it need to be:
adb push BasicDreams.apk /system/priv-app
? (I have a 2017 HD10, if it matters.)
5) For my second attempt, I tried to do as "clean" a re-install of my system as I could, avoiding the two instances of when I would remount /system in the past (flashing a straight system.img extracted from an update and freezing the OTA app with Titanium Backup). This time, remounting worked both times, as did the rest of the procedures (with the exception of the "BasicDreams.apk" problem, directly above).
Click to expand...
Click to collapse
I am not too sure why this is happening. I presume you edited the framework-res.apk? If so, use a root explorer, I use the actual Root Explorer, and navigate to /system/priv-app and create a folder named BasicDreams. If using root excplorer, Long press the folder, tapp three dots at top right, tap permissions, set to 0755 (rwxr-xr-x). Place the APK in the internal storage of your tablet. Open your root explorer and go to your internal storage. CUT the APK FIRST to /system then CUT it to the BasicDreams folder in /system/priv-app you just made. When done, if using root explorer, long press the APK, tap three dots on upper right and tap permissions. set permissions to 0644 (rw-r--r--). Reboot then go to settings, display, and see the Daydream menu.
DragonFire1024 said:
I am not too sure why this is happening. I presume you edited the framework-res.apk? If so, use a root explorer, I use the actual Root Explorer, and navigate to /system/priv-app and create a folder named BasicDreams. If using root excplorer, Long press the folder, tapp three dots at top right, tap permissions, set to 0755 (rwxr-xr-x). Place the APK in the internal storage of your tablet. Open your root explorer and go to your internal storage. CUT the APK FIRST to /system then CUT it to the BasicDreams folder in /system/priv-app you just made. When done, if using root explorer, long press the APK, tap three dots on upper right and tap permissions. set permissions to 0644 (rw-r--r--). Reboot then go to settings, display, and see the Daydream menu.
Click to expand...
Click to collapse
I did edit the framework-res.apk, yes.
I jumped through all those hoops, it it is — indeed — working! (I interpreted the instructions as "Cut and paste into /system, then cut and paste it from /system into the folder on /system/priv-app" . . . is that because the file needs to "touch" /system to work correctly? And I just COPY/pasted the first time into /system, to keep the original backed up on my SD card.)
GamerOfRassilon said:
I did edit the framework-res.apk, yes.
I jumped through all those hoops, it it is — indeed — working! (I interpreted the instructions as "Cut and paste into /system, then cut and paste it from /system into the folder on /system/priv-app" . . . is that because the file needs to "touch" /system to work correctly? And I just COPY/pasted the first time into /system, to keep the original backed up on my SD card.)
Click to expand...
Click to collapse
It touches the system just as a precaution. I've read in places it a way for the system to better accept APKs as a system app when you force install it like this. I don't know if it's true, but when manually adding a file, i take this step as a just in case route.

How to boot automatically a g900v cid 11 when power charger is plugged

Hi mates, the purpose is to use my old S5 as a surveillance camera with Athome app, for example. All is working good but there is only one problem, if the power goes down longer than the battery can survive, the phone turns off and it should be manually turned on when the power comes back.
I've found a way but it seems it's needed a rooted phone. The trick consist to edit file lpm (or something similar to it) into /system/bin, delete all lines and type instead:
#!/system/bin/sh
su
/system/bin/reboot
as far I know the cid11 can't be rooted, there is a way with safestrap recovery to access root the phone and edit this? Thank you!
I've done it! And I'm so happy that I decided to share the result, writing a guide.
There may were some ways to do it, but the big limit is the non root phone with MM 6.0.1.. anyway I tried for example to use adb under safestrap, or its console but there is too limited commands choice and I'm not that expert on linux so I decided to the longest (in terms of time) solution, but the only one I could manage easy:
I've edited the files manually, packed back into the ROM zipped and flashed them with Safestrap.
I would explain step by step:
Supposing you already did the process to install safestrap and a Custom/stock ROM, if not you need to proceed with that before, there are threads here explaing you how.
I used as reference this therad: https://forum.xda-developers.com/ve...ow-to-flash-custom-6-0-1-roms-locked-t3393943 because I have QA1, if you have another one just take this guide as reference only about the process
1) I downloaded necessary files
2) prepared the file lpm with a unix editor (I used Notepad++ and the function to format in Unix, the lines should end with 0x0A instead of Windows 0x0A+0x0D) with the following lines:
Code:
#!/system/bin/sh
/system/bin/lpm.orig &
while [ true ]; do
bat_proc=\\\`cat /sys/class/power_supply/battery/capacity\\\`
if [ \\\$bat_proc -gt 10 ]; then
sleep 3 && /system/bin/reboot
fi
sleep 5
done\
3) unzipped VZW_QA1_STOCK_SAFESTRAP_ONLY.zip
4) I renamed the file lpm in the folder system/bin into lpm.orig and copied the just created file lpm
5) Packed everything back to zip
6) copied all the necessary files to the download folder in the internal memory (safestrap on my phone can't recognize sd), see thread or below to now which files
7) Booted the phone in download mode and flashed with Odin NI2_stock_kernel.tar.md5 (put the file in AP). You need the Samsung drivers if you can't see COM in Odin, it will reboot when finished to flash, if the phone bricks after reboot then redo the process, the second time it works 100%.
8) Chose recovery on menu, in Safestrap wipe Dalvik, system, data, cache.. all except SD card
9) (all these files you should have in internal storage) Install VZW_QA1_STOCK_SAFESTRAP_ONLY.zip, QA1_MM_Firmware_With_QA1_Bootloader_CAUTION.zip, then wipe again data and cache only, ADD_SAFESTRAP_TO_ROM.zip, the latest google apps that you downloaded before and copied too, and as last install the MM_KERNEL_SS-FF_Flashable.zip.
10) Choose reboot (to system) and wait the rom installs, you may after test switching off and connecting the charger.

Categories

Resources