[Q] bash shell the hell (I can t set permiss.) - HD2 Android Q&A, Help & Troubleshooting and Genera

RESOLVED
Dear developers,
I need to make send hardware button work for the menu, because the long press windows make me crazy recalling the current applications instead to give me the real useful menu for the app I use.
I currently use desire on hd2. So searching in the previous posts I found that I can change /system/usr/keylayout/qwerty.kl
No way, I opened Astro, did not change and save the modifications. Then I tried to download a terminal emulator. Do not give me #, but I thought was normal reading other posts(the phone is already rooted) so I tried chown and chmod, but I do not what I have to write to do the trick of edit with ASTRO the 2 lines I need to put the menu (for the apps) in SEND hw button. Furthermore trying using $ ls -latr I discovered that the qwerty.kl is a link that refer to etc/keymap directory. So I tried to use ASTRO to edit the file but also if tell me save, there are not modification, simply the file is not edited.
resolved --> I HAD TO COPY IN SDCARD THE FILE QWERTY BEFORE to MODIFY WITH ASTRO, no need of chmod && Chown

Related

How to UNINSTALL unwanted stock/preinstalled apps from G1

How to remove unwanted stock/preinstalled apps
This is not a question. This is howto
I DID search through the forum and found nothing but
Q: how to remove/uninstall preinstalled apps ?
A: no way !!!
WHAT ??? WRONG ANSWER !!!
Here is how:
First of all I’ll describe my rooted, of course, phone configuration, so if you are on the same boat you can do same trick 99% if not you’ll know where to go
- CyanogenMod 4.1.2.1 (this is latest experimental as of sept-05-09) –works very stable for me
- 4GB SD card partitioned: FAT32, ext3 (512mb), linux_swap (32mb)
(great guide how to part your sd here: http://androidcommunity.com/forums/f56/compcache-userinit-22465/index4.html#post232988 (page 4)
- CompCache with Backing Swap (here: http://androidcommunity.com/forums/f56/compcache-userinit-22465/index4.html#post232988 (page 1)
Requirements:
1) G1 rooted phone
2) Explorer with ability to explore /system folders – I use Astro (market)
3) PC/MAC
4) SDK installed on it (http://developer.android.com/sdk/download.html?v=android-sdk-windows-1.5_r3.zip)
Steps:
1) first and very important: full backup of your system.
- DO NANDROID (it’s preinstalled in Cyano, search forum for “nandroid” if you don’t have it)
- DO ext3.tar (if you use ext3)
- Make full SD copy to your PC
As described here: (yes, same tread, thanks to bdb4269) http://androidcommunity.com/forums/f56/compcache-userinit-22465/index4.html (page 4)
Now we are safe..well, almost
2) find full name for the application you want to uninstall, say for Amazon MP3 it will be com.amazon.mp3.apk
I did it like this
- open Astro explorer
- go to the very top (/)
- search “amazon”
- when search done, write down full app name
- long press trackball – chose – open containing folder – remember the path (ie /system/app)
3) Assume SDK and USB drivers are installed ( http://developer.android.com/guide/developing/device.html )
And phone is connected to pc/mac
= below guide is from http://oneclickandroid.blogspot.com/ with my comments =
- Start emulator (don’t think it is necessary, but lets follow – emulator located in SDK folder\tools\emulator.exe in my case C:\SDK_15\tools\
CMD window pops up for a second and disappeared
- open CMD prompt (in Windows: Start > run > print: cmd , hit OK/enter)
- execute "adb shell" in on terminal from SDK_ROOT/tool folder
(if you did not register SDK folder in windows variables you need to cd to this folder first:
print: cd c:\sdk_15\tools hit enter
print: adb shell hit enter, you’ll see new prompt appeared: #
- print: mount -o remount,rw /dev/block/mtdblock3 /system
This will mount your system folder with read/write permission
- go to system/apps folder of your phone
(print: cd /system/apps hit enter)
*** guide says “/system/apps” but in my case it is “/system/app” ??? (remember I asked you to write down full path and name from Astro ? check your path first ***
- print: rm yourunwantedapplication.apk
i.e. rm com.amazon.mp3.apk hit enter
now, check installed apps in your phone (no reload req.) – is amazon disappeared ?
I wish to try this with app for that has a replacement from the market, like
Dialer – aTakePhone or Music – Meridian etc
Hope someone brave will do it before I do
Deleting may be unsafe if other preinstalled apps or process have links to uninstalled app
What happens in this case? wish someone knows the answer.
I dont think this trick will speedup your phone if you've moved your apps to ext2/3/4 already I just dont want to see useless apps in my phone/pc
Please reply here if you have experience of deleting preinstalled apps
sorry, english is my second languague
Good luck !
Hahahaha... all that trouble just to install a few unnecessary apps off of a ROOTED phone?! If you had searched, you'd have seen the numerous posts where we've posted instructions on uninstalling apps through Terminal. Literally 4 lines of code at most! Note that you can do this with any app you don't want. I have xROM, and one of the first things I do whenever I clean install to the latest version is replace ringtones and remove apps, including HTC Mail, Email, Amazon mp3, and Android Music. It takes me about 2 minutes to remove these apps.
Example for removing Amazon MP3:
su
mount -o rw,remount /system
rm -r /system/app/com.amazon-mp3.apk
mount -o rw,remount /data
rm -r /data/data/com.amazon.mp3
exit
exit
uansari1 said:
mount -o rw,remount /data
Click to expand...
Click to collapse
/data is never mounted read-only.
zelipukin said:
...
- Start emulator (don’t think it is necessary, but lets follow – emulator located in SDK folder\tools\emulator.exe in my case C:\SDK_15\tools\
CMD window pops up for a second and disappeared
...
Click to expand...
Click to collapse
That's not how you start the emulator, in the window that disappears is a message telling you to start with the proper parameters, which you'd see if starting from a command line. If the emulator actually was running, then all your adb commands would then fail because it wouldn't know what device you wanted to address, you'd have to use "adb -d" to tell it to use the real device rather than the emulator.
jashsu said:
/data is never mounted read-only.
Click to expand...
Click to collapse
Thanks for the info.. guess I've been doing an extra step, but this means I can do I through terminal even faster.
Easy way to remove unwanted preinstalled apps
Use Root Explorer to browse to /data/app_s and find the applications you don't want. Delete the APK and ODEX files and you are done.
Always remember to make a backup of your phone, before you start deleting.
ewaldtx said:
Use Root Explorer to browse to /data/app_s and find the applications you don't want. Delete the APK and ODEX files and you are done.
Always remember to make a backup of your phone, before you start deleting.
Click to expand...
Click to collapse
The app_s folder is only used for Hero ROMs because there isn't enough space in /system, so it's placed in /system/sd (the mount point of the ext partition) if you have an ext partition for A2SD.
For regular google source builds just go to /system/app.
there is an app called rootexplorer it has a button to remove syatem apps. real easy to use. http://www.cyrket.com/package/com.sp...e.rootexplorer
saprano614 said:
there is an app called rootexplorer it has a button to remove syatem apps. real easy to use. http://www.cyrket.com/package/com.sp...e.rootexplorer
Click to expand...
Click to collapse
and it works great
Sorry to kind of hijack this but cyrket.com always shows as a blank page.
anyone know why or how to fix that?
i think simply deleting the apk files and data folder will keep an entry in some kind of registry in android. if i just delete the apk files and data folder and run fix_permissions, it shows the same number of processes.
SUFBS
is a rooted file browser and it is, by far, the easiest way of uninstalling any stock apps.
Click one button to make the system folder re-writable (same thing with data folder, just a button), navigate to the apps directory and just delete. or you can search for the app and just delete it from the search window. Voila!
Ssantos6981 said:
is a rooted file browser and it is, by far, the easiest way of uninstalling any stock apps.
Click one button to make the system folder re-writable (same thing with data folder, just a button), navigate to the apps directory and just delete. or you can search for the app and just delete it from the search window. Voila!
Click to expand...
Click to collapse
are you talking about rootexplorer or what? elaborate a little..
i just bought and downloaded/installed rootexplorer simply to delete stock apps. upon opening it ask me to allow it. i say yes and it says my phone isn't rooted.
weird.. i just upgraded from cyanogen v4.1.999( or something around that) to the newest 4.2whatever. so how if my phone not rooted?!
blackinches said:
are you talking about rootexplorer or what? elaborate a little..
i just bought and downloaded/installed rootexplorer simply to delete stock apps. upon opening it ask me to allow it. i say yes and it says my phone isn't rooted.
weird.. i just upgraded from cyanogen v4.1.999( or something around that) to the newest 4.2whatever. so how if my phone not rooted?!
Click to expand...
Click to collapse
try it again lol. it should work
make sure your not on the stock adp recovery
Root explorer!!!
Hi,
i'm trying ro remove stock apps for quite a few days, and i'm getting desperate!
I have everything... titatium, terminal, root explorer, etc etc
with terminal I also receive "directory not empty", but with root explorer I can delete the apk's from /system/app ... I confirm after that they are not there, bus as soon as I reboot the phone they come back.
what can I do ?
I have HTC desire with stock android, rooted .. and also a couple of programs I instaled I don't really knwo what they do.. like rom manager, clockword recovery, etc
plz help!
Sleeepy2 said:
Sorry to kind of hijack this but cyrket.com always shows as a blank page.
anyone know why or how to fix that?
Click to expand...
Click to collapse
It is because the full url path is not correct. Hover cursor over link and look at lower left corner to view the url path...it has those .... in it and will not work. We need the full exact url path.
just use titanum backup,rt click on application it will show (remove),be sure u didn't updated any stock app e.g gmail update
Regarding using Root Explorer on stock G Tab updated to 1.2-4349...
Trying to remove some of the apps preloaded and using Root Explorer get a statement - my phone not rooted.
I want to get the apps off. What to do now? Thanks http://media.xda-developers.com/images/smilies/smile.gif
Thanks for this clear procedure !

[GUIDE] ADB Workshop and Guide for everyone

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 !
Reserved for possible extension of topic
Great, saves a lot of questions/answers & search
Every new user should read this!!
Thread stuck as valuable reference thread
Just to add, if I may, a little about the permissions...
============================================================
File permissions for Unix... which Android is based, just so those who tinker with the file permissions may know what they are getting into.
============================================================
Use the chmod command to set file permissions.
The chmod command uses a three-digit code as an argument.
The three digits of the chmod code set permissions for these groups in this order:
1.Owner (you)
2.Group (a group of other users that you set up)
3.World (anyone else browsing around on the file system)
Each digit of this code sets permissions for one of these groups as follows. Read is 4. Write is 2. Execute is 1.
The sums of these numbers give combinations of these permissions:
0 = no permissions whatsoever; this person cannot read, write, or execute the file
1 = execute only
2 = write only
3 = write and execute (1+2)
4 = read only
5 = read and execute (4+1)
6 = read and write (4+2)
7 = read and write and execute (4+2+1)
Chmod commands on file apple.txt (use wildcards to include more files)
Command Purpose
chmod 700 apple.txt Only you can read, write to, or execute apple.txt
chmod 777 apple.txt Everybody can read, write to, or execute apple.txt
chmod 744 apple.txt Only you can read, write to, or execute apple.txt Everybody can read apple.txt;
chmod 444 apple.txt You can only read apple.txt, as everyone else.
Detecting File Permissions
You can use the ls command with the -l option to show the file permissions set. For example, for apple.txt, I can do this:
$ ls -l apple.txt
-rwxr--r-- 1 december december 81 Feb 12 12:45 apple.txt
$
The sequence -rwxr--r-- tells the permissions set for the file apple.txt. The first - tells that apple.txt is a file. The next three letters, rwx, show that the owner has read, write, and execute permissions. Then the next three symbols, r--, show that the group permissions are read only. The final three symbols, r--, show that the world permissions are read only.
Compliments and full credit from:
http://www.december.com/unix/ref/chmod.html
Amazing thread just what I needed lol thanks!
cooolone2 said:
Just to add, if I may, a little about the permissions...
============================================================
File permissions for Unix... which Android is based, just so those who tinker with the file permissions may know what they are getting into.
============================================================
Use the chmod command to set file permissions.
The chmod command uses a three-digit code as an argument.
The three digits of the chmod code set permissions for these groups in this order:
1.Owner (you)
2.Group (a group of other users that you set up)
3.World (anyone else browsing around on the file system)
Each digit of this code sets permissions for one of these groups as follows. Read is 4. Write is 2. Execute is 1.
The sums of these numbers give combinations of these permissions:
0 = no permissions whatsoever; this person cannot read, write, or execute the file
1 = execute only
2 = write only
3 = write and execute (1+2)
4 = read only
5 = read and execute (4+1)
6 = read and write (4+2)
7 = read and write and execute (4+2+1)
Chmod commands on file apple.txt (use wildcards to include more files)
Command Purpose
chmod 700 apple.txt Only you can read, write to, or execute apple.txt
chmod 777 apple.txt Everybody can read, write to, or execute apple.txt
chmod 744 apple.txt Only you can read, write to, or execute apple.txt Everybody can read apple.txt;
chmod 444 apple.txt You can only read apple.txt, as everyone else.
Detecting File Permissions
You can use the ls command with the -l option to show the file permissions set. For example, for apple.txt, I can do this:
$ ls -l apple.txt
-rwxr--r-- 1 december december 81 Feb 12 12:45 apple.txt
$
The sequence -rwxr--r-- tells the permissions set for the file apple.txt. The first - tells that apple.txt is a file. The next three letters, rwx, show that the owner has read, write, and execute permissions. Then the next three symbols, r--, show that the group permissions are read only. The final three symbols, r--, show that the world permissions are read only.
Compliments and full credit from:
http://www.december.com/unix/ref/chmod.html
Click to expand...
Click to collapse
Thanks! Added
ih4ckback said:
Amazing thread just what I needed lol thanks!
Click to expand...
Click to collapse
Thanks, all goes to Adrynalyne
Thanks for the guide. Helped me pick out the stupid stupid mistakes I was making...so just a problem. I'm able to use fastboot easily but I seem to be unable to use ADB still on my windows 7. It says there are no devices and I'm dang well sure I have USB debugging on. Is it because Windows 7 is missing drivers for the nexus one or something else?
wonderful guide. I would like to add it to the guides thread.
Really awesome work, thumbs up.
But we should also take a guide on installing adb with Ubuntu/Linux, which isn't a very difficult thing...
mm7490 said:
Really awesome work, thumbs up.
But we should also take a guide on installing adb with Ubuntu/Linux, which isn't a very difficult thing...
Click to expand...
Click to collapse
If I got time tomorrow I could do that. I work primarily in Linux also
Sent from my Samsung Fascinate using Tapatalk Pro
This is good but I have a problem, when I try to remove an .apk file from /system/app it fails and says 'rm failed, Directory not empty'
I have followed exact instructions many time but never succeeded :s any help!!
(I am runnging these commands in device mod)
when I am in recovery mod I get this prompt ~ # and I am not able to enter su mod. how to get rid of this??
Well when the $ changes to # it means you have SU access
mustafa.aziz said:
This is good but I have a problem, when I try to remove an .apk file from /system/app it fails and says 'rm failed, Directory not empty'
Click to expand...
Click to collapse
Please give us the exact command(s) you entered
Here are the commands I entered after adb shell;
su
mount -o rw,remount /dev/block/stl9 /system
rm /system/app/mytouchmusic-signed.apk
exact message returned is 'rm failed for mytouchmusic-signed.apk, Directory not empty'
mustafa.aziz said:
Here are the commands I entered after adb shell;
su
mount -o rw,remount /dev/block/stl9 /system
rm /system/app/mytouchmusic-signed.apk
exact message returned is 'rm failed for mytouchmusic-signed.apk, Directory not empty'
Click to expand...
Click to collapse
Ok i think you need to do a recursive force delete which should be rf but i am not too sure! could somebody please confirm/ correct this?
Well, I don't think so ^^ As he doesn't want to erase a whole directory, but only a file.
What surprises me the most is the returned message... You're trying to delete an apk, and it says it's a directory :/
Could you please give us the output of this :
Code:
su
mount -o rw,remount /dev/block/stl9 /system
ls -l /system/app/mytouch*
Perhaps you don't even need the su and mount lines, but I'm not sure about that, and that can't harm your system ^^
Khoral said:
Well, I don't think so ^^ As he doesn't want to erase a whole directory, but only a file.
Click to expand...
Click to collapse
I know he doesn't want to delete a whole directory, but since the apk isn't compressed perhaps android looks at is as a directory and not a file? i don't know since what was returned suggested that it was a directory i presumed it was a directory! :S
mustafa.aziz said:
Here are the commands I entered after adb shell;
su
mount -o rw,remount /dev/block/stl9 /system
rm /system/app/mytouchmusic-signed.apk
exact message returned is 'rm failed for mytouchmusic-signed.apk, Directory not empty'
Click to expand...
Click to collapse
rm -rf /blah/blah
here is your desired output:
sh-3.2# su
su
sh-3.2# mount -o rw,remount /dev/block/stl9 /system
mount -o rw,remount /dev/block/stl9 /system
sh-3.2# ls -l /system/app/mytouch*
ls -l /system/app/mytouch*
-rw-r--r-- root root 299838 2008-08-01 18:00 mytouchmusic-signed.apk
sh-3.2#

[Q] droid x download permissions issue

so im stuck and can not figure this out. for some reason the permissions for the download folders on my sd card do not have any user permissions checked. i can not download anything at all but the market is fine as it is on the internal memory i suppose. the only reason i came across the user permissions issue was because i found another post where someone had the same problem with downloading and corrected the issue by using root explorer and manually adding user permissions to any folder he used for downloading. now... here is my problem... i used root explorer and when i try to add user permissions to these folders, the settings that changed do not stick. i check mark the 3 boxes and accept the changes but if i go back into that folders specific permissions, they are unchecked once again. how can i get it to not revert back or better yet how can i just resolve the issue in whole so i dont have to keep fixing folder permissions on the sd card for app that downloads? i dont see why the sd card of all places would start having these permission issues. the guys post i came across tried to tie this issue to the fix permissions option in rom manager saying it may have caused the problem but i didnt use rom manager to fix permissions until this problem started. i was on liberty 1.5 rom then reverted back to rooted stock where i still have the problem with all downloading except the market again. any help would be greatly appreciated!
58 views and not a single response? wow.... so very shocking to see that, i bet if i had post this in the dev forum i would have gotten 15+ responses just to say that im in the wrong section then anther 30 for people to argue back and fourth on how everyone is being rude or that this is the reason devs stay in irc...
Give this a try if you have the sdk and adb set up.
from a command prompt:
1) adb devices (make sure that your phone shows up)
2) adb shell
3) su (assuming you have rooted your phone)
4) cd /mnt/sdcard/download (or whatever the folder on your sdcard for downloads is called)
5) chmod 777 /mnt/sdcard/download (or whatever your download folder is called)
this should change the permissions on your sdcard to have full permissions.
thanks for your reply! im grateful, but wouldnt that only change the permissions for the "download" folder? which is mostly only a default location for apps such as the browser?
The way sysadmin-x is suggesting makes the permissions way different than they are by default, I wouldn't recommend doing it that way.
If you want to change permissions on the entire sd card to what they are by default, try running(as root)
Code:
chown -R system:sdcard_rw /mnt/sdcard && chmod -R 075 /mnt/sdcard
Edit: that code messes up the permissions on one folder, after running that you should also run
Code:
chown -R root:root /mnt/sdcard/.android_secure && chmod -R 000 /mnt/sdcard/.android_secure
Just do this: download a terminal emulator from the market. Open the app. Type su and press enter. Give it root access. Type chmod 777 /sdcard and press enter.
Please note you need root to do this

[Q] Remapping the external keyboard file

The Lenovo Thinkpad Tablet's keyboard folio is a neat little accessory but there is one issue that drives me nuts. (Beside the loss of the USB port). and that is that the Ctrl key also activates the menu (any menu).
So whenever one tries to do a copy and paste using the usual Ctrl + C and Ctrl + V keys, the menu (of the app you are working in) pops up.
Someone suggested to edit the Generic.kl file in /System/usr/keylayout directory and I did, but that didn't work. (Unless i did it wrong).
I'm at a loss. Would anyone have a suggestion on how to remap that key to only be a standard Ctrl and not menu key?
TS
Having the same issue.
But I'm using an external bluetooth keyboard: the logitech one, which was actually designed for the ipad.
I love it, its slim and very good quality keyboard.
Maybe some helpful links:
http://www.kandroid.org/online-pdk/guide/keymaps_keyboard_input.html
And this one has an explanation how this could be solved on a rooted thinkpad:
http://androidforums.com/ally-all-things-root/250271-re-map-key-keyboard.html
Ok, so I was able to remap some keys. Here is what I did.
The key layout files are stored in /system/usr/keylayout
The most important one seems to be Generic.kl which can be edited with a text editor, just use root explorer or the adb commands below. When I first tried my permissions were screwed up and I wrote the directions below but left them here in case they are helpful.
----------
(I edited gpio-keys.kl thinking it controlled the hard keys but it had no effect). While running the Thinkpad it seems as though I was unable to edit these files but I did get things to work using adb while booted into recovery. Here are the steps I took:
First reboot into ClockworkMod Recovery and plug in your thinkpad to your PC via USB
In CWR select Mounts and Storage then Select Mount /system (otherwise it seems adb can't access your system files)
On your computer run cmd and type adb devices (you should see a device listed, if not go check out the ADB setup guide). Now enter the following commands:
adb remount
adb pull /system/usr/keylayout/Generic.kl
This will copy the Generic.kl file to your current directory (you can see it in the command prompt, typically it is C:\Users\[Your Username]\
Browse to the file make a copy of the unedited version and save your backup somewhere and then edit Generic.kl in a txt editor (I like Notepad++)
I changed key 150 EXPLORER to say key 150 MENU, which makes the browser key open the menu instead of your web browser.
After you made your changes save it and then use the following ADB commands to push it back and set the permissions:
adb push Generic.kl /system/usr/keylayout/
adb shell
chmod 644 /system/usr/keylayout/Generic.kl
chown system.system /system/usr/keylayout/Generic.kl
exit
adb reboot
Now your keys should be remapped!
Just thought I'd add this to skip all the ADB and do it right on the tablet:
ES File Explorer (with root permission and /system writeable checked in settings)
Navigate to file, click, choose text, choose ES Note Editor, edit the file as needed, choose save when prompted.
You can change permissions with ES as well.
I like that it automatically makes a *.bak file of whatever you edit and save.
Those are the same steps I did, but it didn't work for me even after a reboot.
And although I did a backup of the existing generic.kl file, I think I may have overwritten it. So I'm going to have to go in search of a fresh one.
TS

[Q] MAC Address Keeps changing

Everything was good until I started messing with the 4.4 roms. Now no matter what I do. Full Wipe, Factory Image restore, try different Roms/Kernels, etc, my MAC Address will reset after every reboot. This is an issues as I use Mac Filtering on my router. Any Ideas?
The same is happening to me and I can't find a way to fix it!
It sucks because my main connection (my University wifi) doesn't let me connect if I have a different MAC Address.
I'm using this app to change my MAC (temporarily) https://play.google.com/store/apps/details?id=com.jworksbr.macspoofer
You need root to make it works.
Anyway, I'm still trying to find a way to get my original MAC address back.
joaocadide said:
The same is happening to me and I can't find a way to fix it!
It sucks because my main connection (my University wifi) doesn't let me connect if I have a different MAC Address.
I'm using this app to change my MAC (temporarily) https://play.google.com/store/apps/details?id=com.jworksbr.macspoofer
You need root to make it works.
Anyway, I'm still trying to find a way to get my original MAC address back.
Click to expand...
Click to collapse
I ended up using http://forum.xda-developers.com/showthread.php?t=2347060
For mac address:
- In /persist directory create wifi directory. In the new directory create a file named .macaddr (don't miss the dot!)
Edit the file and put 12 random hex numbers in it (0-9, A-F), save.
- Set execute and read permissions for everybody on /persist/wifi directory and change owner of .macaddr to wifi:wifi and permission to 660 (read/write for owner and group and nothing else).
In command line:
Code:
chown root:root /persist/wifi
chmod 755 /persist/wifi
chown wifi:wifi /persist/wifi/.macaddr
chmod 660 /persist/wifi/.macaddr
- run /system/bin/conn_init program. Can be run in root explorer(choose Linux Script Handler when you open it), or in adb shell:
Code:
su
/system/bin/conn_init
Then reboot and check if the changes got applied in settings
I cant get my original one back but at least I have a static MAC.
..
chainup said:
For me it's only the last 6 numbers/letters that keep changing on reboot. For both Wifi and Bluetooth. Is it the same for you guys?
Click to expand...
Click to collapse
Yeah first are always 11:22:33
Thank you, bandit97!
It's working fine now! =D
bandit97 said:
I ended up using http://forum.xda-developers.com/showthread.php?t=2347060
For mac address:
- In /persist directory create wifi directory. In the new directory create a file named .macaddr (don't miss the dot!)
Edit the file and put 12 random hex numbers in it (0-9, A-F), save.
- Set execute and read permissions for everybody on /persist/wifi directory and change owner of .macaddr to wifi:wifi and permission to 660 (read/write for owner and group and nothing else).
In command line:
Code:
chown root:root /persist/wifi
chmod 755 /persist/wifi
chown wifi:wifi /persist/wifi/.macaddr
chmod 660 /persist/wifi/.macaddr
- run /system/bin/conn_init program. Can be run in root explorer(choose Linux Script Handler when you open it), or in adb shell:
Code:
su
/system/bin/conn_init
Then reboot and check if the changes got applied in settings
I cant get my original one back but at least I have a static MAC.
Click to expand...
Click to collapse
i came from your link too but this didn't work for me
anyone know why?
Hi. This has been driving me crazy! My Nexus 4 also gets a new Mac address on each reboot. My local WiFi hotspot thinks i am a new customer every time I visit (as it uses Mac address filtering) which is frustrating. I got onto Google about it but they said i should return the phone to the retailer (didn't get it on the Play store). I tried reverting the phone to Android 4.3, resetting etc but nothing works. I the phone was fine at first so I can only assume it is a hardware fault. Does anyone have any more incite into this or a solution?
Could someone explain how I run the commands in an adb shell? I'm familiar with adb and android toolkit etc. Many thanks! PS. I tried it using root explorer and it did not work
Sent from my Nexus 4 using xda app-developers app
Where is /persist directory?
bandit97 said:
I ended up using http://forum.xda-developers.com/showthread.php?t=2347060
For mac address:
- In /persist directory create wifi directory. In the new directory create a file named .macaddr (don't miss the dot!)
Edit the file and put 12 random hex numbers in it (0-9, A-F), save.
- Set execute and read permissions for everybody on /persist/wifi directory and change owner of .macaddr to wifi:wifi and permission to 660 (read/write for owner and group and nothing else).
In command line:
Code:
chown root:root /persist/wifi
chmod 755 /persist/wifi
chown wifi:wifi /persist/wifi/.macaddr
chmod 660 /persist/wifi/.macaddr
- run /system/bin/conn_init program. Can be run in root explorer(choose Linux Script Handler when you open it), or in adb shell:
Code:
su
/system/bin/conn_init
Then reboot and check if the changes got applied in settings
I cant get my original one back but at least I have a static MAC.
Click to expand...
Click to collapse
Where is the /persist directory found? Does this work on unrooted phones? I have the Chinese S5 phone which changed Mac address every time I reboot or turn off and on the wifi. This has me logging in to my router to add a new mac every time.
You DO need to be rooted
ayonbaxter said:
Where is the /persist directory found? Does this work on unrooted phones? I have the Chinese S5 phone which changed Mac address every time I reboot or turn off and on the wifi. This has me logging in to my router to add a new mac every time.
Click to expand...
Click to collapse
Hello, you need not only root access, but a file manager capable of mounting read-write permissions, like ES File Explorer (free on Google Play).
If you have a Terminal Emulator, this will help. If not, find one on the Play Store. My favorite is from developer Jack Palevich, found here.
Otherwise, you won't see the directory on a stock file manager, especially if you're NOT rooted. Although I am on CM 10.2, this has plagued me as well when I was running CM11.
Good luck!
furboom1240 said:
Hello, you need not only root access, but a file manager capable of mounting read-write permissions, like ES File Explorer (free on ).
If you have a Terminal Emulator, this will help. If not, find one on the Play Store. My favorite is from developer Jack Palevich, found .
Otherwise, you won't see the directory on a stock file manager, especially if you're NOT rooted. Although I am on CM 10.2, this has plagued me as well when I was running CM11.
Good luck!
Click to expand...
Click to collapse
i have the same problem, i cant find the /persist directory. i installed ES file exloprer but on / there is no /persist folder only these folders:
acct, cache, config, custom, d, data , dev, etc, mnt, proc ,protect_f,protect_s, root, sbchk, sbin, sdcard, sys,system, vendor
can i create a persist folder or do i have a bigger problem with my system?
Lack of Details
tommy0014 said:
i have the same problem, i cant find the /persist directory. i installed ES file exloprer but on / there is no /persist folder only these folders:
acct, cache, config, custom, d, data , dev, etc, mnt, proc ,protect_f,protect_s, root, sbchk, sbin, sdcard, sys,system, vendor
can i create a persist folder or do i have a bigger problem with my system?
Click to expand...
Click to collapse
First of all, do you have Superuser-managed root access? In order for me to assist, you need to answer that. The /persist directory should certainly exist, as it was so on all devices I own, rooted or not. When browsing the filesystem, please be careful what you mess with. Even with root access, you must exercise judgment in what you modify.
As always, Root Responsibly.
Stay custom, my friends...

Categories

Resources