рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ .apk рдпрд╛ adb рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рд▓рд┐рдП GUI рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдХреИрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдпрд╛ рдЬрд╛рдП

рд╢реБрдн рджрд┐рди, рдкреНрд░рд┐рдп рдЦрд╝рдмрд░рд╡рдЪрди! рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдкрд░ .apk рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рдкрдбрд╝рддреА рд╣реИрдВ - рдореИрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рдФрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓рдирд╛ рдФрд░ рдЕрдЧрд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдирд╛, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХреИрд╕реЗ рджрд┐рдирдЪрд░реНрдпрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╛рдПред рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдИ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реЛрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдорд╛рдВрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ: adb install < > ред рдпрджрд┐ 2 рдпрд╛ рдЕрдзрд┐рдХ рдЙрдкрдХрд░рдг рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рддреЛ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
error: more than one device and emulator
- waiting for device -
рдЪреВрдБрдХрд┐ adb рдХреЛ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдХрд╣рд╛рдБ рдХрд░рдирд╛ рд╣реИред рдХрд┐рд╕реА рдЙрдкрдХрд░рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ adb -s <ID_device> installl < > ред ID_device рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ adb devices рдХрдорд╛рдВрдб рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреЛ рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛:
List of devices attached
LGOTMS409c0d device
HT0BTHG02888 device
рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ:
 #!/bin/bash DEV_LIST=$(adb devices | awk '/device$/{if (NR!=1) {print $1}}') #   ,   .apk  DIR_PATH="/home/dn010891laa//" while [ -z "$DEV_LIST" ]; do zenity --question --title="    Android-" --text=" ?" --height=100 --width=400 if [ $? -eq "0" ]; then DEV_LIST=$(adb devices | awk '/device$/{if (NR!=1) {print $1}}') else notify-send "ADB" " " exit fi done path=$(find "$DIR_PATH" -name "*.apk*" | zenity --list --title "    "$DIR_PATH"" --column "  .apk" --height=370 --width=600) if [ $? -eq "1" ]; then exit fi if [ $(echo "$DEV_LIST" | wc -l) -ne "1" ] then DEV_NAME=$(zenity --list --title "     ?" --column " " $(echo "$DEV_LIST" | xargs)) if [ $? -eq "1" ];then notify-send "ADB" " " exit fi else DEV_NAME="$DEV_LIST" fi adb -s "$DEV_NAME" install "$path" | tee /tmp/installlog.txt | zenity --progress --text " "$path"   "$DEV_NAME"" --pulsate --auto-close --no-cancel log=$(cat /tmp/installlog.txt) zenity --info --title=" " --text="$log" rm /tmp/installlog.txt killall adb exit 

рдЕрдм, рдХреНрд░рдо рдореЗрдВ:
1ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╝реЗрдирд┐рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ , рдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ zenity --help рдирд┐рд╖реНрдкрд╛рджрд┐рдд zenity --help
DIR_PATH рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рдПрдкреАрдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреИрдХреНрдб рд╣реЛрддреЗ рд╣реИрдВ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдореЗрд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ - рдЖрдкрдХреЛ DIR_PATH рдХреЗ рд╕рд╛рде рд░реЗрдЦрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдкрде рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП zenity --file-selection --title=" apk " --file-filter=*.apk - рдлрд┐рд░ "рдЪреБрдиреЗрдВ"ред рдлрд╝рд╛рдЗрд▓ "рдХрд┐рд╕реА рднреА рдкрде рдХреА рдкрд╕рдВрдж рдФрд░ * .apk рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рдеред
2ред
  DEV_LIST=$(adb devices | awk '/device$/{if (NR!=1) {print $1}}') 
- рд╣рдореЗрдВ adb devices рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ adb devices , рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╣рдЯрд╛рдПрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ "рдбрд┐рд╡рд╛рдЗрд╕", рдФрд░ рдкрд╣рд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЯреЗрдХреНрд╕реНрдЯ "рд▓рд┐рд╕реНрдЯ рдСрдл рдбрд┐рд╡рд╛рдЗрд╕реЗрд╕ рдЕрдЯреИрдЪ" рд╣реИ - рд╣рдо рдЗрд╕реЗ рд╡реЗрд░рд┐рдПрдмрд▓ DEV_LIST рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред
3ред
  while [ -z "$DEV_LIST" ]</code>: <code>-z 
- рд╕рд╣реА рд╣реИ рдЕрдЧрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ 0 рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реВрдк рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
4ред
  path=$(find "$DIR_PATH" -name "*.apk*" | zenity --list --title "    "$DIR_PATH"" --column "  .apk" --height=370 --width=600) 
- рджрд┐рдП рдЧрдП рдкрде рдореЗрдВ * .apk рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦреЗрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЬрд╝реАрдирд┐рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ - рдЪрдпрдирд┐рдд рдкрде рдХреЛ рдЪрд░ рдкрде рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ
5ред
  if [ $(echo "$DEV_LIST" | wc -l) -ne "1" ] 
- рд╣рдо рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдкрдврд╝рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ, рдпрджрд┐ 1 рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ:
  DEV_NAME=$(zenity --list --title "     ?" --column " " $(echo "$DEV_LIST" | xargs)) 
рдЪрдпрдирд┐рдд рдореВрд▓реНрдп DEV_NAME рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ред
6ред
  adb -s "$DEV_NAME" install "$path" | tee /tmp/installlog.txt | zenity --progress --text " "$path"   "$DEV_NAME"" --pulsate --auto-close --no-cancel 
- рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рджреЗрдВ, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдПрдХ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рдЧрддрд┐ рд▓рд┐рдЦреЗрдВ рдФрд░ рдкреНрд░рдЧрддрд┐ zenity --progress рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ zenity --progress - рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рдлрд┐рд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдо рд▓реЙрдЧ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:




рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рд╕рд╣рд╛рдпрдХ рд╣реИред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред


Source: https://habr.com/ru/post/In204160/


All Articles