Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revoke Accessibility permission khi app đang chạy có thể làm treo máy #94

Open
quantonganh opened this issue Oct 4, 2023 · 10 comments
Labels
A-client Area: Everything within GõKey A-macos Area: MacOS API bug Something isn't working E-investigate Estimation: Need investigate E-medium Estimation: Medium effort

Comments

@quantonganh
Copy link
Contributor

ProductName:    macOS
ProductVersion: 12.3
BuildVersion:   21E230

Steps to repro:

  • Download bản nightly build về, cài và chạy như hướng dẫn
  • Giờ mình muốn test gì đó nên:
git clone https://github.com/huytd/goxkey && cd goxkey
cargo bundle
  • Mở ứng dụng vừa build open target/debug/bundle/osx/, rồi chuột phải, chọn Open
  • Ứng dụng hỏi cấp quyền Accessibility. Mình chọn remove /Applications/GoKey.app, định add target/debug/bundle/osx/GoKey.app thì máy bị treo. Chuột vẫn di chuyển được nhưng không nhận click; bàn phím treo -> phải hard reset.
@tungpun
Copy link

tungpun commented Oct 5, 2023

Bạn thử revoke quyền của GõKey ở trong Privacy & Security > Accessibility settings của macOS trước khi remove app xem sao?

@quantonganh
Copy link
Contributor Author

Ứng dụng hỏi cấp quyền Accessibility. Mình chọn remove /Applications/GoKey.app, định add target/debug/bundle/osx/GoKey.app thì máy bị treo. Chuột vẫn di chuyển được nhưng không nhận click; bàn phím treo -> phải hard reset.

Để mình nói rõ thêm chút: chỗ này, ý mình là chọn GoKey trong danh sách apps ở Security & Privacy -> Accessibility đấy, chứ không phải remove app trong /Applications/GoKey.app đâu.

@huytd
Copy link
Owner

huytd commented Oct 5, 2023

Có vẻ như đây là vấn đề khi remove quyền accessibility của GõKey khi nó đang chạy 💀

Technically là có thể handle được, hiện tại trong CGEventTap callback thì mình đang assume luôn có quyền accessibility, để debug xem trong case này chi tiết lỗi crash nó như nào.

@huytd huytd added bug Something isn't working A-macos Area: MacOS API A-client Area: Everything within GõKey E-investigate Estimation: Need investigate E-medium Estimation: Medium effort labels Oct 5, 2023
@quantonganh quantonganh changed the title Treo máy khi chạy GoKey mà nó đang chạy rồi Revoke Accessibility permission khi app đang chạy có thể làm treo máy Oct 6, 2023
@huytd huytd closed this as completed in 3233e8d Oct 6, 2023
@huytd
Copy link
Owner

huytd commented Oct 6, 2023

Detail cho issue này là, khi mất quyền accessibility thì CGEventTap vẫn chạy, vẫn bắt được event nhưng ko có cách nào gửi trả event lại cho OS, dẫn đến tình trạng không làm gì được (cụ thể các event là mouse down, key down, modifier keys change) nên không thể control máy tính được nữa.

Tạm thời giải pháp là force close app khi mất quyền accessibility.

@quantonganh
Copy link
Contributor Author

Mình thử vài lần, vẫn treo nhé.

@huytd
Copy link
Owner

huytd commented Oct 9, 2023

Trên bản build mới nhất hả bạn? steps to reproduce như nào nhỉ?

@quantonganh
Copy link
Contributor Author

Mình vẫn thử như trên thôi:

cd /path/to/goxkey
git checkout main
git pull --rebase
cargo bundle
open target/debug/bundle/osx/

Sau đó:

  • chuột phải, open GoKey
  • add accessibility access
  • "Thoát" -> chuột phải, open để chạy lại
  • Giờ quay lại Security & Privary -> Accessibility, remove GoKey -> treo máy.

@huytd
Copy link
Owner

huytd commented Oct 9, 2023

bạn có thể thử với bản release đã đc bundle ở trang release không?

@huytd huytd reopened this Oct 9, 2023
@quantonganh
Copy link
Contributor Author

😄

Screen Shot 2023-10-09 at 08 28 00

@huytd
Copy link
Owner

huytd commented Oct 9, 2023

Đã update bản build mới để hoạt động đc trên macOS dưới 14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-client Area: Everything within GõKey A-macos Area: MacOS API bug Something isn't working E-investigate Estimation: Need investigate E-medium Estimation: Medium effort
Projects
None yet
Development

No branches or pull requests

3 participants