adb: update register

This commit is contained in:
Hay1tsme 2023-06-03 13:52:32 -05:00
parent 46dd8fe84f
commit d7f9eed3f2

View File

@ -29,7 +29,7 @@ class AimedbProtocol(Protocol):
self.register_handler(0x09, 0x0A, self.handle_log, 'log')
self.register_handler(0x0B, 0x0C, self.handle_campaign, 'campaign')
self.register_handler(0x0D, 0x0E, self.handle_touch, 'touch')
self.register_handler(0x0F, 0x10, self.handle_lookup2, 'lookup2')
self.register_handler(0x0F, 0x10, self.handle_lookup, 'lookup2')
self.register_handler(0x11, 0x12, self.handle_felica_lookup2, 'felica_lookup2')
self.register_handler(0x13, 0x14, self.handle_log2, 'log2')
self.register_handler(0x64, 0x65, self.handle_hello, 'hello')
@ -131,9 +131,6 @@ class AimedbProtocol(Protocol):
"""
return ret
def handle_lookup2(self, data: bytes, resp_code: int) -> ADBBaseResponse:
return self.handle_lookup(data, resp_code)
def handle_felica_lookup(self, data: bytes, resp_code: int) -> bytes:
idm = data[0x20:0x28].hex()
pmm = data[0x28:0x30].hex()
@ -195,7 +192,7 @@ class AimedbProtocol(Protocol):
return ADBTouchResponse(resp_code, 0x0050)
def handle_register(self, data: bytes, resp_code: int) -> bytes:
luid = data[0x20:0x2A].hex()
req = ADBLookupRequest(data)
if self.config.server.allow_user_registration:
user_id = self.data.user.create_user()
@ -204,22 +201,25 @@ class AimedbProtocol(Protocol):
self.logger.error("Failed to register user!")
else:
card_id = self.data.card.create_card(user_id, luid)
card_id = self.data.card.create_card(user_id, req.access_code)
if card_id is None:
user_id = -1
self.logger.error("Failed to register card!")
self.logger.info(
f"register from {self.transport.getPeer().host}: luid {luid} -> user_id {user_id}"
f"Register access code {req.access_code} -> user_id {user_id}"
)
else:
self.logger.info(
f"register from {self.transport.getPeer().host} blocked!: luid {luid}"
f"Registration blocked!: access code {req.access_code}"
)
user_id = -1
resp = ADBLookupResponse(resp_code, 0x30, 1 if user_id > 0 else 0)
resp.user_id = user_id
"""
ret = struct.pack(
"<5H",
0xA13E,
@ -230,8 +230,8 @@ class AimedbProtocol(Protocol):
)
ret += bytes(0x20 - len(ret))
ret += struct.pack("<l", user_id)
return self.append_padding(ret)
"""
return resp
def handle_log(self, data: bytes, resp_code: int) -> bytes:
# TODO: Save aimedb logs