ฉันจะส่งออกรายการแท็บ Chrome ที่เปิดอยู่ได้อย่างไร


44

คุณลักษณะการซิงค์ของ Chrome ไม่ได้รับแท็บทั้งหมดที่เปิดอยู่บนโทรศัพท์ Android ของฉัน

แท็บถูกจัดเก็บไว้ในไฟล์ที่ฉันสามารถเข้าถึงได้หรือไม่?

ความตั้งใจของฉันคือการส่งออกรายการแท็บเพื่อให้ฉันสามารถเรียกใช้การรีเซ็ตเป็นค่าเริ่มต้นจากอุปกรณ์

ใช้ Android 4.3


ฉันหวังว่าจะมีส่วนเสริมสำหรับวัตถุประสงค์นั้น
neverMind9

ควรมีวิธีที่ไม่มีรูตแบบสแตนด์อะโลนในการทำเช่นนั้น เพราะ bootloader เช็ด ใครก็ตามที่คิดค้น bootloader เช็ดปวดหัวควรถูกไล่ออกทันที bootloader เป็นกับดัก การปลดล็อคจะบังคับให้หนึ่งเพื่อลบข้อมูลทั้งหมดและบางส่วนไม่สามารถสำรองข้อมูลได้โดยไม่ต้องปลดล็อคในตอนแรก วงจรอุบาทว์ แล้วมีการเข้ารหัสและปวดหัว ARM TrustZone เช่นกัน
neverMind9

คำตอบ:


35

คุณสามารถใช้คุณสมบัติอุปกรณ์ระยะไกลในดีบักเกอร์ Chrome เพื่อเชื่อมต่อกับ Chrome บนอุปกรณ์และเข้าถึงแท็บ เพียงขยายรายการแท็บที่มองเห็นเพื่อรับรายการทั้งหมดแล้วไฮไลต์ & คัดลอกทุกสิ่งที่แสดง (รวมถึง URL) ไปยังคลิปบอร์ด: https://developers.google.com/web/tools/chrome-devtools/remote-debugging/

ฉันจัดการเพื่อส่งออกแท็บ ~ 400 ด้วยวิธีนี้


3
อยากจะพูดถึงว่ารายการ debugger chrome จะทำให้ URL สั้นลงหากยาวเกินไปแทนที่จะคัดลอกคุณสามารถเรียก url ได้โดยตรงโดยใช้วิธีการในคำตอบของ Louis Maddox
woojoo666

@ woojoo666: ดูเหมือนว่าสิ่งต่างๆใน Chrome จะเปลี่ยนไปและตอนนี้คำตอบของหลุยส์ก็ตัดทอนส่วนท้ายของ URL จำนวนมากด้วย ดูเหมือนว่า URL ใด ๆ ที่มีมากกว่า 100 ตัวอักษรซึ่งในกรณีของฉันมันประมาณ 50% ของแท็บที่เปิดอยู่ทั้งหมดของฉันจะหายไปจากตอนจบ
peterflynn

@ peterflynn ยังคงใช้ได้สำหรับฉัน เพียงส่งออก URL ที่มีความยาว 432 อักขระ เพียงเพื่อให้แน่ใจว่าคุณกำลังเปิดเครื่องมือ dev ในหน้าต่างป๊อปเอาต์ไปที่บานหน้าต่าง "อุปกรณ์ระยะไกล" จากนั้นใช้ ctrl-shift-J เพื่อเปิดหน้าต่าง dev-tools ที่สองจากนั้นใช้สคริปต์ที่ให้ไว้ที่นี่ถูกต้องไหม
woojoo666

Android เวอร์ชันต่ำสุดที่ต้องทำคืออะไร
neverMind9

ฉันหวังว่าจะมีวิธีแบบสแตนด์อโลนที่จะทำ โดยไม่ต้องพึ่งวิธีการภายนอก ฉันรู้ว่ามีรายการแท็บรูท แต่โทรศัพท์มือถือของฉันไม่ได้ถูกรูทเพราะผู้คนบอกว่ามีความเสี่ยงที่จะเกิดความผิดปกติบางอย่าง
neverMind9

25

เพิ่งเข้าร่วม StackExchange นี้เพื่อแสดงความขอบคุณสำหรับคำตอบของ Jeremyข้างต้นและยังเพิ่ม JS ไม่กี่บรรทัดที่ฉันใช้เพื่อส่งออกรายการแท็บ (เนื่องจากการคัดลอกด้วยเคอร์เซอร์ไม่เหมาะ!)

ดังที่ Jeremy กล่าวไว้ให้เลือกRemote devicesภายใต้ไอคอนMore toolsChrome devtools (ด้านบนขวาของแผง):

  • ตั้งค่าการดีบัก USB บนโทรศัพท์ของคุณ (ภายใต้SettingsDeveloper options, ไม่จำเป็นต้องรูท)
    • โปรดทราบว่าคุณต้องเปิดใช้งานDeveloper optionsเมนูโดยจะซ่อนไว้ตามค่าเริ่มต้นเพื่อปกป้องผู้ใช้
    • ในโทรศัพท์ของฉันต้องแตะหลายครั้งบนหมายเลขSettingsบิลด์ภายใต้⇒About Device
  • เมื่อดำเนินการเสร็จแล้วให้เสียบ USB ของคุณและอนุญาตการเชื่อมต่อ MTP
  • เมื่อแผงอุปกรณ์ระยะไกลของ Chrome devtools เปิดอยู่โทรศัพท์จะขออนุญาตให้ทำการดีบัก USB
    • คุณสามารถเลือกที่จะเชื่อถือคอมพิวเตอร์ได้เสมอ

ตอนนี้อุปกรณ์เชื่อมต่อแล้ว

  • เปิดมุมมอง devtools ครั้งที่สองในมุมมอง devtools ที่คุณเลือกRemote devicesเพื่อให้สามารถเรียกคืนรายการแท็บโดยใช้ JavaScript
    • โปรดทราบว่าคุณต้องมี devtools ในโหมดป๊อปอัพ (ใช้สัญลักษณ์รูปไข่แนวตั้งที่ด้านบนขวาของแผง) เพื่อให้สามารถใช้งานได้มิฉะนั้น Command + Option + J (MAC) Ctrl+ Shift+ J(WINDOWS) จะปิดลง แผง devtools แรก
  • ขยายรายการจากรายการแรก ๆ ไปยังแท็บทั้งหมดโดยคลิก 'แสดงเพิ่มเติม'
  • สคริปต์กับรายการใช้รหัสต่อไปนี้สองสามบรรทัด [ป้อนในคอนโซลของหน้าต่าง devtools ครั้งที่ 2]
    • NB /deep/เป็นตัวเลือก CSS เพื่อป้อน#shadow-rootองค์ประกอบ DOM

ในการส่งออกรายการ URL ทั้งหมดที่เปิดบน Chrome สำหรับ Android ฉันเลือกที่จะทำรายการลงในสตริงข้อความที่จัดรูปแบบมาร์กอัปและคัดลอกไปยังคลิปบอร์ด

tabs = Array.from(document.querySelectorAll('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.device-page-url .devtools-link').href}))
str = '';
for (i=0;i<tabs.length;i++){
  str += '['+tabs[i]['name']+']('+tabs[i]['url']+')\n'
}
copy(str)

จากนั้นคุณจะมีรายการบนคลิปบอร์ดของคุณที่มีลักษณะดังนี้:

[How can I export the list of open Chrome tabs? - Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/56635/how-can-i-export-the-list-of-open-chrome-tabs)
[Get Started with Remote Debugging Android Devices  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/)
[How To Enable USB Debugging On Your Android Phone](https://www.groovypost.com/howto/mobile/how-to-enable-usb-debugging-android-phone/)
[Configure On-Device Developer Options | Android Studio](https://developer.android.com/studio/debug/dev-options.html)
...

ปรับปรุง

ด้วยเหตุผลบางอย่างฉันได้รับข้อผิดพลาดบางครั้งโดยบอกว่ามันไม่สามารถรับhrefคุณสมบัติของnullรายการ (เมื่อฉันตรวจสอบว่าเป็นโหนดที่มองไม่เห็นใครจะรู้) หากต้องการหลีกเลี่ยงปัญหานี้ให้ใช้เวอร์ชันนี้แทน:

tabs = document.querySelectorAll('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ .device-page-list .vbox')
str = '';
for (i=0;i<tabs.length;i++){
  if (tabs[i].querySelector('.device-page-url .devtools-link') != null){
    str += '- ['+tabs[i].querySelector('.device-page-title').textContent + '](' + tabs[i].querySelector('.device-page-url .devtools-link').getAttribute('href') +')\n'
  } else {
    console.log(tabs[i])
  }
}
copy(str)

1
Chrome มีการเปลี่ยนแปลงและtabs = Array.from(document.querySelectorAll('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.devtools-link')._href}))จะใช้งานได้ในขณะนี้
dlamotte

โปรดทราบว่าการใช้เทคนิคนี้ URL ใด ๆ ที่มีความยาวเกิน 100 อักขระจะมีจุดสิ้นสุดที่ถูกตัดออก
peterflynn

@ peterflynn ยังคงใช้ได้สำหรับฉัน ฉันเพิ่งส่งออก URL ที่เป็น 432 ตัวอักษร ตรวจสอบให้แน่ใจว่าคุณใช้สคริปต์ที่ diamotte มีให้
woojoo666

1
มันเปลี่ยนไปอีกครั้ง สำหรับ Chrome เวอร์ชัน "73.0.3683.75 (Build ทางการ) (64 บิต)": tabs = Array.from(document.querySelector('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div.vbox.flex-auto').shadowRoot.querySelectorAll('.devices-view .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.device-page-url .devtools-link').getAttribute('href')}))(ฉันไม่สามารถเข้าถึง shadow-root สุดท้ายผ่านตัวเลือกได้ แต่ต้องใช้.shadowRootคุณสมบัติขององค์ประกอบโฮสต์แทนไม่แน่ใจว่าทำไม แต่ เฮ้ไม่สนับสนุน
Adrian

1
ในกรณีที่คนอื่นมีปัญหาฉันมีปัญหาในการเรียกใช้สคริปต์เหล่านี้ (มันเป็นการตอกย้ำสแต็ก USB ของเคอร์เนลที่มีการใช้งาน 100% ในช่วง 10+ นาทีก่อนที่ฉันจะหยุดทำงาน) วิธีที่ดีที่สุดที่ฉันพบคือการเลือกองค์ประกอบ HTML หลักในตัวตรวจสอบเครื่องมือ dev Chrome (ใช้ปุ่มเคอร์เซอร์ที่ด้านบนซ้ายของหน้าต่างเครื่องมือ dev ซ้อนกันเพื่อเลือกรายการแบบสุ่มในรายการจากนั้นเลือกองค์ประกอบหลัก) จากนั้น คลิกขวา -> "แก้ไขเป็น HTML" -> คัดลอกไปยังไฟล์ข้อความอื่น แล้วมันก็ง่ายขึ้นและเร็วมากในการปรับตัวสคริปต์ข้างต้นเพื่อการทำงานในสำเนา HTML ท้องถิ่น (หรือทุบตี)
JZL003

13

ฉันเจอโซลูชันนี้เมื่อฉันต้องการกู้คืนแท็บที่ปิดอย่างถาวรหลังจากเบราว์เซอร์ของฉันทำงานขัดข้องในหนึ่งวัน ในการเข้าถึงข้อมูลที่คุณต้องการอุปกรณ์ของคุณจะต้องได้รับการรูทเพื่อให้คุณสามารถเรียกใช้แอปพลิเคชันสำรวจไฟล์ด้วยการเข้าถึงไฟล์รูทที่ติดตั้งในอุปกรณ์ของคุณ ES File ExplorerหรือRoot Explorerเป็นคำแนะนำของฉัน

  1. นำทางไปยังโฟลเดอร์รากของอุปกรณ์ของคุณ (พาร์ติชันระบบป้องกัน) →เลือก→เลือก DATAcom.android.chrome

  2. มีหลายสถานที่ที่คุณอาจพบข้อมูลเกี่ยวกับแท็บปัจจุบันของคุณ

    1. โฟลเดอร์แรกที่สามารถเช็คอินคือแล้วapp_tabs 0ในโฟลเดอร์นี้ควรมีไฟล์ชื่อtab_stateซึ่งมีรายการแท็บปัจจุบันทั้งหมดของคุณ
    2. นอกจากนี้ยังมีไฟล์อื่น ๆ ในโฟลเดอร์นี้เรียกว่าtab3, tab4ฯลฯ ที่มีข้อมูลเกี่ยวกับแท็บปัจจุบัน
    3. IMO คุณต้องใช้ "text editor / sql editor" พิเศษเพื่ออ่านเนื้อหาของไฟล์เหล่านี้เนื่องจากการเข้ารหัสแตกต่างกัน
  3. /data/com.android.chrome/app_chrome/Default/สถานที่ถัดไปเพื่อดูเป็น Historyในโฟลเดอร์นี้คุณจะพบไฟล์ที่เรียกว่า ขึ้นอยู่กับสถานการณ์ของคุณคุณอาจพบรายการที่ดีของการเยี่ยมชมเว็บไซต์ล่าสุดที่นี่

  4. Sync Data folderสุดท้ายไปที่ ในที่นี่คุณจะพบข้อมูลที่ซิงค์กับ Google (และควรรวมแท็บทั้งหมดที่คุณซิงค์ในอุปกรณ์อื่น ๆ )

    • ในไฟล์SyncData.sqlite3คุณจะพบประวัติของการค้นหา Google ทั้งหมดของคุณ (ซึ่งบางครั้งฉันพบว่าเป็นการอ่านที่น่าสนใจ)
    • คุณจะต้องใช้โปรแกรมเบราว์เซอร์ข้อมูล Sqlite3 บนพีซีของคุณเพื่ออ่านไฟล์นี้ แอปพลิเคควรจะสามารถส่งออกไปใช้งานได้อย่าง.CSVหรือ.XLSแฟ้มที่คุณสามารถเปิดในMS Excel

นี่อาจเป็นประโยชน์กับคนที่ฉันคิด


5

หากคุณมีเครื่องมือบรรทัดคำสั่ง Androidติดตั้งบนเครื่องพัฒนาและเปิดใช้งานการดีบัก USB บนอุปกรณ์ Android ของคุณคุณสามารถทำสิ่งต่อไปนี้:

  • ดำเนินการadb forward tcp:9222 localabstract:chrome_devtools_remoteบนเครื่องพัฒนาของคุณ

    อินสแตนซ์ของ Chrome เปิดเผยการเข้าถึงโปรโตคอลการดีบักผ่านซ็อกเก็ตโดเมนยูนิกซ์ที่มีที่อยู่นามธรรม " chrome_devtools_remote" - คำสั่ง adb ข้างต้นส่งต่อคำขอไปยังพอร์ต 9222 ต่อไปยังซ็อกเก็ตนั้น (คุณสามารถรับรายการซ็อกเก็ตโดเมน unix ทั้งหมดบนอุปกรณ์ Android ได้โดยพิมพ์adb shell cat /proc/net/unix)

  • โปรโตคอลการดีบักจะเปิดเผยข้อมูล JSON เกี่ยวกับอินสแตนซ์ของ chrome ผ่าน HTTP ไฟล์ JSON ที่แสดงรายการแท็บเปิดสามารถทำได้โดยการwget -O tabs.json http://localhost:9222/json/listเรียกใช้งาน

    (สามารถหาจุดปลายอื่น ๆ ของ API ได้ที่https://github.com/buggerjs/bugger-daemon/blob/master/README.md#api .)

ดูที่นี่สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการเปิดใช้งานการแก้ไขข้อบกพร่อง USB และที่นี่เพื่อดูภาพรวมของการทำงาน


2

วิธีแก้ปัญหานี้จะให้ไฟล์ข้อความพร้อมกับแต่ละ URL สำหรับแท็บทั้งหมดที่คุณเปิดใน Chrome สำหรับ Android

  1. ตามที่กล่าวไว้ในคำตอบของไมเคิลคุณต้องคว้าไฟล์ที่มีแท็บปัจจุบัน ใช้ root explorer บนอุปกรณ์คว้าไฟล์นี้และย้ายไปยังโฟลเดอร์ที่คุณเลือกใน windows:/data/data/com.android.chrome/app_tabs/0/tab_state

  2. ติดตั้งGNU Tools สำหรับ Windows

  3. บางครั้งมีลูกศรแปลก ๆ ในไฟล์ที่ขันสคริปท์ หากคุณเรียกใช้สคริปต์และตัดส่วนของไฟล์ให้ดูที่อักขระตัวสุดท้ายและอาจเป็นอักขระลูกศรแปลก ๆ ค้นหา / แทนที่มันในไฟล์ต้นฉบับ เมื่อมันหายไปสคริปต์จะทำงานได้ดี ดูเหมือนว่านี้:-->

  4. ไปที่พรอมต์บรรทัดคำสั่ง (ไปที่ "Run" หรือWin+ Rและพิมพ์cmd) แล้วไปที่โฟลเดอร์ที่มีsed.exe(ทุกที่ที่คุณติดตั้งในขั้นตอนที่ 2)

  5. คุณอาจจะต้องการที่จะย้ายไฟล์ต้นฉบับ ( tab_state) sed.exeไปยังโฟลเดอร์เดียวกันที่มี มันจะทำให้ทุกอย่างง่ายขึ้น เมื่อคุณทำเสร็จแล้วให้เรียกใช้สคริปต์นี้:

    sed -i "s/.\{6\}http/\r\n\r\nhttp/g" tab_state
    
  6. การดำเนินการนี้จะแก้ไขไฟล์ด้วย URL ทั้งหมดที่จัดรูปแบบอย่างถูกต้อง เปิดไฟล์เป็นไฟล์ข้อความจากนั้นคัดลอกและวางเนื้อหาลงในเอกสาร Word หรือตำแหน่งอื่น ด้วยเหตุผลบางอย่างถ้าคุณไม่คัดลอกและวางข้อมูลออกเมื่อคุณบันทึกไฟล์ไฟล์นั้นจะลบการขึ้นบรรทัดใหม่ / การขึ้นบรรทัดใหม่ หากสิ่งต่าง ๆ ล้มเหลวเพียงแค่เริ่มต้นใหม่และทำมันอีกครั้ง เมื่อทุกอย่างเสร็จสิ้นคุณควรมีไฟล์ที่มีรายการลิงค์ไปยังแท็บทั้งหมดที่คุณเปิดมาก่อน


2

คุณสามารถเปลี่ยนรหัสในคอนโซลจากที่หลุยส์แมดดอกซ์Version 0.66.99 Chromium: 75.0.3770.100กับคนนี้นี้คือการทำงานเป็นของวันนี้ หมายเหตุ: คุณสามารถเปิดหน้าต่างคอนโซลใหม่ของหน้าต่างอุปกรณ์ระยะไกลหากคุณเปิดใช้งานหน้าต่างอุปกรณ์ระยะไกลและกดCtrl+Shift+J

tabs = Array.from(document.querySelector('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div.vbox.flex-auto').shadowRoot.querySelectorAll('.devices-view .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.device-page-url .devtools-link').getAttribute('href')}))

str = ' ';

tabs.forEach(e => {
    str += '- ['+ e.name + '](' + e.url +')\n';
})
copy(str)

จากนั้นคุณสามารถวางแท็บทั้งหมดในเท็กซ์ไฟล์

หากคุณต้องการเปิดแท็บทั้งหมดในอุปกรณ์จริงของคุณให้แทนที่tabs.forEach-part ด้วย

tabs.forEach(e => {
    window.open(e.url, '_blank');
})

อย่าลองใช้ด้วยแท็บที่เปิดอยู่มากเกินไปในอุปกรณ์ของคุณ

ฉันเพิ่มสิ่งนี้หลังจากtabsส่วนเพื่อซิงโครไนซ์เปิดแท็บด้วยตนเอง (กล้ายังขาดคุณสมบัตินี้และฉันมีแท็บที่เปิด 650 บนอุปกรณ์มือถือของฉัน) ในค่าใช้จ่าย 50 แท็บ:

i=0;
j=0;
tabs.forEach(e => {
  if(i<50){
    i++;
    window.open(e.url, '_blank');
  }
  j++;
})
console.log("Tabs overall:"+j);

การดำเนินการนี้จะเปิดชุด 50 แท็บจากอุปกรณ์ของคุณลงในหน้าต่างเบราว์เซอร์ที่เปิดอยู่ นอกจากนี้ยังแสดงจำนวนแท็บโดยรวม อย่าปิดแท็บ 'ว่าง' ที่เหลือสำหรับเครื่องมือสำหรับนักพัฒนาและอุปกรณ์ระยะไกลหากคุณต้องการเปิดแบทช์อื่น เมื่อCtrl + TABคุณสลับแท็บต่างๆCtrl +Dเพื่อคั่นหน้าพวกเขาและCtrl+Wเพื่อปิดแท็บที่ใช้งานอยู่ นั่นคือวิธีที่ฉันทำด้วยตนเองอย่าลังเลที่จะเสนอการเปลี่ยนแปลงในรหัสนี้เพื่อทำให้ทุกคนง่ายขึ้น


1

Michael ระบุไฟล์ tab_state มันจะยังคงถอดรหัส สคริปต์ต่อไปนี้ใช้งานได้สำหรับฉัน (ใน kitkat KSH_VERSION = '@ (#) MIRBSD KSH R43 2013/02/19' หรือ xenial BASH_VERSION = '4.3.46 (1) - ปล่อย' ในไฟล์ tab_state จาก Chrome 49.0.2623.105) มันพิมพ์ URL สุดท้ายก่อนระหว่าง URL จะลบไบต์ที่ไม่สามารถพิมพ์ได้ใด ๆ และไบต์ต่อไปนี้ทั้งหมดและอื่น ๆ หากจำเป็นดังนั้นอย่างน้อย 2 ไบต์จะถูกลบออก ตาม URL แต่ละรายการจะพิมพ์ช่องว่างจากนั้นไบต์ที่พิมพ์ต่อเนื่องที่ลบออกจะถูกลบออกหากมีแล้วก็คือเครื่องหมายจุลภาคจากนั้นก็จะนับจำนวนไบต์อื่น ๆ ที่ถูกลบออก (& กล่าวว่าไบต์ภายในวงเล็บ) หากต้องการพิมพ์ URL ให้ใช้คำสั่ง echo ที่คอมเม้นต์แทน

tab_state=/data/data/com.android.chrome/app_tabs/0/tab_state
[[ $KSH_VERSION ]]||shopt -s extglob       #set if bash
(cat $tab_state;echo)|while read -r r;do b=
   while
      q=${r%http?(s)://*}          #chip off a URL
      [[ $q = *url= ]]&&{
         p=${r%http?(s)://*url=*}  #special case URL within URL
         [[ $p = "$r" ]]||q=$p;}
      h=${r:${#q}}                 #the chip
      h=${h%%[! -~]*}              #remove unprintable&following bytes
      u=$((${#r}-${#q}-${#h}))     #no of said bytes removed
      p=$((u<b?b-u:0))             #no of more bytes to remove
      [[ $h ]];do
         echo "${h::${#h}-p} ${h:${#h}-p},$u(${r:${#r}-u})"
      #  echo "${h::${#h}-p}"
         r=$q b=2
   done
done

1

คุณต้องเป็นรูทหรือ Chrome เพื่อที่จะอ่าน /data/data/com.android.chrome/app_tabs/0/tab_state0

คุณสามารถใช้ช่องโหว่สกปรกบนอุปกรณ์ที่มีช่องโหว่เพื่อเป็น Chrome และรับtab_state0จากอุปกรณ์ต่อพ่วง:

make root
adb shell
run-as com.android.chrome
chmod 711 /data/data/com.android.chrome/app_tabs/0
chmod 644 /data/data/com.android.chrome/app_tabs/0/tab_state0
exit
cp /data/data/com.android.chrome/app_tabs/0/tab_state0 /sdcard/
exit
adb pull /sdcard/tab_state0

เมื่อคุณเข้าถึงได้แล้วให้tab_state0แยก URL:

LC_ALL=C grep -a -o 'http[[:print:]]*' tab_state0

1

คำตอบล่าสุดโดยsimonsanไม่ทำงานบน Chrome 75.0.3770.100สร้างปัจจุบันของฉัน ฉันไม่มีvboxคลาสที่ใช้ในทุกสคริปต์ที่โพสต์ดังนั้นฉันจึงสามารถเขียนโค้ดที่ใช้งานได้ในขณะนี้:

tabs = document.querySelectorAll('#devices div /deep/ div /deep/ div /deep/ div /deep/ .row')
str = '';
for (i=0;i<tabs.length;i++){
  if (tabs[i].querySelector('.name').innerText != null){
    str += '- ['+tabs[i].querySelector('.name').innerText + '] (' + tabs[i].querySelector('.url').innerText +  ')\n'
  } else {
    console.log(tabs[i])
  }
}

ฉันได้พบ โพสต์และภาพหน้าจอของLouis Maddoxมีประโยชน์อย่างมากในการถอดรหัสสคริปต์ของเขาดังนั้นที่นี่จึงเป็นต้นไม้ที่มีการปรับปรุง

ภาพหน้าจอ


อย่างไรก็ตามโซลูชันที่เสนอเพื่อเอาชนะ cap 100 char ไม่ทำงานสำหรับฉันดังนั้นฉันตัดสินใจแก้ไขinspect.jsจากซอร์สโดยทำตามขั้นตอนเหล่านี้:

  1. ดาวน์โหลดchrome-pak-customizerและคลายซิป
  2. จากC:\Program Files (x86)\Google\Chrome\Application\75.0.3770.100(โดยที่75.0.3770.100ชื่อของบิลด์) สร้างสำเนาของresources.pakในโฟลเดอร์เอกสารของคุณลากสำเนาและวางลงในunpack.batในโฟลเดอร์ที่คลายซิป
  3. ในการ\document\resources_unpaked\ใช้11208.jsและเปิด
  4. ในบรรทัด 537 หรือโดยการค้นหา100มีบรรทัดเหล่านี้
  let text = value ? String(value) : '';
  if (text.length > 100) {
    text = text.substring(0, 100) + '\u2026';
  }

changing the 100 to 300 should be enough, it may cuts some google search links but mine where still working.
  1. บันทึกไฟล์และลากโฟลเดอร์เดียวกันและวางไว้บนpak_index.ini pak.batตอนนี้resource.pakใน\documents\ได้รับการปรับปรุงด้วยการเปลี่ยนแปลง
  2. ทำการสำรองข้อมูลresource.pakเพราะคุณไม่เคยรู้ปิด Chrome และแทนที่เดิมด้วยรุ่นที่อัปเดต

ตอนนี้สคริปต์จะแสดงถึง 300 ตัวอักษรสำหรับ URL


0

ใน windows เพื่อแยกtab_state0จากไฟล์เก็บถาวร TitaniumBackup (ใช้งานได้บนโทรศัพท์ที่รูท)

7z e TitaniumB\com.android.chrome-20180918-001302.tar.gz -so | 7z e -si -ttar tab_state0 -r

เพื่อรับรายการแท็บจาก tab_state0

sed -b "s/^.\{20\}//g" tab_state0 | sed -b "s/.\{6\}http/\nhttp/g" > my-tabs.md

บน windows ฉันจะติดตั้งhttps://scoop.sh/แล้วscoop install busybox 7zip


-1

นี่ไม่ใช่คำตอบที่คุณต้องการ แต่:

  1. สร้างบัญชีจำลองใน Google

  2. เข้าสู่ระบบบนอุปกรณ์ Android และเปิดใช้งานการซิงค์

  3. เข้าสู่ระบบบนเดสก์ท็อปและเปิดใช้งานการซิงค์

  4. ติดตั้งส่วนขยาย Session Buddy บนเดสก์ท็อป

  5. ส่งออกแท็บ


5
ตามที่ OP ระบุไว้ในคำถามของเขา: คุณลักษณะการซิงค์ของ Chrome ไม่ได้เก็บแท็บทั้งหมดที่เปิดบนโทรศัพท์ Android ของฉัน - จะช่วยได้อย่างไร? โซลูชันที่แนะนำของคุณส่งออกหลังจากการซิงค์ที่ไม่สมบูรณ์ดังนั้นจะไม่ส่งออกแท็บทั้งหมดตามที่ OP ร้องขอ
Izzy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.