Hi,
I'm trying to install busybox into a development board by downloading the pre-compiled binary and following the installation steps here. However, after doing so, I'm still unable to use the commands in /system/busybox. For example, when I try to run mknod, it shows me the following error:
Code:
./sh: mknod: not found
Basically, I did the following:
In Linux
Code:
adb root
adb remount
adb push busybox /system/busybox
adb shell
In device adb shell
Code:
cd /system/busybox
./busybox --install .
./sh
cd /system/bin
mv sh sh.android
ln -s /system/busybox/sh sh
It would seem like what I did to install busybox didn't work. May I know what's the correct procedure to install it?
I tried creating symlinks using the same ln command and it works, but do I have to do this manually for every single command?
Thanks!
goister said:
Hi,
I'm trying to install busybox into a development board by downloading the pre-compiled binary and following the installation steps here. However, after doing so, I'm still unable to use the commands in /system/busybox. For example, when I try to run mknod, it shows me the following error:
Code:
./sh: mknod: not found
Basically, I did the following:
In Linux
Code:
adb root
adb remount
adb push busybox /system/busybox
adb shell
In device adb shell
Code:
cd /system/busybox
./busybox --install .
./sh
cd /system/bin
mv sh sh.android
ln -s /system/busybox/sh sh
It would seem like what I did to install busybox didn't work. May I know what's the correct procedure to install it?
I tried creating symlinks using the same ln command and it works, but do I have to do this manually for every single command?
Thanks!
Click to expand...
Click to collapse
You didn't add /system/busybox to your PATH
Sent from my LT26i using XDA
Hi,
Where would I add it? init.rc or something?
Anyone?
Thanks!
I've got some questions about rooting on a locked device, which I may as well fire away.
I'm on .17 DE and has got it setup nicely, so I don't want to go to .29 just to try things out, and if something goes wrong it's better if the tablet has got a boot manager installed so rescue flash is possible. So, if someone who knows what they're doing wants to unroot and try this out (or just tell me if anything is feasible) I believe many people (primarily not rooted .WW-people, but maybe all current ICS-device owners) would be very happy.
Q1 - In the "tweaks" post seanzscreams mentions there may be a way to push build.prop to /system/ at boot.
Wouldn't it be possible to create some root stuff to push and run, like
(pushsu.bat)
Code:
adb wait-for-device
adb push su /system/
run it, reboot tablet
create a shell script file for permissions (or some other mojo) and push it aswell:
(permsu.sh)
Code:
chown 0.0 /system/su
chmod 06755 /system/su
and then run:
(pushper.bat)
Code:
adb wait-for-device
adb push permsu.sh /system/
and finally run and reboot:
(setperms.bat)
Code:
adb wait-for-device
adb shell sh /system/permsu.sh
?
Q2 - wolf849 is doing some funky stuff to downgrade firmware where he's mounting stuff at /data/local/tmp and rebooting for (I assume) permissions to write to the "stuff".
Would it be possible to test these commands (modified to possibly work or break something) (mmcblk0p1 = /system on my device):
(in adb shell or something)
Code:
mv /data/local/tmp /data/local/tmp.bak
ln -s /dev/block/mmcblk0p1 /data/local/tmp
exit
Then reboot and see if /data/local/tmp is in fact /system mounted rw (ie "copy or push su"-able).
If the former wouldn't work because of symlinking rights maybe another approach would be a bat file, like
Code:
adb mv /data/local/tmp /data/local/tmp.bak
adb reboot
adb wait-for-device
adb ln -s /dev/block/mmcblk0p1 /data/local/tmp
adb reboot
Please don't try these suggestions if you don't know how to recover from possible bootloops or semibricks.
I would try them if I'd been unlocked and boot managered, but I'm out of luck if something goes wrong.
Hi can anyone please help with this Tv Box Quad-Core-Android-4-2-Rockchip-RK3188-Mini-PC-Smart- tv box works great the problem is some software need this box to be rooted i no how to connect to a pc shows up as a drive with folders here is the spec
* Android Device Brand rk31sdk
* Android Device Name PC Smart TV BOX Media Player
* Android Device Model B351 rk31sdk
* Android Version 4.2
* Build Number rk31sdk-eng 4.22 JDQ39/eng.linking.20140114.142223eng/test-keys
This is to help anyone with a similar device and I'll be brief;
First Install The Windows Drivers (you know, so you can actually talk to it)
i.e. from here... http://www.cnx-software.com/2013/11/08/simplified-method-to-install-rockchip-usb-drivers-in-windows-xp78/
If you have two Micro USB ports, work out which one is the power only v's the switchable USB guest / host one.
In setting, enable USB debug & then enable USB "connect to PC"
Windows should now detect and load the drivers for the device.
When the device is rebooted, you'll need to re-enable the "connect to PC" setting each time.
I found this package online that works for root but they left out of the script to copy the Super User App to the device. http://www.cnx-software.com/2013/03/19/how-to-root-rockchip-rk3188-mini-pcs/
The Archive Contains these files you'll need;
binary "su"
binary "SuperSU.apk"
binary "busybox"
binary "RootExplorer.apk"
It also contains the standard adb application
"TPSparkyRoot.bat" [modified] should contain;
Code:
@echo off
CD /D "%~dp0"
echo *---* VonDroid.com N101 II Root Tool based on work by sunnydavid *---*
echo --- Plug in your device, make sure debugging is enabled in Developer Options
echo --- This script will now copy files over to your N101 II
echo.
adb shell mv /data/local/tmp /data/local/tmp.bak
adb shell ln -s /data /data/local/tmp
adb reboot
echo --- Reboot 1/3 - Press Space Bar once the device has rebooted
pause
adb shell rm /data/local.prop > nul
adb shell "echo \"ro.kernel.qemu=1\" > /data/local.prop"
adb reboot
echo --- Reboot 2/3 - Press Space Bar once the device has rebooted
pause
adb shell id
echo --- If the ID shows as 0/root then continue, otherwise CTRL+C to cancel and start over
pause
adb remount
adb push su /system/bin/su
adb shell chown root.shell /system/bin/su
adb shell chmod 6755 /system/bin/su
adb push busybox /system/bin/busybox
adb shell chown root.shell /system/bin/busybox
adb shell chmod 0755 /system/bin/busybox
echo --- Installing SuperSU
adb push SuperSU.apk /system/app/SuperSU.apk
adb shell chown root.root /system/app/SuperSU.apk
adb shell chmod 0644 /system/app/SuperSU.apk
adb push RootExplorer.apk /system/app/RootExplorer.apk
adb shell chown root.root /system/app/RootExplorer.apk
adb shell chmod 0644 /system/app/RootExplorer.apk
echo Completing Root
adb shell rm /data/local.prop
adb shell rm /data/local/tmp
adb shell mv /data/local/tmp.bak /data/local/tmp
adb reboot
echo echo --- Reboot 3/3 - Your N101 II should now be rooted
pause
echo on
aboxy said:
Hi can anyone please help with this Tv Box Quad-Core-Android-4-2-Rockchip-RK3188-Mini-PC-Smart- tv box works great the problem is some software need this box to be rooted i no how to connect to a pc shows up as a drive with folders here is the spec
* Android Device Brand rk31sdk
* Android Device Name PC Smart TV BOX Media Player
* Android Device Model B351 rk31sdk
* Android Version 4.2
* Build Number rk31sdk-eng 4.22 JDQ39/eng.linking.20140114.142223eng/test-keys
Click to expand...
Click to collapse
Did you find rom for this version ? searching for Build Number rk31sdk-eng 4.22 JDQ39
Gonna try this now have the exact same model no.
Sent from my GT-I9505 using XDA Free mobile app
Hi! I'm a noob user, with a weird tablet.
The brand is Olidata (Chile), and the model is Wb7-l. The first problem was that the tipycal: many worng pattern attempts. I though about the usual: hard reset, but this weird tablet doesn't have one!So I tried all button combinations to enter th the hard reset menu, but was unuseful.
Then, I found a post, it said that with a program I could put anoter ROM (PhoenixSuite), and with the ADB Drivers. I could put another ROM, but the touch system doesn't work. Then I searched a second and a Third ROM, but was the same. Then, I remembered that the chip was a A13, and I found another post, where a user said that with a script you could fix that problem. I use the script and... it died :crying: . After that, i tried to connect it to the computer again, but I couldn't.
THEN, i read the script. Now, i'm really really afraid, because maybe the Tablet is dead.
Here's the script:
(I open it with notepad)
@ECHO off
echo Remount
adb remount
adb shell cd /
echo Mount root
adb shell mount -o remount,rw -t ext4 /dev/root /
echo Make dir bootfs
adb shell mkdir bootfs
echo Mount bootfs
adb shell mount -t vfat /dev/block/nanda /bootfs
echo Copy script.bin
adb push "script.bin" /bootfs/script.bin
echo Copy script0.bin
adb push "script.bin" /bootfs/script0.bin
echo Copy zet6221.ko to /system/vendor
adb push "zet6221.ko" /system/vendor/zet6221.ko
adb shell chmod 644 /system/vendor/zet6221.ko
echo Copy zet6221_ts.idc to /system/usr/idc
adb push "zet6221_ts.idc" /system/usr/idc/zet6221_ts.idc
adb shell chmod 644 /system/usr/idc/zet6221_ts.idc
echo Copy preinstall.sh
adb push "preinstall.sh" /system/bin/preinstall.sh
adb shell chmod 755 /system/bin/preinstall.sh
echo Copy setupsensors.sh
adb push "setupsensors.sh" /system/bin/setupsensors.sh
adb shell chmod 755 /system/bin/setupsensors.sh
pause
adb shell reboot
How can I undo what I did? What's the right ROM? (The other one was one called F1(A13)-20121129.1.1.1- )
Please, please help
(Sorry for my weird english, I know just a bit )
Hey guys,
Not sure if this is the correct place to post, but I am at my wits end and think I need a bit of help. I have been cloning devices on Android 7.1 without too much trouble, but something has changed in Android 8.1 which breaks things. Here is my setup:
Device: Xiaomi Redmi Note 4X 16GB, unlocked bootloader
OS: LineageOS 15.1 (Android 8.1)
My setup process is as follows:
Let stock ROM update (for latest firmware), unlock BL, flash TWRP, clean wipe, flash LineageOS + Gapps + Magisk
Skip through setup wizard, apply customisations (apps via APKs, launcher, settings, etc)
Clear Data for following:
com.google.android.gms.setup
Google App
Google Account Manager
Google Backup Transport
Google One Time Init
Google Partner Setup
Google Play Services
Google Play Services for Instant Apps
Google Play Store
Google Services framework
Reboot to TWRP
Connect to PC, run following ADB command: adb pull /data/system/users/0/settings_secure.xml
Open settings_secure.xml and delete "android_id" line
Push settings_secure.xml back to device: adb push settings_secure.xml /data/system/users/0/
Capture system image, flash onto other devices (either via TWRP backup or pushing system images via ADB)
Boot device, log into client Google account, done
Now this process used to work great on LineageOS 14.1 (Android 7.1), but now I get the following issues:
When adding a Google Account, it does not appear in Android device manager, but it appears in the list of devices in the Google Play Store? If I remove the account and then add it again it appears, but the issues below still occur.
Google's messaging / push system is broken. If I send a Hangouts message to my Google account, it won't appear until I open the app.
Any pre-installed apps won't appear in the "installed" list of apps in the play store, and therefore not update automatically until the user manually searches for the app in the Play Store and hits "update" (ugh).
I need to be deploying around 100 units over the next couple of months or so I need something that is scalable. I might be going around this the wrong way completely. I am not a ROM developer or programmer, just found something that has worked well in the past, so if I need to develop a ROM from scratch based on LineageOS I'll probably need to hire someone to do this for me as this is a bit beyond my current capabilities and time constraints. Let me know your thoughts! Thanks.
Android ID is same for many devices if you clone. That is really bad and can cause issues.
Rayman96 said:
Android ID is same for many devices if you clone. That is really bad and can cause issues.
Click to expand...
Click to collapse
I am deleting the Android ID from settings_secure.xml though. Unless it is somewhere else as well?
I'm still struggling with this problem. Is there anything else I can try? I googled this problem and the first result is this thread :/
stephendt0 said:
I'm still struggling with this problem. Is there anything else I can try? I googled this problem and the first result is this thread :/
Click to expand...
Click to collapse
Code:
adb shell settings delete secure android_id
adb shell settings delete secure advertising_id
adb shell settings delete secure bluetooth_address
adb shell settings put secure bluetooth_name 'YOURNAME'
adb shell settings put global device_name 'YOURNAME'
adb shell settings put global wifi_p2p_device_name 'YOURNAME'
The two IDs are then randomly regenerated. YOURNAME is any name of your choice.
rainman74 said:
Code:
adb shell settings delete secure android_id
adb shell settings delete secure advertising_id
adb shell settings delete secure bluetooth_address
adb shell settings put secure bluetooth_name 'YOURNAME'
adb shell settings put global device_name 'YOURNAME'
adb shell settings put global wifi_p2p_device_name 'YOURNAME'
The two IDs are then randomly regenerated. YOURNAME is any name of your choice.
Click to expand...
Click to collapse
Thanks for that. I believe I actually found their respective strings in settings_secure.xml:
<setting id="59" name="config_update_certificate"
<setting id="43" name="bluetooth_address"
And of course the Android ID. Once I deleted these, they auto-generated on the next boot, so I do this using ADB in TWRP.
I tried this and so far I'm not having any problems! Will report back if I experience any issues.
Another update - turn out that this is NOT enough. You will also want to clear data for the following apps (ideally just before shutting down the system and clearing android, bluetooth and config_update_certificate) to ensure that push notifications continue to work:
Com.google.android.gms.setup
Google App (not 100% sure if this is required, but I do it anyway)
Google Play Services
Google Play Store
Google Services framework
Reboot, clear your IDs, and then take your image. It should be OK after that, I think. I generally like to setup Hangouts on the device and then reboot, and let it sit for 5 minutes so its fully dozed before I send a test message.
Edit: STILL not working even after all this. Anyone else able to offer an explanation as to why push notifications is such an issue? This is becoming really difficult
stephendt0 said:
Another update - turn out that this is NOT enough. You will also want to clear data for the following apps (ideally just before shutting down the system and clearing android, bluetooth and config_update_certificate) to ensure that push notifications continue to work:
Com.google.android.gms.setup
Google App (not 100% sure if this is required, but I do it anyway)
Google Play Services
Google Play Store
Google Services framework
Reboot, clear your IDs, and then take your image. It should be OK after that, I think. I generally like to setup Hangouts on the device and then reboot, and let it sit for 5 minutes so its fully dozed before I send a test message.
Edit: STILL not working even after all this. Anyone else able to offer an explanation as to why push notifications is such an issue? This is becoming really difficult
Click to expand...
Click to collapse
ok, if you want to reset everything in a clone, proceed as follows:
Code:
adb shell su -c mount -o remount,rw /system
adb shell su -c rm /data/system/users/0/accounts.db
adb shell su -c rm /data/system/users/0/accounts.db-journal
adb shell su -c rm /data/system/users/0/photo.png
adb shell su -c rm /data/system/sync/accounts.xml
adb shell su -c rm /data/system/sync/pending.xml
adb shell su -c rm /data/system/sync/stats.bin
adb shell su -c rm /data/system/sync/status.bin
adb shell su -c pm clear com.android.packageinstaller
adb shell su -c pm clear com.android.providers.downloads
adb shell su -c pm clear com.android.vending
adb shell su -c pm clear com.google.android.backuptransport
adb shell su -c pm clear com.google.android.gms
adb shell su -c pm clear com.google.android.gsf
adb shell su -c mount -o remount,ro /system
Please also follow my instructions above for resetting the IDs before rebooting.
Google then recognizes a new device! Have fun :fingers-crossed:
rainman74 said:
ok, if you want to reset everything in a clone, proceed as follows:
Code:
adb shell su -c mount -o remount,rw /system
adb shell su -c rm /data/system/users/0/accounts.db
adb shell su -c rm /data/system/users/0/accounts.db-journal
adb shell su -c rm /data/system/users/0/photo.png
adb shell su -c rm /data/system/sync/accounts.xml
adb shell su -c rm /data/system/sync/pending.xml
adb shell su -c rm /data/system/sync/stats.bin
adb shell su -c rm /data/system/sync/status.bin
adb shell su -c pm clear com.android.packageinstaller
adb shell su -c pm clear com.android.providers.downloads
adb shell su -c pm clear com.android.vending
adb shell su -c pm clear com.google.android.backuptransport
adb shell su -c pm clear com.google.android.gms
adb shell su -c pm clear com.google.android.gsf
adb shell su -c mount -o remount,ro /system
Please also follow my instructions above for resetting the IDs before rebooting.
Google then recognizes a new device! Have fun :fingers-crossed:
Click to expand...
Click to collapse
OMG, I think that worked, thank you! I spent 5 hrs and stayed up to 3am trying to work this out with no luck, and this did the trick. To make things easier however, I morphed these commands into a dirty "one-liner" that saves entering each command.
Code:
adb shell settings delete secure android_id && adb shell settings delete secure advertising_id && adb shell settings delete secure bluetooth_address && adb shell settings put secure bluetooth_name 'Redmi Note 4' && adb shell settings put global device_name 'Redmi Note 4' && adb shell settings put global wifi_p2p_device_name 'Redmi Note 4' && adb shell su -c mount -o remount,rw /system && adb shell su -c rm /data/system/users/0/accounts.db && adb shell su -c rm /data/system/users/0/accounts.db-journal && adb shell su -c rm /data/system/users/0/photo.png && adb shell su -c rm /data/system/sync/accounts.xml && adb shell su -c rm /data/system/sync/pending.xml && adb shell su -c rm /data/system/sync/stats.bin && adb shell su -c rm /data/system/sync/status.bin && adb shell su -c pm clear com.android.packageinstaller && adb shell su -c pm clear com.android.providers.downloads && adb shell su -c pm clear com.android.vending && adb shell su -c pm clear com.google.android.backuptransport && adb shell su -c pm clear com.google.android.gms && adb shell su -c pm clear com.google.android.gsf && adb shell su -c mount -o remount,ro /system
I'm sure there is a more efficient way of stacking commands, but this worked. Replace "Redmi Note 4" with your actual device and reboot. I cleared data for any messaging apps and removed my Google account before I began, however.
stephendt0 said:
OMG, I think that worked, thank you! I spent 5 hrs and stayed up to 3am trying to work this out with no luck, and this did the trick. To make things easier however, I morphed these commands into a dirty "one-liner" that saves entering each command.
I'm sure there is a more efficient way of stacking commands, but this worked. Replace "Redmi Note 4" with your actual device and reboot. I cleared data for any messaging apps and removed my Google account before I began, however.
Click to expand...
Click to collapse
Perfect! You don't need to remove your Google account as the commands do this anyway
rainman74 said:
Perfect! You don't need to remove your Google account as the commands do this anyway
Click to expand...
Click to collapse
Quick update.
After a bit more testing, turns out that there were still a few things that needed clearing, particularly on different versions of Android (7.1). Also, I've noticed that a GSF ID can be generated before you get a chance to capture an image if you leave Wi-Fi enabled, so I've included that in the script. I've ended up with a .BAT file with the following:
Code:
echo on
adb shell settings delete secure android_id
adb shell settings delete secure advertising_id
adb shell settings delete secure bluetooth_address
adb shell su -c mount -o remount,rw /system
adb shell su -c svc wifi disable
adb shell su -c rm /data/system/users/0/accounts.db
adb shell su -c rm /data/system/users/0/accounts.db-journal
adb shell su -c rm /data/system/users/0/photo.png
adb shell su -c rm /data/system/users/0/settings_ssaid.xml
adb shell su -c rm /data/system/sync/accounts.xml
adb shell su -c rm /data/system/sync/pending.xml
adb shell su -c rm /data/system/sync/stats.bin
adb shell su -c rm /data/system/sync/status.bin
adb shell su -c pm clear com.google.android.ext.services
adb shell su -c pm clear com.google.android.ext.shared
adb shell su -c pm clear com.google.android.gsf.login
adb shell su -c pm clear com.google.android.onetimeinitializer
adb shell su -c pm clear com.android.packageinstaller
adb shell su -c pm clear com.android.providers.downloads
adb shell su -c pm clear com.android.vending
adb shell su -c pm clear com.google.android.backuptransport
adb shell su -c pm clear com.google.android.gms
adb shell su -c pm clear com.google.android.instantapps.supervisor
adb shell su -c pm clear com.google.android.gsf
adb shell su -c mount -o remount,ro /system
I have found that this works consistently across both LineageOS 14.1 and LineageOS 15.1 devices.
stephendt0 said:
OMG, I think that worked, thank you! I spent 5 hrs and stayed up to 3am trying to work this out with no luck, and this did the trick. To make things easier however, I morphed these commands into a dirty "one-liner" that saves entering each command.
Code:
adb shell settings delete secure android_id && adb shell settings delete secure advertising_id && adb shell settings delete secure bluetooth_address && adb shell settings put secure bluetooth_name 'Redmi Note 4' && adb shell settings put global device_name 'Redmi Note 4' && adb shell settings put global wifi_p2p_device_name 'Redmi Note 4' && adb shell su -c mount -o remount,rw /system && adb shell su -c rm /data/system/users/0/accounts.db && adb shell su -c rm /data/system/users/0/accounts.db-journal && adb shell su -c rm /data/system/users/0/photo.png && adb shell su -c rm /data/system/sync/accounts.xml && adb shell su -c rm /data/system/sync/pending.xml && adb shell su -c rm /data/system/sync/stats.bin && adb shell su -c rm /data/system/sync/status.bin && adb shell su -c pm clear com.android.packageinstaller && adb shell su -c pm clear com.android.providers.downloads && adb shell su -c pm clear com.android.vending && adb shell su -c pm clear com.google.android.backuptransport && adb shell su -c pm clear com.google.android.gms && adb shell su -c pm clear com.google.android.gsf && adb shell su -c mount -o remount,ro /system
I'm sure there is a more efficient way of stacking commands, but this worked. Replace "Redmi Note 4" with your actual device and reboot. I cleared data for any messaging apps and removed my Google account before I began, however.
Click to expand...
Click to collapse
YES, this did it. I cloned a kindle fire hdx using TWRP backup&restore and had to perform the action mentioned above in order to use both devices independetly.
ATTENTION!
Remember to change the values listed in stephendt0's example that were not part of the original code from rainman74:
- device_name: Equals the device type. E.g. adb shell settings put global device_name 'KFHDX'
- bluetooth_name: Hostname of the device seen in bluetooth.
- wifi_p2p_device_name: Hostname used for a p2p wifi network aka "ad hoc network". Not supported on all devices.