Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android编码-将文件从应用程序内存传输到设备存储_Android_Bluetooth_Reverse Engineering - Fatal编程技术网

Android编码-将文件从应用程序内存传输到设备存储

Android编码-将文件从应用程序内存传输到设备存储,android,bluetooth,reverse-engineering,Android,Bluetooth,Reverse Engineering,我试图弄清楚应用程序是如何从蓝牙设备下载文件的,我想知道如何将文件从该设备下载到我的手机存储器中,附件是它用来读取应用程序内部文件的方法,它是从APK中提取的,但我不确定如何处理,因为我不明白它的作用 public int DownloadSDfile(char[] inpath, byte[] indata, int len) { char[] cArr = inpath; byte[] bArr = indata; int i = len; byte[] Se

我试图弄清楚应用程序是如何从蓝牙设备下载文件的,我想知道如何将文件从该设备下载到我的手机存储器中,附件是它用来读取应用程序内部文件的方法,它是从APK中提取的,但我不确定如何处理,因为我不明白它的作用

public int DownloadSDfile(char[] inpath, byte[] indata, int len) {
    char[] cArr = inpath;
    byte[] bArr = indata;
    int i = len;
    byte[] SendBuffer = new byte[2080];
    byte[] ReceivedBuffer = new byte[2080];
    int start_addr = 0;
    int crcbuf = getBufCRC(bArr, i, 0);
    int sendlen = 0 + 1;
    byte b = 72;
    SendBuffer[0] = 72;
    int sendlen2 = sendlen + 1;
    SendBuffer[sendlen] = 1;
    int sendlen3 = sendlen2 + 1;
    SendBuffer[sendlen2] = (byte) (i >> 24);
    int sendlen4 = sendlen3 + 1;
    SendBuffer[sendlen3] = (byte) (i >> 16);
    int sendlen5 = sendlen4 + 1;
    SendBuffer[sendlen4] = (byte) (i >> 8);
    int sendlen6 = sendlen5 + 1;
    SendBuffer[sendlen5] = (byte) (i >> 0);
    int filelen = cArr.length;
    int j = 0;
    while (j < filelen) {
        SendBuffer[sendlen6] = (byte) cArr[j];
        j++;
        sendlen6++;
    }
    int sendlen7 = sendlen6 + 1;
    SendBuffer[sendlen6] = 0;
    User_SendData(128, SendBuffer);
    int i2 = filelen;
    if (User_ReceiveData(ReceivedBuffer, 4000) == 0) {
        return 33;
    }
    if (ReceivedBuffer[0] != 72) {
        return 34;
    }
    if (ReceivedBuffer[1] != 1) {
        return 35;
    }
    byte b2 = 2;
    if (ReceivedBuffer[2] != 121) {
        return 36;
    }
    int k = 0;
    while (true) {
        int sendlen8 = sendlen7;
        if (k < i / 2048) {
            int sendlen9 = 0 + 1;
            SendBuffer[0] = b;
            int sendlen10 = sendlen9 + 1;
            SendBuffer[sendlen9] = b2;
            int sendlen11 = sendlen10 + 1;
            SendBuffer[sendlen10] = 8;
            int sendlen12 = sendlen11 + 1;
            SendBuffer[sendlen11] = 0;
            int sendlen13 = sendlen12 + 1;
            SendBuffer[sendlen12] = (byte) (start_addr >> 24);
            int sendlen14 = sendlen13 + 1;
            SendBuffer[sendlen13] = (byte) (start_addr >> 16);
            int sendlen15 = sendlen14 + 1;
            SendBuffer[sendlen14] = (byte) (start_addr >> 8);
            int sendlen16 = sendlen15 + 1;
            SendBuffer[sendlen15] = (byte) (start_addr >> 0);
            int j2 = 0;
            while (j2 < 2048) {
                SendBuffer[sendlen16] = bArr[start_addr];
                j2++;
                sendlen16++;
                start_addr++;
            }
            User_SendData(sendlen16, SendBuffer);
            if (User_ReceiveData(ReceivedBuffer, 15000) == 0) {
                return 49;
            }
            if (ReceivedBuffer[2] != 121) {
                return 50;
            }
            k++;
            sendlen7 = sendlen16;
            b2 = 2;
            b = 72;
        } else {
            if (i % 2048 != 0) {
                int sendlen17 = 0 + 1;
                SendBuffer[0] = 72;
                int sendlen18 = sendlen17 + 1;
                SendBuffer[sendlen17] = 2;
                int sendlen19 = sendlen18 + 1;
                SendBuffer[sendlen18] = (byte) ((i % 2048) / 256);
                int sendlen20 = sendlen19 + 1;
                SendBuffer[sendlen19] = (byte) ((i % 2048) % 256);
                int sendlen21 = sendlen20 + 1;
                SendBuffer[sendlen20] = (byte) (start_addr >> 24);
                int sendlen22 = sendlen21 + 1;
                SendBuffer[sendlen21] = (byte) (start_addr >> 16);
                int sendlen23 = sendlen22 + 1;
                SendBuffer[sendlen22] = (byte) (start_addr >> 8);
                int sendlen24 = sendlen23 + 1;
                SendBuffer[sendlen23] = (byte) (start_addr >> 0);
                int j3 = 0;
                while (j3 < i % 2048) {
                    SendBuffer[sendlen24] = bArr[start_addr];
                    j3++;
                    sendlen24++;
                    start_addr++;
                }
                User_SendData(2056, SendBuffer);
                if (User_ReceiveData(ReceivedBuffer, 15000) == 0) {
                    return 51;
                }
                if (ReceivedBuffer[2] != 121) {
                    return 52;
                }
                int i3 = sendlen24;
            } else {
                int i4 = sendlen8;
            }
            int sendlen25 = 0 + 1;
            SendBuffer[0] = 72;
            int sendlen26 = sendlen25 + 1;
            SendBuffer[sendlen25] = 3;
            int sendlen27 = sendlen26 + 1;
            SendBuffer[sendlen26] = (byte) (crcbuf / 256);
            int i5 = sendlen27 + 1;
            SendBuffer[sendlen27] = (byte) (crcbuf % 256);
            User_SendData(128, SendBuffer);
            if (User_ReceiveData(ReceivedBuffer, 6000) == 0) {
                return 65;
            }
            if (ReceivedBuffer[2] != 121) {
                return 66;
            }
            return 0;
        }
    }
}
public int DownloadSDfile(char[]inpath,byte[]indata,int len){
char[]cArr=inpath;
字节[]bArr=indata;
int i=len;
字节[]SendBuffer=新字节[2080];
字节[]ReceivedBuffer=新字节[2080];
int start_addr=0;
int crcbuf=getBufCRC(bArr,i,0);
int sendlen=0+1;
字节b=72;
SendBuffer[0]=72;
int sendlen2=sendlen+1;
SendBuffer[sendlen]=1;
int sendlen3=sendlen2+1;
SendBuffer[sendlen2]=(字节)(i>>24);
int sendlen4=sendlen3+1;
SendBuffer[sendlen3]=(字节)(i>>16);
int sendlen5=sendlen4+1;
SendBuffer[sendlen4]=(字节)(i>>8);
int sendlen6=sendlen5+1;
SendBuffer[sendlen5]=(字节)(i>>0);
int filelen=cArr.length;
int j=0;
而(j>24);
int sendlen14=sendlen13+1;
SendBuffer[sendlen13]=(字节)(开始地址>>16);
int sendlen15=sendlen14+1;
SendBuffer[sendlen14]=(字节)(开始地址>>8);
int sendlen16=sendlen15+1;
SendBuffer[sendlen15]=(字节)(开始地址>>0);
int j2=0;
而(j2<2048){
SendBuffer[sendlen16]=bArr[start_addr];
j2++;
sendlen16++;
start_addr++;
}
用户_SendData(sendlen16,SendBuffer);
如果(用户接收数据(接收缓冲区,15000)==0){
返回49;
}
如果(接收缓冲[2]!=121){
返回50;
}
k++;
sendlen7=sendlen16;
b2=2;
b=72;
}否则{
如果(i%2048!=0){
int sendlen17=0+1;
SendBuffer[0]=72;
int sendlen18=sendlen17+1;
SendBuffer[sendlen17]=2;
int sendlen19=sendlen18+1;
SendBuffer[sendlen18]=(字节)((i%2048)/256);
int sendlen20=sendlen19+1;
SendBuffer[sendlen19]=(字节)((i%2048)%256);
int sendlen21=sendlen20+1;
SendBuffer[sendlen20]=(字节)(开始地址>>24);
int sendlen22=sendlen21+1;
SendBuffer[sendlen21]=(字节)(开始地址>>16);
int sendlen23=sendlen22+1;
SendBuffer[sendlen22]=(字节)(开始地址>>8);
int sendlen24=sendlen23+1;
SendBuffer[sendlen23]=(字节)(开始地址>>0);
int j3=0;
而(j3
谢谢你的时间