初識iPhone基帶通訊

2021-06-20 16:03:35 字數 1534 閱讀 3194

與iphone基帶裝置檔案有好幾個,目前發現比較方便可用的是/dev/dlci.spi-baseband.extra_0。如果是舊版本的ios可能會是/dev/tty.debug。如果你是比較舊的ios,可以嘗試tty.debug。為了進行基帶通訊,首先我們要開啟基帶裝置檔案,**如下:

nsfilehandle *baseband = [nsfilehandle filehandleforupdatingatpath:@"/dev/dlci.spi-baseband.extra_0"];

if (baseband == nil)

開啟基帶裝置後,需要對基帶進行一些配置,如串列埠速率,資料位,模式等。配置基帶檔案**如下:

int fd = [baseband filedescriptor];

ioctl(fd, tiocexcl);

fcntl(fd, f_setfl, 0);

static struct termios term;

tcgetattr(fd, &term);

cfmakeraw(&term);

cfsetspeed(&term, 115200);

term.c_cflag = cs8 | clocal | cread;

term.c_iflag = 0;

term.c_oflag = 0;

term.c_lflag = 0;

term.c_cc[vmin] = 0;

term.c_cc[vtime] = 0;

tcsetattr(fd, tcsanow, &term);

> at\r

atok

傳送at指令很簡單,只需要向基帶裝置檔案寫入資料即可。處理結果也只是從基帶裝置檔案中讀入資料。由於at命令往往是以「ok\r\n」或「error\r\n」結束,所以我用此來判斷at命令結果輸出結束,相關**如下:

nsstring *sendatcommand(nsfilehandle *baseband, nsstring *atcommand)

else

}return nil;

}

獲取手機imei

nsstring *result = sendatcommand(baseband, @"at+cgsn\r");
獲取imsi

result = sendatcommand(baseband, @"at+cimi\r");
獲取iccid

result = sendatcommand(baseband, @"at+ccid\r");
撥打**(在我的手機上可以看到撥打**介面,但沒有聲音,可能還要結合其他介面才行。)

sendatcommand(baseband, @"atd10010\r");
全部**:

iphone 配件通訊

externalaccessory.framework 提供了一種管道機制,使應用程式可以和iphone或ipod touch裝置的配件進行通訊。通過這種管道,應用程式開發者可以將配件級別的功能整合到自己的程式中。上找到相應的資訊。在和配件進行通訊之前,需要與配件的製造商緊密合作,理解配件提供的服務...

蘋果手機維修 iPhone維修基帶訊號處理 一

pmb8876 pmb8876是雙核處理器,整合了乙個arm處理器與乙個dsp處理器。pmb8876的微處理器單元採用32位的arm926ej s處理器核心。在微處理器單元,還整合了多種不同作用的儲存器,如32kb的引導rom 96kb的sram 16kb的程式緩衝儲存器 8kb的資料緩衝儲存器等。...

Iphone 開發(一) Mac 初識

昨天拿到了mac的機器,預裝的是mac os x 10.7 lion的作業系統,進入介面,映入眼簾的與windows的介面有很大的不一樣,由於os x的作業系統是由freebsd 作業系統的核心開發過來的,當然自認為也是乙個unix的作業系統,之前接觸過ubuntu作業系統,ubuntu是一款lin...