One-click root ..amonet-mustang - Fire Q&A, Help & Troubleshooting

Hi ..
I have a script for device amonet-mustang
I want when I run a file flash-B.sh
to do everything automatically
When I run my script it doesn't work .. say Permission denied
link file
https://www.mediafire.com/file/iioog...lash-B.sh/file
Quote:
#!/bin/bash
args=("[email protected]")
function goto
{
label=$1
cmd=$(sed -n "/$label:/{:a;n;p;ba};" $0 | grep -v ':$')
eval "$cmd"
exit
}
echo[*] OPEN Done ...
adb wait-for-device
adb devices
adb push arm/mtk-su /data/local/tmp
adb shell chmod 777 /data/local/tmp/mtk-su
echo[*] File Push Done...
adb shell "/data/local/tmp/mtk-su -c echo 0 \> /sys/block/mmcblk0boot0/force_ro"
adb shell "/data/local/tmp/mtk-su -c dd if=/dev/zero of=/dev/block/mmcblk0boot0 bs=512 count=8"
echo[*] block Done...
adb reboot
echo[*] Reboot DONE .
./bootrom-step.sh
echo[*] bootrom-step DONE .
./fastboot-step.sh
echo[*] You are now in Recovery ..plz Format your Amazon ...
sleep
exit
Click to expand...
Click to collapse
say
dd: /dev/block/mmcblk0boot0: Operation not permitted
1+0 records in
0+0 records out
0 bytes transferred in 0.001 secs (0 bytes/sec)
Click to expand...
Click to collapse

PRInCEI7 said:
Hi ..
I have a script for device amonet-mustang
I want when I run a file flash-B.sh
to do everything automatically
When I run my script it doesn't work .. say Permission denied
link file
https://www.mediafire.com/file/iioog...lash-B.sh/file
Quote:
say
Click to expand...
Click to collapse
Link is dead

Related

[HOW-TO] Run commands and persist settings after reboot - Updated

Here is an easy way to run commands after each boot.
In the init.rc file, the file /system/bin/clrbootcount.sh always gets run after a successful boot. Since it isn't trivial to change the init.rc file, we will use clrbootcount.sh to run commands after a boot. Since people are having issues with modifying clrbootcount.sh, we will choose a safer method.
clrbootcount.sh will always attempt to call /data/boot_complete_hook.sh, which doesn't exit. We are going to create this file and use that to run commands.
Create a file named boot_complete_hook.sh with the following contents (On Windows, use Notepad++):
Code:
#!/system/bin/sh
##################################################################################
#
# File boot_complete_hook.sh
# Description Run any commands that you want to be run after boot
#
##
setprop persist.service.mount.umsauto 0
echo 68000,1024/70/200/40,600/10/11/10 > /sys/devices/omapdss/display0/timings
Save and close.
Now, execute the following commands to put the file on your nook:
Code:
adb push boot_complete_hook.sh /data/boot_complete_hook.sh
adb shell chmod 755 /data/boot_complete_hook.sh
Note:
Before you reboot verify that the file will run properly. Open up a shell via adb shell. Inside that run the following:
Code:
setprop persist.service.mount.umsauto 1
getprop persist.service.mount.umsauto
You should see 1 as the output. Now run:
Code:
sh /system/bin/clrbootcount.sh
You should see an output similar to:
Code:
4+0 records in
4+0 records out
4 bytes transferred in 0.010 secs (400 bytes/sec)
Now run:
Code:
getprop persist.service.mount.umsauto
If 0 is printed out, exit the shell.
If 0 is not printed out, something went wrong and the file will not be run properly on the next boot. If you do reboot in this state 8 times, the boot count won't be reset and you will hit the factory reset. While you are trying to get the script working, you could always manually reset the boot count by executing (from a shell):
Code:
dd if=/dev/zero of=/rom/devconf/BootCnt bs=1 count=4
Now reboot:
Code:
adb shell reboot
As you are rebooting, run:
Code:
adb shell getprop persist.service.mount.umsauto
It will return 1 since the init.rc file sets it to 1 explicitly. However, once you are fully booted it will return 0.
Didn't work for me.
JoshMiers said:
Here is an easy way to run commands after each boot.
In the init.rc file, the file /system/bin/clrbootcount.sh will always gets run after a successful boot. Since it isn't trivial to change the init.rc file, we will use clrbootcount.sh to run commands after a boot.
Do:
Code:
adb pull /system/bin/clrbootcount.sh .
Open the file (on Windows, don't use Notepad) and you should see:
Code:
#!/system/bin/sh
##################################################################################
#
# File clrbootcount.sh
# Description Clear the bootcount variable to 0 on successful boot
#
##
# Run potential hook first.
/data/boot_complete_hook.sh
# Zero the boot count
dd if=/dev/zero of=/rom/devconf/BootCnt bs=1 count=4
Add the following to the end of the file:
Code:
#run other commands
setprop persist.service.mount.umsauto 0
Save and close.
Now, execute the following commands to put the file back on your nook:
Code:
adb shell mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
adb push clrbootcount.sh /system/bin/clrbootcount.sh
adb shell chmod 755 /system/bin/clrbootcount.sh
adb shell mount -o ro,remount -t ext2 /dev/block/mmcblk0p5 /system
adb shell reboot
As you are rebooting, run:
Code:
adb shell getprop persist.service.mount.umsauto
It will return 1 since the init.rc file sets it to 1 explicitly. However, once you are fully booted it will return 0.
Click to expand...
Click to collapse
Wouldn't this screw up the 8X "back to stock firmware" sequence since that depends on having the boot counter increment up to 8?
docfreed said:
Wouldn't this screw up the 8X "back to stock firmware" sequence since that depends on having the boot counter increment up to 8?
Click to expand...
Click to collapse
The script file is already there and already being called after each successful boot. The 8x boot counter logic happens with 8 failed boots. Regardless, the instructions just show you how to append a custom command to be run after the stock commands run, no other booting logic is affected.
>DARKMAN< said:
Didn't work for me.
Click to expand...
Click to collapse
What didn't work? Run the following and paste your output:
Code:
adb shell cat /system/bin/clrbootcount.sh
Code:
adb shell ls -l /system/bin/clrbootcount.sh
Awesome, thanks for the tip! Been wondering how to put in my own stuff into the init, I'd love to modify the path but I suspect this won't be the way, but regardless it's good info.
BTW, I have found that disabling this USM property seems to disable the SD card automounting but the Nook itself might still automount... But that's for another thread I suppose
Worked perfectly
This is exactly what I was looking for.
Thanks
Sent from my LogicPD Zoom2
There seems to be a little confusion over at the refresh rate thread http://forum.xda-developers.com/showthread.php?t=901294.
To be explicit, if you want to disable auto-mounting as well as change the refresh rate, you would edit clrbootcount.sh to have the following contents:
Code:
#!/system/bin/sh
##################################################################################
#
# File clrbootcount.sh
# Description Clear the bootcount variable to 0 on successful boot
#
##
# Run potential hook first.
/data/boot_complete_hook.sh
# Zero the boot count
dd if=/dev/zero of=/rom/devconf/BootCnt bs=1 count=4
#run other commands
setprop persist.service.mount.umsauto 0
echo 68000,1024/70/200/40,600/10/11/10 > /sys/devices/omapdss/display0/timings
If you don't want to disable auto-mounting, just remove the line with
Code:
setprop persist.service.mount.umsauto 0
I ran what was posted and it still returns 1.
Sent from my HAXSUNG Moment
JoshMiers said:
What didn't work? Run the following and paste your output:
Code:
adb shell cat /system/bin/clrbootcount.sh
Code:
adb shell ls -l /system/bin/clrbootcount.sh
Click to expand...
Click to collapse
Screen shot attached (1.0.1 Auto-Nooter 2.12.25).
# cat /system/bin/clrbootcount.sh
cat /system/bin/clrbootcount.sh
#!/system/bin/sh
################################################################################
##
#
# File clrbootcount.sh
# Description Clear the bootcount variable to 0 on successful boot
#
##
# Run potential hook first.
/data/boot_complete_hook.sh
# Zero the boot count
dd if=/dev/zero of=/rom/devconf/BootCnt bs=1 count=4
#
# ls -l /system/bin/clrbootcount.sh
ls -l /system/bin/clrbootcount.sh
-rwxr-xr-x root root 338 2011-01-06 19:50 clrbootcount.sh
#
edit double post oops
I lost my backup of clrbootcount.sh
and now it won't reset the boot count.
any help would be greatly appreciated.
adb shell getprop persist.service.mount.umsauto
Click to expand...
Click to collapse
always returns 1 during and after complete reboot. The echo command for screen does not persist. Have followed your instructions super letter by letter multiple times and leading up to the reboot everything is exactly as you say.
Right now, I am most concerned that whatever I have done will not reset the boot count since it stays at 1 and does not go to 0. I've already lost my entire setup twice and had to start from scratch trying to make this work. At least I know how to reset to 0 with the line command script but how do I ensure i don't need to worry about it?
I think this process may be a bust.
I am on 1.0.0 and have been using this since I posted it and both the refresh rate and automount values are sticking between reboots.
>DARKMAN< said:
# cat /system/bin/clrbootcount.sh
cat /system/bin/clrbootcount.sh
#!/system/bin/sh
################################################################################
##
#
# File clrbootcount.sh
# Description Clear the bootcount variable to 0 on successful boot
#
##
# Run potential hook first.
/data/boot_complete_hook.sh
# Zero the boot count
dd if=/dev/zero of=/rom/devconf/BootCnt bs=1 count=4
#
# ls -l /system/bin/clrbootcount.sh
ls -l /system/bin/clrbootcount.sh
-rwxr-xr-x root root 338 2011-01-06 19:50 clrbootcount.sh
#
Click to expand...
Click to collapse
I am assuming you are using the new method, which would mean you need to post your /data/boot_complete_hook.sh
>DARKMAN< said:
I lost my backup of clrbootcount.sh
and now it won't reset the boot count.
any help would be greatly appreciated.
Click to expand...
Click to collapse
The clrbootcount.sh file that you posted is the default file. I will post it again:
Code:
#!/system/bin/sh
##################################################################################
#
# File clrbootcount.sh
# Description Clear the bootcount variable to 0 on successful boot
#
##
# Run potential hook first.
/data/boot_complete_hook.sh
# Zero the boot count
dd if=/dev/zero of=/rom/devconf/BootCnt bs=1 count=4
Also, the original post explains how to manually reset the boot count. Here it is:
If 0 is not printed out, something went wrong and the file will not be run properly on the next boot. If you do reboot in this state 8 times, the boot count won't be reset and you will hit the factory reset. While you are trying to get the script working, you could always manually reset the boot count by executing (from a shell):
Code:
dd if=/dev/zero of=/rom/devconf/BootCnt bs=1 count=4
jleecong said:
Screen shot attached (1.0.1 Auto-Nooter 2.12.25).
Click to expand...
Click to collapse
It appears you are running Windows, so I am hoping that you did not use Notepad to edit this file.
Since you are running 1.0.1, post your /init.rc file.
Thought I may have been doing something wrong since I used notepad but downloaded Notepad++ and created the new .sh file. Still no go. Screen still flickers and USB still automounts. Maybe 1.0.1 just is not commpatible with this process. Only difference I can see.
The getprop persist.service.mount.umsauto also indicates 1 after full boot and not 0. Pretty sure this will wipe everything out after 8 boots, going to wipe it all out now and proactively prevent it.

[Q] SlapMyMoto Error: Permission Denied

Hey Everyone,
When I get to the last step of the SlapMyMoto rooting process, I get the following error message:
Code:
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
I was running into exactly the same problem yesterday, so today I started the entire process from scratch and manually typed everything in. I even ran the entire process from my Macbook (rather than a Windows VM) since several people said that the process worked on the first shot via Mac.
@jcase
If anyone can help, I'd really appreciate it. Thanks!
bobo-the-drunk said:
Hey Everyone,
When I get to the last step of the SlapMyMoto rooting process, I get the following error message:
Code:
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
I was running into exactly the same problem yesterday, so today I started the entire process from scratch and manually typed everything in. I even ran the entire process from my Macbook (rather than a Windows VM) since several people said that the process worked on the first shot via Mac.
@jcase
If anyone can help, I'd really appreciate it. Thanks!
Click to expand...
Click to collapse
paste the command and full output here please
Thanks for the speedy reply @jcase! I accidentally closed the telnet terminal after I finished that part of the process, but here's all the ADB content.
Code:
supermacbook:~ Bobo$ adb shell getprop ro.boot.write_protect
0
supermacbook:~ Bobo$ adb push /Users/Bobo/Downloads/SlapMyMoto-1.0/SlapMyMoto.jar /sdcard/SlapMyMoto.jar
3848 KB/s (67653 bytes in 0.017s)
supermacbook:~ Bobo$ adb reboot
supermacbook:~ Bobo$ adb reboot
supermacbook:~ Bobo$ adb shell
[email protected]:/ $ cp /sdcard/install.sh /data/local/tmp/install.sh
[email protected]:/ $ chmod 755 /data/local/tmp/install.sh
[email protected]:/ $ echo "/data/local/tmp/install.sh" > /sys/kernel/uvent_helper
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
Code:
[email protected]:/ $ echo "/data/local/tmp/install.sh" > /sys/kernel/uvent_helper
Typo, it is uevent_helper not uvent_helper
bobo-the-drunk said:
Thanks for the speedy reply @jcase! I accidentally closed the telnet terminal after I finished that part of the process, but here's all the ADB content.
Code:
supermacbook:~ Bobo$ adb shell getprop ro.boot.write_protect
0
supermacbook:~ Bobo$ adb push /Users/Bobo/Downloads/SlapMyMoto-1.0/SlapMyMoto.jar /sdcard/SlapMyMoto.jar
3848 KB/s (67653 bytes in 0.017s)
supermacbook:~ Bobo$ adb reboot
supermacbook:~ Bobo$ adb reboot
supermacbook:~ Bobo$ adb shell
[email protected]:/ $ cp /sdcard/install.sh /data/local/tmp/install.sh
[email protected]:/ $ chmod 755 /data/local/tmp/install.sh
[email protected]:/ $ echo "/data/local/tmp/install.sh" > /sys/kernel/uvent_helper
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
Click to expand...
Click to collapse
You're right, but I actually already caught that (actually adb shell told me...)
Here's the unabridged version:
Code:
supermacbook:~ Bobo$ adb shell
[email protected]:/ $ cp /sdcard/install.sh /data/local/tmp/install.sh
[email protected]:/ $ chmod 755 /data/local/tmp/install.sh
sh[email protected]:/ $ echo "/data/local/tmp/install.sh" > /sys/kernel/uvent_helper
/system/bin/sh: can't create /sys/kernel/uvent_helper: No such file or directory
sh" > /sys/kernel/uvent_helper <
/system/bin/sh: can't create /sys/kernel/uvent_helper: No such file or directory
sh" > /sys/kernel/uevent_helper <
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
1|[email protected]:/ $
sh" > /sys/kernel/uevent_helper <
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
1|[email protected]:/ $
sh" > /sys/kernel/uevent_helper <
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
1|[email protected]:/ $
sh" > /sys/kernel/uevent_helper <
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
I'm having the same error
Has anyone had any success? I've tried on ubuntu and windoze 7. Both come back with this error:
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
I'm so close, I can almost smell the root. Any additional help would be greatly appreciated.
Same here
acupunk said:
Has anyone had any success? I've tried on ubuntu and windoze 7. Both come back with this error:
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
I'm so close, I can almost smell the root. Any additional help would be greatly appreciated.
Click to expand...
Click to collapse
Also getting this when trying to root. Im on windows 7
i think i know what your issue is. i did it last night when i was trying to root 4.4
your skipping a step.
after you type in cwgin
dalvikvm -cp /sdcard/SlapMyMoto.jar SlapMyMoto
then you reboot your device
but then you have to run the command again in cwgin but this time it should reboot it self.
then continue with the rest of the commands
i missed it the first time threw. and it gave me the same issue. hope that helps
Thanks
dray_jr said:
i think i know what your issue is. i did it last night when i was trying to root 4.4
your skipping a step.
after you type in cwgin
dalvikvm -cp /sdcard/SlapMyMoto.jar SlapMyMoto
then you reboot your device
but then you have to run the command again in cwgin but this time it should reboot it self.
then continue with the rest of the commands
i missed it the first time threw. and it gave me the same issue. hope that helps
Click to expand...
Click to collapse
Thank you, but that's not the problem. I did run slapmymoto twice. Any other ideas? I'm actually on a Droid Maxx so I can't downgrade and start over.
acupunk said:
Thank you, but that's not the problem. I did run slapmymoto twice. Any other ideas? I'm actually on a Droid Maxx so I can't downgrade and start over.
Click to expand...
Click to collapse
''
if you are allready on 4.4 i think your stuck for now untill they find a way to root 4.4 without downgrading
sounds like you missed something before you ran the OTA
bobo-the-drunk said:
Thanks for the speedy reply @jcase! I accidentally closed the telnet terminal after I finished that part of the process, but here's all the ADB content.
Code:
supermacbook:~ Bobo$ adb shell getprop ro.boot.write_protect
0
supermacbook:~ Bobo$ adb push /Users/Bobo/Downloads/SlapMyMoto-1.0/SlapMyMoto.jar /sdcard/SlapMyMoto.jar
3848 KB/s (67653 bytes in 0.017s)
supermacbook:~ Bobo$ adb reboot
supermacbook:~ Bobo$ adb reboot
supermacbook:~ Bobo$ adb shell
[email protected]:/ $ cp /sdcard/install.sh /data/local/tmp/install.sh
[email protected]:/ $ chmod 755 /data/local/tmp/install.sh
[email protected]:/ $ echo "/data/local/tmp/install.sh" > /sys/kernel/uvent_helper
/system/bin/sh: can't create /sys/kernel/uevent_helper: Permission denied
Click to expand...
Click to collapse
I was stuck here too until I realized that I was not su by default on the shell.
Type su and hit enter
once you have a # at the prompt then type the rest.
This fixed it for me right away.
n0-0ne said:
I was stuck here too until I realized that I was not su by default on the shell.
Type su and hit enter
once you have a # at the prompt then type the rest.
This fixed it for me right away.
Click to expand...
Click to collapse
Thanks, but su is not installed without root.
acupunk said:
Thanks, but su is not installed without root.
Click to expand...
Click to collapse
Ok, maybe I'm wrong but thats what worked for me, try it or not it's no skin off my back.
Root on Windows 7 wont work
I have tried about 5 times to get my Moto X rooted with SlapMyMoto and i have had no luck. Any help would be greatly appreciated.
supertrav1980 said:
I have tried about 5 times to get my Moto X rooted with SlapMyMoto and i have had no luck. Any help would be greatly appreciated.
Click to expand...
Click to collapse
make your own thread and make sure you paste your CMD with the error your gettings or the issues your having.
Root on Windows 7 wont work
dray_jr said:
make your own thread and make sure you paste your CMD with the error your gettings or the issues your having.
Click to expand...
Click to collapse
will do. thanks.

[Q] htc one m8 help at firewater

at the last line :
"adb reboot
adb wait-for-device push firewater /data/local/tmp
adb shell
su
chmod 755 /data/local/tmp/firewater
/data/local/tmp/firewater <.----
it says to me "firewater[2]: syntax error: '(' unexpected" after I press enter
edit : that says my cmd :
Code:
C:\android-sdk\platform-tools>adb reboot
C:\android-sdk\platform-tools>adb wait-for-device push firewater /data/local/tmp
218 KB/s (670 bytes in 0.003s)
C:\android-sdk\platform-tools>adb shell
[email protected]_m8:/ # su
su
[email protected]_m8:/ # chmod 755 /data/local/tmp/firewater
chmod 755 /data/local/tmp/firewater
[email protected]_m8:/ # /data/local/tmp/firewater
/data/local/tmp/firewater
/data/local/tmp/firewater[2]: syntax error: '(' unexpected
1|[email protected]_m8:/ #
Htconem8user said:
at the last line :
"adb reboot
adb wait-for-device push firewater /data/local/tmp
adb shell
su
chmod 755 /data/local/tmp/firewater
/data/local/tmp/firewater <.----
it says to me "firewater[2]: syntax error: '(' unexpected" after I press enter
edit : that says my cmd :
Code:
C:\android-sdk\platform-tools>adb reboot
C:\android-sdk\platform-tools>adb wait-for-device push firewater /data/local/tmp
218 KB/s (670 bytes in 0.003s)
C:\android-sdk\platform-tools>adb shell
[email protected]_m8:/ # su
su
[email protected]_m8:/ # chmod 755 /data/local/tmp/firewater
chmod 755 /data/local/tmp/firewater
[email protected]_m8:/ # /data/local/tmp/firewater
/data/local/tmp/firewater
/data/local/tmp/firewater[2]: syntax error: '(' unexpected
1|[email protected]_m8:/ #
Click to expand...
Click to collapse
Firewater is dead ... they abandoned it last week sometime
clsA said:
Firewater is dead ... they abandoned it last week sometime
Click to expand...
Click to collapse
oh :/
I've read that somewhere else too.
But I thought it should be still working.
is there any other method then sunshine ? Because currently I can't buy it now.
And I don't want to wait...
Why should there be only one option ( sunshine) to take s off ?
Is it that hard to code a working programm ?
Htconem8user said:
is there any other method then sunshine ?
Click to expand...
Click to collapse
unfortunately,no (unless you have an old hboot version)
Why should there be only one option ( sunshine) to take s off ?
Is it that hard to code a working programm ?
Click to expand...
Click to collapse
No disrespect mate but it looks like you underestimate the amount of work, time and knowledge needed to:
find a security hole and how to exploit it so you can grant s-off
do it again everytime HTC updates their firmware to patch these security holes
code everything so the average user can achieve s-off using an automated program
maintain everything (program, servers, website)
This have nothing to do with C# programming you can learn at high school to make your own calculator
So to answer your question, Yes its probably hard to do
alray said:
find a security hole and how to exploit it so you can grant s-off
do it again everytime HTC updates their firmware to patch these security holes
code everything so the average user can achieve s-off using an automated program
maintain everything (program, servers, website)
Click to expand...
Click to collapse
okay I got it. thanks for the reply^^
My Hboot is 3.19.0.0000 <- is it old ?

I want to make a file root .bat Fire 7 (2019, mustang)

hi
I want to make a file root .bat
But the problem after the order adb.exe shell stops Does not continue automatically
This code is used
[email protected]:~/Downloads/mtk-su $ adb shell
mustang:/ $ cd /data/local/tmp
mustang:/data/local/tmp $ ./mtk-su
New UID/GID: 0/0
mustang:/data/local/tmp # getenforce
Permissive
mustang:/data/local/tmp # echo 0 > /sys/block/mmcblk0boot0/force_ro
mustang:/data/local/tmp # dd if=/dev/zero of=/dev/block/mmcblk0boot0 bs=512 count=8
8+0 records in
8+0 records out
4096 bytes transferred in 0.001 secs (4096000 bytes/sec)
mustang:/data/local/tmp #
Click to expand...
Click to collapse
You want to make a Windows Batch file for your Fire 7?
1. To open Notepad via Run. Open run using the PC keyboard. Press Windows key + R key and type notepad.exe
2. Type the batch script:
Code:
@echo off
adb devices
pause //To pause the running scripts
adb push C:\Desktop\path\to\mtk-su /data/local/tmp
adb shell
cd /data/local/tmp/
chmod -755 mtk-su
./mtk-su
3. Save the file as a .bat file
Unfortunately not work

[SCRIPT] [HACK] root on most variant

REMOVED
Mods please close thread
Code:
adb push su98 /data/local/tmp
adb shell cd data/local/tmp && adb shell chmod 775 su98 && adb shell ./su98 && adb shell su
adb push recovery /sdcard
adb shell cat /dev/zero >> /dev/mtd/mtd2 && adb shell cd /sdcard && adb shell flash_image recovery /sdcard/recovery.img
adb shell rm /sdcard/recovery.img
adb shell reboot
sorry this is incomplete, more like a PoC
I think will not work if bootloader still locked
GiaiPhapAndroid said:
I think will not work if bootloader still locked
Click to expand...
Click to collapse
yEs

Categories

Resources