Help using the "find" command to install apk files - Android Q&A, Help & Troubleshooting

Hi all,
I have been trying for the majority of this night to try and make a, more or less, simple concept into a reality.
I would like to "deploy" .apk files to a set of tablets for student use in the school. Every now and then I will be required to install new apps across a range of devices. I have sorted out the transfer of the apk files to the tablets using an app called "FolderSync" so that the files will be local on the SD Card. Hopefully this part should not be problematic. Due to the fact that the tablets will be used by students, I want to make the process of installing the apps as automated as possible. Using the command "pm install <app.apk>" command I have achieved this step also. My trouble is that I will require the script to improvise and find all apk files in a folder and install them. So far I have tried the following:
Code:
su
cd /sdcard/FolderSync/
find *.apk -exec "pm install {}" \;
However this returns "find: pm install app.apk: No such file or directory"
This may be more of a Linux issue than android, or maybe even just me missing something obvious, however I have tried adjusting the syntax here and there and can't figure out how to successfully install a directory of .apk files.
Any ideas?
Thanks in advanced,
tylergard702

Any ideas anyone?
Or any alternate ideas of how to install a directory of .apk files without any user verification?

Ah never mind
Ha ha, using:
Code:
find *.apk -exec sh -c "pm install {}" \;
worked a treat . just thought I'd update in the unlikely event that someone is as silly as me :L
Solved.

Related

[SOLVED] Problems with busybox installer (help required)

I had installed the latest busybox installer (v7.3) by Stericson. It had an option to uninstall existing busybox installations.
Since I had multiple versions of busybox already installed on my P500, I decided to uninstall a few of them but on hitting uninstall it seems it removed a lot of binaries.
Now when I try to use any application that requires root it simply FC's.
Then I tried using ADB shell but it gave me the following error:
-exec /system/bin/sh: No such file or directory
I then manually tried to look into /system/bin from FileExpert app that I had installed on my mobile. I had almost every required essential binaries but sh was missing.
Therefore I did a adb push of sh from one of my other phones(a ZTC blade). It was successful but now ADB shell gives another error:
/system/bin/sh: Permission denied(13)
I need someones help in this. Am I proceeding the correct way. If yes, how do I set permissions without adb shell?
Also I few more points I had noticed (If it might me helpful)
--------------------------------------------------------
1) adb devices: now gives some generic device name (e.g- 80565403440...). Previously I think it was something like "LGP500" if I am not mistaken.
2) only /system/bin now holds some binaries. No binaries are to be found on other locations like /system/xbin, etc.
3) Is copying sh from another phone the correct way to proceed? Or shells are different for different mobiles. If yes, can a P500 owner provide a sh from /system/bin please? Thanks.
[EDIT: The problem has been resolved. Setting executable permission externally and making a adb push worked out. Only thing I needed was a Linux installation and VirtualBox saved my day. Windows powershell may also work it seems but I didnt try it.
I assumed the binary compiled for ZTC Blade will work successfully for the days to come. Thanks XDA]
Can someone please provide me the sh binary from P500 please? It resides in the /system/bin folder.
Also if anyone knows how to use the phones internal memory without adb and set file permissions, it would be a great help.
Someone please provide the sh binary from /system/bin . I will try pushing it with executable permissions set outside to see if it works...

[Q] Installing Ubuntu: file permission issue

I've been attempting to install Ubuntu on my Transformer Prime, using the guide included in Ubuntu Installer Free, and I seem to have run into a bit of a snag.
I've followed all the instructions, and I have the Ubuntu files on the /sdcard/ubuntu/ as instructed, but the shell script can't run because it doesn't have execute permissions, and I can't get them changed.
Whenever I run chmod it just ignores the command, and the file permissions stay the same. Being su doesn't seem to make any difference either. I've tried several file managers but none of them seem to have the ability to change file permissions either.
I have a Transformer Prime, unlocked, running the Primeval rooted stock ROM, if that helps. I have Superuser and I even installed busybox from the app on the market, in case maybe that was the issue.
Anyone have any idea what's going on here? Does the Linuxforandroid installer work any better maybe?
J Arcane said:
I've been attempting to install Ubuntu on my Transformer Prime, using the guide included in Ubuntu Installer Free, and I seem to have run into a bit of a snag.
I've followed all the instructions, and I have the Ubuntu files on the /sdcard/ubuntu/ as instructed, but the shell script can't run because it doesn't have execute permissions, and I can't get them changed.
Whenever I run chmod it just ignores the command, and the file permissions stay the same. Being su doesn't seem to make any difference either. I've tried several file managers but none of them seem to have the ability to change file permissions either.
I have a Transformer Prime, unlocked, running the Primeval rooted stock ROM, if that helps. I have Superuser and I even installed busybox from the app on the market, in case maybe that was the issue.
Anyone have any idea what's going on here? Does the Linuxforandroid installer work any better maybe?
Click to expand...
Click to collapse
You need to run it like this:
sh ubuntu.sh
...replace ubuntu.sh with the actual name of your shell script.
I don't think /sdcard allows the exec bit to be set, therefore you need to call run the script via sh
Hope this helps.

[Q] - exec '/system/bin/sh' failed: Permission denied (13) -

Does anyone know how to use linux to push an original sh file or even just the whole bin folder?
I am unable to use the shell command in adb because I really messed that up by replacing my bin folder with another phones bin folder (same phone make and model - Samsung Proclaim).
(whoops, as you can tell I don't understand much about the system files and therefore I shouldn't be messing with them but my phone was stuck in a bootloop and I got google happy and desparate)
But I've read a few things about possibly using linux to get in there and put the originals back. I have been using linux for a short while but I lack the skills necessary to do this.
Does anyone know if this is something that I can learn to do in a few days or is this something that only years of experience can accomplish?
I'm willing to search and read whatever is necessary I just need a push in the right direction.
Download Stock ROM
Open and decompress zip file (or whatever)
not just adb push the sh executable but all /system folder
remount /system
Code:
adb remount
Code:
adb push ./STOCK_DECOMP/system /system
if you get errors on copying app, just copy each internal folder one by one
at least i got internal shell on a Kindle doing this way (just copying an original sh didn't resolve my problem), but all environment was a little messy.
good luck.

[Q] [help]how to get system folder permission for hdx7

I just play andorid device a few days, but My hdx7 is a little bricked because i deleted some system app. Now I can log in fire os, have adb, usb connected and internal storge, even i can operate device setting app, but i can't open the other app because i don't have a desktop.
I compare system/app folder with the same folder in the amazon bin, found that the folder lack of scores of app, but the other system folder is the same. So I hope can adb push app folder to the system folder, but the pemission denied. I try to remount or mount, it can't work.
if adb root, then "adbd cannot run as root in production builds.
if adb push apk to the app folder, then “permission denied".
if adb remount, then ”remount failed: Operation not permitted".
and I have try adb shell like that:
# su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# chmod 777 /system
# exit
it didn't work.
my hdx7 have rooted.
My Questions are:
1. If I could push the app folder to the system folder and reset to factory, is my hdx saved?
2. How to get the system folder rw in the situation?
thx for any prompt, although i am a rookie but i will try my best, i wish the adept can help me and will be enormously grateful. Sorry for my poor english.
It sounds to me that you had lost root.
kschang said:
It sounds to me that you had lost root.
Click to expand...
Click to collapse
So i have tried root again like "http://forum.xda-developers.com/showthread.php?t=2544965" said
But it didn't work, please see the attach, But I don't know why.
Sorry for that i'm rookie to andorid and ask so many questions.
randolphling said:
So i have tried root again like "http://forum.xda-developers.com/showthread.php?t=2544965" said
But it didn't work, please see the attach, But I don't know why.
Sorry for that i'm rookie to andorid and ask so many questions.
Click to expand...
Click to collapse
Hmmm... It says you still have root (the prompt changed after "su")
I personally don't use ADB much. I have Root Explorer (grabbed it legally for free from Amazon ages ago) and Wifi Explorer Pro (same method) so I basically WiFi myself the files I need sideloaded then move them around on the device itself. But if you've lost launcher, you have deeper issues.
Have you tried ADB push any launcher? Or even a download store like 1Mobile or Aptoide?
ADB is basically a Linux shell debug into Android, so you need to learn some Unix shell commands. I'm sure you can find ADB guides with the basic commands, like "ls", "cp", and so on.
You need to check the directory and see if the system/app and other system directories are still there. This is one reason I only play with the copy of ROM I have (see Safestrap Recovery).

help with bypasslkm for surges nc5>mk2

can someone explain how to use bypasslkm in further detail. i looked through multiple threads but im stilll not getting the handle on it,
Open your terminal emulator on your phone (download one from Google play if you don't have one) open the terminal and type the following commands (Pressing enter to execute each one)
su (sands for switch user, used alone will switch you to the "root" user. Equilivent to Admin in windows)
cd /data/local/temp (cd - change directory, followed by the complete folder path you want to navigate to)
chmod 755 bypasslkm (not going to get too in depth with this one because I could go on for a while with it but "chmod 755" changes the permissions to read, write, execute for the root user and read/execute for everyone else)
. /bypasslkm (. / tells the system to look in the current directory and, in this case, execute bypasslkm)
Hope this helps clear some things up for you!
Sent from my SCH-I545 using XDA Premium HD app
sfgrimes said:
Open your terminal emulator on your phone (download one from Google play if you don't have one) open the terminal and type the following commands (Pressing enter to execute each one)
su (sands for switch user, used alone will switch you to the "root" user. Equilivent to Admin in windows)
cd /data/local/temp (cd - change directory, followed by the complete folder path you want to navigate to)
chmod 755 bypasslkm (not going to get too in depth with this one because I could go on for a while with it but "chmod 755" changes the permissions to read, write, execute for the root user and read/execute for everyone else)
. /bypasslkm (. / tells the system to look in the current directory and, in this case, execute bypasslkm)
Hope this helps clear some things up for you!
Sent from my SCH-I545 using XDA Premium HD
I keep getting a message saying that there is no such directory after trying to execute "chmod 755 bypasslkm"
Click to expand...
Click to collapse
Deleted
Sent from my SCH-I545 using Tapatalk
JTSDeveloper said:
I keep getting a message saying that there is no such directory after trying to execute "chmod 755 bypasslkm"
Click to expand...
Click to collapse
I had the same issue. Here is the binary from Surges dropbox https://www.dropbox.com/s/9rdz9ff6x5foech/bypasslkm
Make sure you copy it to the right directory and follow all the commands.
Sent from my SCH-I545 using XDA Premium HD app
To add to the above post, after downloading that just execute this in terminal
Code:
su
mount -o remount,rw /system
find . -name "bypasslkm" -exec cp {} /data/local/tmp \;
find /data/local/tmp -name "bypasslkm" -type f -exec chmod 755 {} \;
./data/local/tmp/bypasslkm
insmod /system/lib/modules/dhd.ko
exit
Surge1223 said:
To add to the above post, after downloading that just execute this in terminal
Code:
su
mount -o remount,rw /system
find . -name "bypasslkm" -exec cp {} /data/local/tmp \;
find /data/local/tmp -name "bypasslkm" -type f -exec chmod 755 {} \;
./data/local/tmp/bypasslkm
insmod /system/lib/modules/dhd.ko
exit
Click to expand...
Click to collapse
I got the following error trying to execute after downloading the bypasslkm file and doing what you said
JTSDeveloper said:
I got the following error trying to execute after downloading the bypasslkm file and doing what you said
Click to expand...
Click to collapse
Thats not an error. If you had bypasslkm anywhere on your phone, it should now be in /data/local/tmp with the right permissions and should have executed. Make sure you downloaded the bypasslkm binary linked above
Edit: Also just copy and paste the whole script to make things easier
Sent from my SCH-I545 using XDA Premium 4 mobile app
Surge1223 said:
Thats not an error. If you had bypasslkm anywhere on your phone, it should now be in /data/local/tmp with the right permissions and should have executed. Make sure you downloaded the bypasslkm binary linked above
Edit: Also just copy and paste the whole script to make things easier
Sent from my SCH-I545 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
It's still not working. Any ideas? Should I move it directly into /data/local/tmp
Surge1223 said:
Thats not an error. If you had bypasslkm anywhere on your phone, it should now be in /data/local/tmp with the right permissions and should have executed. Make sure you downloaded the bypasslkm binary linked above
Edit: Also just copy and paste the whole script to make things easier
Sent from my SCH-I545 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
I downloaded the binary from above and pasted it directly in data/local/tmp then tried it and it still didn't work :/ what should the permissions on the file be? I'm a noob at this stuff
JTSDeveloper said:
I downloaded the binary from above and pasted it directly in data/local/tmp then tried it and it still didn't work :/ what should the permissions on the file be? I'm a noob at this stuff
Click to expand...
Click to collapse
The permissions should be 755, as Surge said.
If you KNOW it's in /data/local/tmp, then do this in a terminal emulator window:
Code:
su
mount -o remount,rw /system
chmod 755 /data/local/tmp/bypasslkm
/data/local/tmp/bypasslkm
insmod /system/lib/modules/dhd.ko
mount -o remount,ro /system
exit
If this doesn't work, DO NOT post just "it didn't work". Say what you did, why you think it failed. Capture the output and reply here with it.
Solution to the 755 bypasslkm issue!!!!!
k1mu said:
The permissions should be 755, as Surge said.
If you KNOW it's in /data/local/tmp, then do this in a terminal emulator window:
Code:
su
mount -o remount,rw /system
chmod 755 /data/local/tmp/bypasslkm
/data/local/tmp/bypasslkm
insmod /system/lib/modules/dhd.ko
mount -o remount,ro /system
exit
If this doesn't work, DO NOT post just "it didn't work". Say what you did, why you think it failed. Capture the output and reply here with it.
Click to expand...
Click to collapse
I figured it out! Here is exactly what I did:
after downloading the bypasslkm.bin from the dropbox link, I used ES File Explorer (WITH ROOT ENABLED) to move the bypasslkm file to directly to the data/local/tmp location. NOTE: there are a few places marked "data" and "local" on the phone, so when you open a "data" folder, make sure you find the path in the right order [ i.e. first data, then local, and then tmp]
Using a ROOT FILE EXPLORER app (because ES doesn't have what you will need) go to the bypasslkm file, long press, and select permissions. It will display with permissions are currently set. At the bottom, it SHOULD display the total sum of the permissions selected. Basically, that means by selecting the right boxes, you can change the permissions to 755 !
7 5 5
user group world
r+w+x r+x r+x
4+2+1 4+0+1 4+0+1 = 755
These setting will give you the 755 that you need to pull this off .
When you have the permissions changed to 755, the last step was actually very easy. But if you want to play it safe, then I will tell you the root file browser I specifically used to do the last step.
I used the app Root Browser version 2.2.3 ( i literally googled for any generic root file explorer and this came up )
ok, so when you have the permissions changed, long press on the bypasslkm file.
select "Open With" and then select the option "Open As.."
At the bottom of the options is "script file" select it.
after doing so, select the option "Execute" and... Voila! I immediately regained my WIFI !!!!! \>w</
I hope this guide helped everyone out. I tried to be as specific as possible.
EinGlo said:
I figured it out! Here is exactly what I did:
after downloading the bypasslkm.bin from the dropbox link, I used ES File Explorer (WITH ROOT ENABLED) to move the bypasslkm file to directly to the data/local/tmp location. NOTE: there are a few places marked "data" and "local" on the phone, so when you open a "data" folder, make sure you find the path in the right order [ i.e. first data, then local, and then tmp]
Using a ROOT FILE EXPLORER app (because ES doesn't have what you will need) go to the bypasslkm file, long press, and select permissions. It will display with permissions are currently set. At the bottom, it SHOULD display the total sum of the permissions selected. Basically, that means by selecting the right boxes, you can change the permissions to 755 !
7 5 5
user group world
r+w+x r+x r+x
4+2+1 4+0+1 4+0+1 = 755
These setting will give you the 755 that you need to pull this off .
When you have the permissions changed to 755, the last step was actually very easy. But if you want to play it safe, then I will tell you the root file browser I specifically used to do the last step.
I used the app Root Browser version 2.2.3 ( i literally googled for any generic root file explorer and this came up )
ok, so when you have the permissions changed, long press on the bypasslkm file.
select "Open With" and then select the option "Open As.."
At the bottom of the options is "script file" select it.
after doing so, select the option "Execute" and... Voila! I immediately regained my WIFI !!!!! \>w</
I hope this guide helped everyone out. I tried to be as specific as possible.
Click to expand...
Click to collapse
worked perfectly and all my confusion is now gone thank you.
Fix works but new issue
JTSDeveloper said:
worked perfectly and all my confusion is now gone thank you.
Click to expand...
Click to collapse
Thanks for the support. Glad I could help. Has your WIFI remained on, though? The solution I posted works, but only for a short amount of time. rebooting the system undoes the work I did and I have to go back into the root browser and execute the file all over again to get wifi.
Can Surge or someone else offer any expertise?
with the permissions changed properly, I tried executing the code, and still not working.
I have safestrap enabled, and I have sound restored. I am currently on android 4.3 from the downgrade provided by Surge. Its rooted.
If I were to upgrade to the rooted version of NC5, would that help fix the wifi issue, or would it carry over?
Any input going forward is appreciated!
EinGlo said:
Thanks for the support. Glad I could help. Has your WIFI remained on, though? The solution I posted works, but only for a short amount of time. rebooting the system undoes the work I did and I have to go back into the root browser and execute the file all over again to get wifi.
Can Surge or someone else offer any expertise?
with the permissions changed properly, I tried executing the code, and still not working.
I have safestrap enabled, and I have sound restored. I am currently on android 4.3 from the downgrade provided by Surge. Its rooted.
If I were to upgrade to the rooted version of NC5, would that help fix the wifi issue, or would it carry over?
Any input going forward is appreciated!
Click to expand...
Click to collapse
It is possible to automate this.
Create a file with the following contents:
Code:
#!/system/bin/sh
/data/local/tmp/bypasslkm
insmod /system/lib/modules/dhd.ko
exit
Save this file as /system/etc/install-recovery-2.sh.
Make sure that the bypasslkm file is in /data/local/tmp.
Reboot, and you should now have WiFi again.
[Note: this assumes SuperSU has it's custom copy of /system/etc/install-recovery.sh in place. If that's not there, it's still possible to edit /init.rc to add a stanza to run this command.]
Issue with auto-running my solution
k1mu said:
It is possible to automate this.
Create a file with the following contents:
Code:
#!/system/bin/sh
/data/local/tmp/bypasslkm
insmod /system/lib/modules/dhd.ko
exit
Save this file as /system/etc/install-recovery-2.sh.
Make sure that the bypasslkm file is in /data/local/tmp.
Reboot, and you should now have WiFi again.
[Note: this assumes SuperSU has it's custom copy of /system/etc/install-recovery.sh in place. If that's not there, it's still possible to edit /init.rc to add a stanza to run this command.]
Click to expand...
Click to collapse
I do NOT have supersu's install recovery 2 file in the location you said. I only have the regular install recovery file.
What I should I do? Could I create the file in laptops termial?
The first line of code gave me the error "file not found"
update
EinGlo said:
I do NOT have supersu's install recovery 2 file in the location you said. I only have the regular install recovery file.
What I should I do? Could I create the file in laptops termial?
The first line of code gave me the error "file not found"
Click to expand...
Click to collapse
I tried again.
Ok, so I figured out the coding a little bit. Im not used to this, so forgive my ignorance.
I did the code as u typed it. BUT I made a change. Because I kept getting the "file not found " error. I added ".bin" to the end of the bypasslkm code line. It generated a real response. I felt relieved. I went ahead and typed the last line of code.
THEN I was told the file already exists... I have attached a picture of what I got in android Terminal
EinGlo said:
I do NOT have supersu's install recovery 2 file in the location you said. I only have the regular install recovery file.
What I should I do? Could I create the file in laptops termial?
The first line of code gave me the error "file not found"
Click to expand...
Click to collapse
You should have /system/etc/install-recovery.sh
It will run /system/etc/install-recovery-2.sh if it exists. What I would do is to create the file on your PC, put it onto your SDcard on the PC, then use Root Explorer to put it into place.
The "file exists" error is because you already have the WiFi module installed. That won't happen when this script runs at boot.
Question
k1mu said:
You should have /system/etc/install-recovery.sh
It will run /system/etc/install-recovery-2.sh if it exists. What I would do is to create the file on your PC, put it onto your SDcard on the PC, then use Root Explorer to put it into place.
The "file exists" error is because you already have the WiFi module installed. That won't happen when this script runs at boot.
Click to expand...
Click to collapse
Ok. I'll try that tonight.
But I have a few questions
Im basically trying to autostart the wifi module when the phone boots up right? Are there any apps that can accomplish this specific task?
Also about the downgrade in general. Did anyone get their SD card permissions restored after downgrading? I donwgraded to 4.3, rooted the phone, and somehow I STILL cant move apps to the sd card! Im beginning to suspect that thr issue may be with the card itself, which can be fixed with formatting the sd card. But has anyone had any problems with moving apps to the sd card?
Finally, the bug question concerning the wifi issue.
Is this probkem specific only to those with the downgrade? If so, should upgrading to Surge's rooted kitkat (with sd card permissions and tethered enabled) resolve the wifi issue?
I also noticed that I had wifi access when the phone had no sound. Only when I flashed the Non-HLOS bin file did I encounter this wifi issue.
Thanks for the feedback so far, I just need to understand whrre to go from here
EinGlo said:
Ok. I'll try that tonight.
But I have a few questions
Im basically trying to autostart the wifi module when the phone boots up right? Are there any apps that can accomplish this specific task?
Click to expand...
Click to collapse
I'm sure there are programs that can be set up to run scripts as root during boot; However, that's complicated since you want this to run while the phone is booting, before there's any opportunity to allow SuperSU to ask for permission.
EinGlo said:
Also about the downgrade in general. Did anyone get their SD card permissions restored after downgrading? I donwgraded to 4.3, rooted the phone, and somehow I STILL cant move apps to the sd card! Im beginning to suspect that thr issue may be with the card itself, which can be fixed with formatting the sd card. But has anyone had any problems with moving apps to the sd card?
Click to expand...
Click to collapse
That's a problem that's fixed by an edit to /system/etc/permissions/platform.xml, adding a stanza that permits external storage write access.
EinGlo said:
Finally, the bug question concerning the wifi issue.
Is this probkem specific only to those with the downgrade? If so, should upgrading to Surge's rooted kitkat (with sd card permissions and tethered enabled) resolve the wifi issue?
I also noticed that I had wifi access when the phone had no sound. Only when I flashed the Non-HLOS bin file did I encounter this wifi issue.
Thanks for the feedback so far, I just need to understand whrre to go from here
Click to expand...
Click to collapse
The need to run the "bypasslkm" program is because of the downgrade. If you go to a clean rooted Kit Kat ROM, it shouldn't have any issues with WiFi being enabled. That may be the easiest way to fix this.

Categories

Resources