php shell脚本 安卓_安卓shell脚本 - CSDN
精华内容
参与话题
  • 1.可以通过adb向android手机发送键盘事件 比如,adb shell input keyboard text hello world 这是调用android键盘,输入hello world。 比如,adb shell input keyevent 19 这是调用android键盘的down键。 2.可以...

    基于以下几个原理:

    1.可以通过adb向android手机发送模拟事件

    比如,adb shell input text hello world

    这是调用android键盘,输入hello world。

    比如,adb shell input keyevent 19

    这是调用android键盘的down键。

    adb shell input tap 点击

    adb shell input   滑动


    2.可以通过adb启动某个app内的某个activity

    比如,adb shell am start -n PackageName/ActivityName

    这是调用android的ams,启动PackageName中的ActivityName。


    3.python脚本可以将这些调用这些adb命令,也可以读写文件。

    通过写一个python脚本,在脚本中调用adb命令,以及读写文件。当然,首先要在机器上按照python,如同安装php。

    如果读写excel文件,还需要借助一些module,这正式python的长处。


    展开全文
  • Android安装ssh服务

    千次阅读 2016-06-28 16:01:37
    其他用户需要先root才能进行,可能需要把一些命令放到脚本中,放到手机中运行,并且在运行前切换到root权限。 2、下载文件 busybox 下载地址 http://www.busybox.net/downloads/binaries dropbear

    1、安装条件

    需要安装ssh服务的手机需要有root权限,我测试使用的手机是工程样机,adb连接上以后默认有root权限;
    其他用户需要先root才能进行,可能需要把一些命令放到脚本中,放到手机中运行,并且在运行前切换到root权限。

    2、下载文件

    busybox 下载地址 http://www.busybox.net/downloads/binaries
    dropbear 下载地址 http://www.cri.ch/sven/lib/exe/fetch.php/blog/dropbear.zip

    3、登录密钥

    客户端使用的是SecureCRT,由于使用私钥登录,首先需要创建密钥对;
    步骤: “工具”->“创建公钥...”,密钥类型“DSA”(“RSA”应该也可以),通行短语就留空(否则登录需要输入密码),密钥长度默认1024位,选择“OpenSSH密钥格式”,选择一个文件夹保存密钥,同时会生成私钥Identity和公钥Identity.pub;

    4、安装busybox

    adb remount
    adb push busybox /system/xbin/
    adb shell
    adb shell chmod 0755 /system/xbin/busybox
    adb shell busybox --install -s /system/xbin/

    5、安装dropbear

    复制代码
    adb remount
    :: 将dropbear相关的文件push进手机
    adb push dropbear /system/xbin/
    adb push dropbearkey /system/xbin/
    adb push dropbearconvert /system/xbin/
    adb shell chmod 0744 /system/xbin/dropbear*
    :: 创建dropbear的目录
    adb shell mkdir /data/dropbear
    adb shell mkdir /data/dropbear/.ssh
    :: 生成服务器密钥
    adb shell dropbearkey -t dss -f /data/dropbear/dss_host_key
    :: 将登陆密钥放置到服务器
    adb push Identity.pub /data/dropbear/.ssh/
    adb shell mv /data/dropbear/.ssh/Identity.pub /data/dropbear/.ssh/authorized_keys
    adb shell chmod 744 /data/dropbear/.ssh/authorized_keys
    :: 脚本会创建用户相关的配置文件,否则无法登陆 adb push createfiles.sh /data/dropbear adb shell chmod -R 0744 /data/dropbear adb shell /data/dropbear/createfiles.sh :: 启动服务器测试  (实际应用可以去掉-F选项,运行于后台) adb shell dropbear -d /data/dropbear/dss_host_key -F -E -s -v
    复制代码

    createfiles.sh内容: 

    复制代码
    echo "root:x:0:0::/root:/system/bin/sh" > /etc/passwd
    echo "root::14531:0:99999:7:::" > /etc/shadow
    echo "root:x:0:" > /etc/group
    echo "root:!::" > /etc/gshadow
    echo "/system/bin/sh" > /etc/shells
    echo "PATH=\"/usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/data/local/bin\"" > /etc/profile
    echo "export PATH" >> /etc/profile
    复制代码

    6、卸载dropbear

    复制代码
    adb remount
    adb shell rm /system/xbin/dropbear
    adb shell rm /system/xbin/dropbearkey
    adb shell rm /system/xbin/dropbearconvert
    adb shell rm -rf /data/dropbear
    adb shell rm /etc/passwd
    adb shell rm /etc/shadow
    adb shell rm /etc/group
    adb shell rm /etc/gshadow
    adb shell rm /etc/shells
    adb shell rm /etc/profile
    复制代码

    7、参考

    Running dropbear on Android: http://www.cri.ch/sven/doku.php/blog/running-dropbear-on-android

    展开全文
  • 现在我们使用的操作系统(Windows、Mac OS、Android、iOS 等)都是带图形界面的,简单直观,容易上手,对专业用户(程序员、网管等)和普通用户(家庭主妇、老年人等)都非常适用;计算机的普及离不开图形界面。 ...

    原文:http://c.biancheng.net/cpp/view/6994.html

    现在我们使用的操作系统(Windows、Mac OS、Android、iOS 等)都是带图形界面的,简单直观,容易上手,对专业用户(程序员、网管等)和普通用户(家庭主妇、老年人等)都非常适用;计算机的普及离不开图形界面。


    然而在计算机的早期并没有图形界面,我们只能通过一个一个地命令来控制计算机,这些命令有成百上千之多,且不说记住这些命令非常困难,每天面对没有任何色彩的“黑屏”本身就是一件枯燥的事情;这个时候的计算机还远远谈不上炫酷和普及,只有专业人员才能使用。
    图:早期的电脑,都是“黑纸白字”
    猛击《带你逛西雅图活电脑博物馆》可以欣赏更多早期的计算机。
    对于图形界面,用户点击某个图标就能启动某个程序;对于命令行,用户输入某个程序的名字(可以看做一个命令)就能启动某个程序。这两者的基本过程都是类似的,都需要查找程序在硬盘上的安装位置,然后将它们加载到内存运行。
    关于程序的运行原理,请猛击《载入内存,让程序运行起来》。
    换句话说,图形界面和命令行要达到的目的是一样的,都是让用户控制计算机。

    然而,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。

    由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核。如此一来,用户和内核之间就多了一层“代理”,这层“代理”既简化了用户的操作,也保护了内核。

    用户界面和命令行就是这个另外开发的程序,就是这层“代理”。在Linux下,这个命令行程序叫做 Shell

    Shell 除了能解释用户输入的命令,将它传递给内核,还可以:
    • 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果;
    • 在多个程序之间传递数据,把一个程序的输出作为另一个程序的输入;
    • Shell 本身也可以被其他程序调用。

    由此可见,Shell 是将内核、程序和用户连接了起来。

    Shell 本身支持的命令并不多,但是它可以调用其他的程序,每个程序就是一个命令,这使得 Shell 命令的数量可以无限扩展,其结果就是 Shell 的功能非常强大,完全能够胜任 Linux 的日常管理工作,如文本或字符串检索、文件的查找或创建、大规模软件的自动部署、更改系统设置、监控服务器性能、发送报警邮件、抓取网页内容、压缩文件等。

    Shell 并不是简单的堆砌命令,我们还可以在 Shell 中编程,这和使用 C/C++、Java、Python 等常见的编程语言并没有什么两样。

    Shell 虽然没有 C/C++、Java、Python 等强大,但也支持了基本的编程元素,例如:
    • if...else 选择结构,switch...case 开关语句,for、while、until 循环;
    • 变量、数组、字符串、注释、加减乘除、逻辑运算等概念;
    • 函数,包括用户自定义的函数和内置函数(例如 printf、export、eval 等)。

    站在这个角度讲,Shell 也是一种编程语言,它的编译器(解释器)是 Shell 这个程序。我们平时所说的 Shell,有时候是指连接用户和内核的这个程序,有时候又是指 Shell 编程。

    Shell 主要用来开发一些实用的、自动化的小工具,而不是用来开发具有复杂业务逻辑的中大型软件,例如检测计算机的硬件参数、一键搭建Web开发环境、日志分析等,Shell 都非常合适。

    使用 Shell 的熟练程度反映了用户对 Linux 的掌握程度,运维工程师、网络管理员、程序员都应该学习 Shell。

    尤其是 Linux 运维工程师,Shell 更是必不可少的,是必须掌握的技能,它使得我们能够自动化地管理服务器集群,否则你就得一个一个地登录所有的服务器,对每一台服务器都进行相同的设置,而这些服务器可能有成百上千之多,会浪费大量的时间在重复性的工作上。

    Shell 是一种脚本语言

    任何代码最终都要被“翻译”成二进制的形式才能在计算机中执行。

    有的编程语言,如 C/C++、Pascal、Go语言、汇编等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,用户拿到的是最终生成的可执行文件,看不到源码。

    这个过程叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)

    而有的编程语言,如 Shell、JavaScript、Python、PHP等,需要一边执行一边翻译,不会生成任何可执行文件,用户必须拿到源码才能运行程序。程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。

    这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器

    编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。

    脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合Web开发以及小工具的制作。

    Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。
    展开全文
  • Linux shell 脚本编写

    千次阅读 2018-01-30 15:58:23
    知识点回顾: 1、Unix&Linux,GUN,Ubuntu,Red Hat,Fedora。 2、Linux用户管理。 —Root用户,普通用户,用户组。 —useradd,passwd,usermod,finger,sudo(su),groupadd,groups,whoami,who。...

    知识点回顾:
    1、Unix&Linux,GUN,Ubuntu,Red Hat,Fedora。
    2、Linux用户管理。
    —Root用户,普通用户,用户组。
    —useradd,passwd,usermod,finger,sudo(su),groupadd,groups,whoami,who。
    3、文件和目录操作。
    —文件名和文件拓展名
    —层次的文件结构
    —In linux,Everything is file,if something is not file,it is ?(process)
    —文件类型:普通文件,符号链接文件,目录文件,设备文件等。
    —Touch,vim,cat,ls,pwd,cd,cp,rm,mkdir,rmdir,file。
    —Chmod,umask。
    —改变文件属主:chown。
    —改变文件用户组:chgrp。
    —其他的一些命令:more,less,tail,head,find。
    4、一个编辑器vi(vim)的使用
    —两种模式:编辑模式,命令模式。
    —Vi基本编辑功能:x, dd, i, c.
    —推出vi:q, q!, wq.

    参考资料
    1、鸟哥的linux私房菜:
    http://linux.vbird.org/linux_basic/0320bash.php#bash
    2、IBM shell编程系列:
    http://www.ibm.com/developerworks/cn/linux/shell/
    3、Linux Shell Scripting(详细英文文档) :
    http://bash.cyberciti.biz/guide/Main_Page

    Shell简介
    1、Shell是什么?
    Shell是系统的用户界面,提供了用户和内核进行互操作的一种接口。它接受用户的输入,并将命令传送到内核中去执行。此外,shell也能被系统中其他有效的linux实用程序和应用程序调用。
    这里写图片描述

    2、学习shell有何用途??
    —自动化工具:自动化软件测试等
    —文本处理:sed,awk
    —批处理
    —Unix界有一句名言:“一行shell脚本胜过万行C程序”
    —求职面试的需求:有兴趣去看看阿里,百度,腾讯等公司的招聘要求。只要是面向系统的几乎全部需要熟悉linux操作系统,熟悉shell编程。

    博主这边主要是在Android系统编译打包时要用到这个shell脚本文件,基本上都是用的这个shell脚本,去操作系统文件导入,压缩,copy,move,makedir,权限修改等,所以我们很有必要去了解这个shell程序的编写

    这里写图片描述
    build.makeimage代码片段:

    if [[ ! $SUDING_BT_VERSION -ne 1 ]];then
        echo "suding bt"
        #bin
        cp -vf $AUTOCHIPS_DIR/packages/externalsysapk/SUDINGBT/bin/*  $OUTPUT_SYS/bin
        #app
        cp -vf $AUTOCHIPS_DIR/packages/externalsysapk/SUDINGBT/apk/*  $OUTPUT_SYS/app
    
        #bt tools
        cp -vrf $AUTOCHIPS_DIR/packages/externalsysapk/SUDINGBT/tools/*  $OUTPUT_SYS
    
        #for bt app save the bt power state file
        if [ ! -f $OUTPUT_DIR/data/power_status ];then
            touch $OUTPUT_DIR/data/power_status
            chmod 666 $OUTPUT_DIR/data/power_status
        fi
    
        #rm mtk apk
        rm -rf $OUTPUT_SYS/app/AutoBT.apk
        rm -rf $OUTPUT_SYS/app/AutoBTService.apk
    else
        echo " mtk bt"
        rm -rf $OUTPUT_SYS/bin/blueletd
        rm -rf $OUTPUT_SYS/bin/bt_test
        rm -rf $OUTPUT_SYS/lib/libbluelet.so
        rm -rf $OUTPUT_SYS/lib/libbt_platform.so
        rm -rf $OUTPUT_SYS/bin/serial_rate_to_file
        rm -rf $OUTPUT_SYS/lib/libserialport_bt.so
        rm -rf $OUTPUT_SYS/app/AutoBtService.apk
        rm -rf $OUTPUT_SYS/app/AutoBtClient.apk
        rm -rf $OUTPUT_SYS/app/AutoBtMusic.apk
    fi

    Shell分类:各个shell中内置命令不相同

    Bourne shell(/bin/sh) 
    C shell(/bin/csh)
    Korn shell(/bin/ksh)
    Bourne again shell(/bin/bash)
    Tenex C shell(tcsh)

    Shell中的变量和变量的设定及使用

    1、shell本地变量:本地变量只在本shell中起作用。
    —变量无需声明
    —变量调用:在变量前加,echoHOME
    —unset删除变脸赋值
    —有条件命令替换:

    ${variable: -value}
    ${variable:=value}
    ${variable: +value}
    ${variable:?message}

    2、环境变量
    —查看环境变量:env
    —常见环境变量作用(实验作业)
    —export将一个局部变量提供给shell的其他命令使用
    —修改环境变量
    3、特定变量参数

    $#:传递给脚本的参数的个数
    $*:显示所有向脚本传递的参数
    $$:脚本运行的id号
    $!:后台运行的第一个进程的id号
    $?:最后一个命令执行情况,0表示没有错误
    $@:所有参数,每次参数使用””括起来

    Shell输入输出重定向
    重定向是什么?将shell命令的标准输入,输出,错误重定向到指定的文件中。

    这里写图片描述
    stdin(0表示):<, <<
    stdout(1表示):>, >>
    stderr(2表示):2>, 2>>
    /dev/null:黑洞

    Pipe
    Pipe是什么?将一个进程的标准输出连接到另外进程的标准输入。
    这里写图片描述
    Pipe简单应用
    —cut:从文件中的每一行剪切一定量的字符,送到stdout。
    —grep
    —sort,wc,uniq
    —tee –a [file],将管道中的数据写入[file]中,同时将数据写入stdin。
    这里写图片描述

    Shell 编写
    1、打造自己的shell编程环境
    —Shell功能
    —Shell中的变量和变量设定,使用
    —个人环境变量配置
    —Shell输入输出重定向
    —Shell中pipe
    2、第一个shell程序Hello Shell
    —Shell程序结构
    —执行shell程序
    3.Shell的输入输出
    4.Shell控制结构
    if – else
    do while
    for
    5.Shell中的函数
    6.Shell脚本调试

    下面编写shell脚本,了解程序结构
    这里写图片描述
    改变文件属性:sudo chmod +x helloshell.sh
    执行该文件: ./helloshell.sh或者是sh ./helloshell.sh

    这里写图片描述

    标准输出:echo,注意转移字符,\t, \n, \”等。
    这里写图片描述
    标准输入: read,cat
    这里写图片描述

    shell控制结构

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    shell中的函数

    这里写图片描述

    这里写图片描述

    其实这个shell 编程语法表现的很随意,shell程序80%的时间基本上都是用于调试的。

    It bombs with a "syntax error" message, or
    It runs, but does not work as expected (logic error)
    It runs, works as expected, but has nasty side effects (logic bomb)
    

    那么该如何调试?
    1、在任何可能出错的地方使用echo打印变量的值。
    这里写图片描述
    2、使用tee命令在关键点检查数据流
    3、设置shell运行时参数
    sh -n your_script:返回所有的语法错误
    sh -x your_script:显示所有变量的值
    4、使用图形化的调试工具
    http://bashdb.sourceforge.net/
    这里写图片描述
    5、使用assert实现

    #!/bin/bash
    # filename: assert.sh
    
    assert ()                 #  If condition false,
    {                         #+ exit from script with error message.
      E_PARAM_ERR=98
      E_ASSERT_FAILED=99
    
      if [ -z "$2" ]          # Not enough parameters passed.
      then
        return $E_PARAM_ERR   # No damage done.
      fi
    
      lineno=$2
    
      if [ ! $1 ]
      then
        echo "Assertion failed:  \"$1\""
        echo "File \"$0\", line $lineno"
        exit $E_ASSERT_FAILED
      # else
      #   return
      #   and continue executing script.
    fi
    }
    
    
    a=5
    b=4
    condition="$a -lt $b"     # Error message and exit from script.
                              #  Try setting "condition" to something else,
                              #+ and see what happens.
    # assert failure
    assert "$condition" $LINENO
    

    demo点击下载

    另附相关参考资料及教程说明:
    http://www.linuxidc.com/Linux/2013-02/79468.htm
    使用env命令查看系统中的换将变量,并解释变量对应的含义。
    http://linux.vbird.org/linux_basic/0320bash.php
    Shell下的gui(libnotify-bin)编程
    http://blog.mpathirage.com/2009/09/12/using-libnotify-in-ubuntu-9-04/

    展开全文
  • Android服务器环境apk打包shell脚本

    千次阅读 2019-03-16 10:02:38
    背景:18年底入职一家创业4年的公司,除去丢弃的一款购物类...从开发手里接过测试环境,连终端App打包服务器,都可以自己打包,即使开发在jenkins集成自动打包发包,android打包工具gradlew: #!/bin/sh read -p...
  • 执行Shell返回127

    千次阅读 2019-06-26 04:00:18
    如通过JAVA执行Shell命令,/opt/dfv/oam/oam-u/ha/ha/module/hacom/tools/ha_client_tool --syncfile --name="/opt/dfv/oam/oam-u/manager/apache_tomcat/webapps/hermes/WEB-INF/classes/config/application....
  • PHP 还能干什么?PHP-CLI 简介

    千次阅读 2010-07-19 21:35:00
    PHP 最常用的用途就是用来编写 Web 程序,这也是 PHP 语言编写的初衷。...而 Android 应用程序就是典型的手机桌面应用程序(而不是常见的 Web 应用)。 其实,无论是在 Linux 下,还是在 Windows 下,都可以通过
  • 作者简介: 陈志珂(头条号:强扭的瓜不好吃)目前就职于中国最大的安卓应用软件公司,任高级工程师,现在公司任php开发工程师,...linux shell脚本实例-批量检查多个网站地址是否正常重点内容 #!/usr/bin/bash ...
  • 手机敲命令利器---Android Terminal

    万次阅读 2013-12-14 16:11:50
    实用利器直接android手机上,运行linux终端,使用linux命令,编写运行shell脚本,vi编辑,调试log采集过滤,甚至shutdown。
  • Linux必备技能——Shell脚本学习笔记(1)

    千次阅读 多人点赞 2020-05-05 17:51:59
    在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行...同时也提供了Shell脚本创建到执行的详细步骤
  • Android自动化测试之Monkey命令使用及monkey脚本编写

    万次阅读 多人点赞 2020-08-18 13:45:22
    系列文章 Android自动化测试环境部署及adb sdkmanager avdmanager ...Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放 背景 如果开发完app,开发人员没有充分的...
  • Android手机上安装bash

    千次阅读 2013-08-02 18:19:54
    大家知道, Android是基于Linux的内核, 很多熟悉Linux的人都会想到使用命令行来管理Android, 例如使用ls,ps,find,netstat这些Linux自身的命令, 另外对于在Android上开发的人, 还可能经常会使用am,pm,dumpsys等这些...
  • Android的逆向时,对内存数据的操作主要有三种:内存数据读取与修改,内存代码注入,内存dump。之前对这三种操作的概念比较模糊,因此找了些资料整理如下,加深自己的理解。 修改数据 修改...
  • SHELL命令之who、whoami、id

    千次阅读 2013-06-08 10:29:37
    root@bt:~/test# who --help Usage: who [OPTION]... [ FILE | ARG1 ARG2 ] Print information about users who are currently logged in. -a, --all same as -b -d --login -p -r -t -T -u -b, --boot
  • 代码可以多吃循环冷启动,启动后就检查hdmi是否连接到设备上。 count=0 while [ $count -lt 500 ] do adb wait-for-device echo "Foster cold boot ...adb shell dmesg | grep 'nvhdcp: link inte
  • Android Superuser 提权漏洞分析

    千次阅读 2013-11-22 11:50:46
    发布日期:2013-11-20博文内容: 近日,国外安全研究人员揭露多款Android平台下的授权应用管理软件存在3个安全漏洞,利用漏洞可进行root提权,详见链接:http://forum.xda-developers.com/showthread.php?t=2525552...
  • 轻轻松松运行起minicap

    千次阅读 2018-03-30 22:30:37
    因为原生的Android截图工具截图十分缓慢,STF自己写了一个工具叫minicap用来替代原生的screencap,这个工具是STF框架的依赖工具之一。minicap工具是用NDK开发的,属于Android的底层开发,所以该工具分为两个部分,一...
  • Android 4.2系统的手机使用LEAP企业Wifi网络 ( by quqi99 )

    万次阅读 热门讨论 2018-08-25 20:46:53
    作者:张华 发表于:2013-12-05 ...大家知道,企业里的wifi很多是采用Cisco公司的LEAP加密的,苹果手机买了LEAP的专利是可以直接用的,但安卓手机不行。试了一些工具,如LBE授权管理,如LEAP Wifi Free均在Andr...
  • 随机MAC地址的设置实现

    千次阅读 2018-02-05 16:55:28
    1. shell脚本来实现随机Mac; 2. 使用Linux的接口实现随机Mac; 1. shell脚本实现设置随机Mac shell中获取随机mac地址语句(指定前3段mac地址为00:60:2F, 后3段mac地址随机获取): echo -n 00:60:2F; ...
1 2 3 4 5 ... 20
收藏数 5,463
精华内容 2,185
关键字:

php shell脚本 安卓