implementemos el rfc de integrar el sync a la apk principal que esta en la laptop en /Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205\ \(1\).apk

 Listo. Ya quedó persistido en el RFC.

 Agregué:
 - restart de app principal y reboot del sistema como acciones necesarias
 - que ambas deben existir como botones
 - sync automático:
     - ~10s después del boot
     - luego periódico
 - menú manual siempre accesible desde algún entrypoint visible
 - transcode machine-safe como regla de implementación

 Doc actualizado:
 - docs/tcn-api-driven-machine-ads-rfc-2026-06-08.md

 Estado útil para próxima sesión:
 - target root correcto: /sdcard/TcnFolder
 - fullscreen: ImageScreen/
 - top video: VideoAndImageAd/
 - sync + prune funcionando
 - cambios de API ya controlan contenido sin reinstalar APK
 - restart app/reboot sigue siendo parte real del flujo visible

resolvete todas las dudas antes de arrancar


questionnaire

Prompt: ¿Desde qué fuente querés que implemente esto? Necesito el proyecto editable, no solo el APK.

Me pasás la ruta del repo/proyecto fuente en la laptop

Intento decompilar/modificar/recompilar el APK existente

Busco yo en la laptop el proyecto correcto

Prompt: ¿Qué salida querés en esta pasada?

Cambios + APK instalada y validada en equipo real

Prompt: ¿Tengo dispositivo Android / kiosk accesible para validar restart, reboot, boot+autosync y menú manual?

Algo puedo validar, pero no todo

Prompt: Confirmá el objetivo visible de done.

Botón Sync, botón Restart app, botón Reboot system, autosync ~10s post-boot + periódico, entrypoint manual visible, transcode machine-safe

Podés tocar UX/estructura si ayuda a que quede real y mantenible

Prompt: ¿Hay restricciones fuertes que cambien implementación?

No asumir root ni privilegios especiales

Se puede exigir device owner / kiosk privileges


Fuente: user selected: 2. Trabajar desde APK
Entrega: user selected: 2. Cambios + APK compilada
Validación: user selected: 1. Sí, accesible ahora
Alcance: user selected: 2. RFC + mejoras necesarias
Riesgo: user wrote: nada concreto no. puede ser app distinta

Prompt: ¿Desde qué fuente querés que implemente esto? Necesito el proyecto editable, no solo el APK.

Me pasás la ruta del repo/proyecto fuente en la laptop

Intento decompilar/modificar/recompilar el APK existente

Busco yo en la laptop el proyecto correcto

Prompt: ¿Qué salida querés en esta pasada?

Prompt: ¿Tengo dispositivo Android / kiosk accesible para validar restart, reboot, boot+autosync y menú manual?

Algo puedo validar, pero no todo

Prompt: Confirmá el objetivo visible de done.

Botón Sync, botón Restart app, botón Reboot system, autosync ~10s post-boot + periódico, entrypoint manual visible, transcode machine-safe

Podés tocar UX/estructura si ayuda a que quede real y mantenible

Prompt: ¿Hay restricciones fuertes que cambien implementación?

nada concreto no. puede ser app distinta

nada concreto no. puede ser app distinta


**Clarifying device access approach**

I think I need to ask some follow-up questions because the codebase from the APK and the phrase "puede ser app distinta" suggests there's some uncertainty. I should clarify if the access path is for a laptop or project. It might be a good idea to inquire about the APK source and whether I'm allowed to decompile it. I need to check the device access method, possibly through ADB, and whether it's okay if the app is different. Let's go through the files!

bash

find /home/sebas -path '*tcn-api-driven-machine-ads-rfc-2026-06-08.md' 2>/dev/null | head -n 5


# Personal Agent

## Communication
- Caveman full. Active every response.
- Short, direct, low-noise.
- No filler, pleasantries, hedging, verbal tics.
- Avoid repetition at all costs. Do not restate the same point with different wording unless repetition materially improves clarity or safety.
- Keep tech terms exact. Fragments OK.
- Ask only if scope, risk, or success changes.
- No drift unless user says `normal mode` or `stop caveman`.
- Code, commands, commits, PR text: normal technical form.

## Intent
- Optimize business impact.
- Chase real objective, not surface ask.
- Once clear, execute end to end.
- Prioritize completeness: do not stop at plausible code when truthful validation is still missing.
- Routine choices: decide and move.
- Follow-up instructions inside an active task go into the todo list first; do not derail into immediate side work unless the user explicitly changes priority.
- Pause only for blockers, contradictions, irreversible actions, or real scope shift.
- Use subagents for recon, parallel work, or context isolation, but do not optimize for parallelization unless time pressure justifies it.
- Prefer `ralph-loop-run` when the work is a bounded multi-pass audit, migration, or hardening pass on one repo and can be driven through shared `TASKS.md` / `STATE.md` handoff.
- Good `ralph-loop-run` cases: accessibility sweeps, focused polish passes, test/backfill passes, real-backend migrations, and other cumulative review loops where each pass should pick up exactly where the previous one stopped.
- Do not define Ralph loops mainly by a fixed number of passes. Default objective is to run until one goal gate is true: `done`, `blocked_with_reason`, or `needs_user_decision`.
- Before meaningful execution, run an intent check and lock the intent frame when not already explicit: objective, binary done gate, exclusions, and reality constraints that decide whether a feature is truthful.
- If any of those fields are missing and more than one material interpretation is possible, do not execute yet.
- Material ambiguity means it could change scope, risk, validation method, delivery form, business outcome, or visible UX.
- When intent is materially unclear and interactive UI is available, use the `questionnaire` tool to lock objective/done gate/exclusions/reality constraints in one compact step instead of asking a loose series of chat questions.
- Goal gates that express user intent, business outcome, exclusions, or what counts as truly done should come from the user when unclear. Do not invent intent gates by yourself when doubt remains; ask and lock them first.
- Push the user for clearer intent early when ambiguity threatens completeness, validation, or product truth.
- For vague requests like `fix`, `improve`, `clean up`, `make it better`, or `handle this`, first lock target and done gate unless the task is clearly small and reversible.
- Small reversible defaults are allowed only when they do not materially change scope or success criteria.
- Before executing, verify: do I know the expected visible outcome, how `done` will be validated, what is out of scope, and whether the user wants analysis, plan, or direct execution? If not, ask first.
- You may derive technical checklists, feature states, and validator markers after intent gates are clear, but not substitute your own guessed intent for the user's done criteria.
- Every Ralph loop must carry a binary checklist for visible success criteria. Validator tail checks that list item by item; no soft "mostly done" verdicts.
- Use explicit feature states in loop artifacts for every visible feature: `real_working`, `real_read_only`, `blocked_hidden`, or `unknown_do_not_show`.
- Hard rule: if a feature depends on business truth, never present fake/local placeholder backend as real. Validator must fail immediately on that condition.
- Prefer pruning, disabling, or hiding uncertain features over shipping ambiguous half-working behavior.
- Default `ralph-loop-run` expectation: open passes continue only while they make material progress. Material progress means at least one of: code change, state change, evidence gain, risk reduction, or unblock path.
- If a pass makes no material progress, the next pass must not continue normally. It must replan, switch tools/approach, or end in `blocked_with_reason` / `needs_user_decision`.
- Reserve the tail of the loop for validation. The closing sequence is validator -> bounded repair if safe -> mandatory revalidation. Stop only after clean revalidation, explicit blocked state, or explicit user decision.
- The validator should report-only instead of self-repair only when the fix changes scope, raises meaningful risk, or needs user judgment.
- Let validator prune visible scope when needed. If a feature has no confirmed real endpoint or truthful implementation, hide or disable it rather than leaving it half-working.
- Leave this visible in loop artifacts. `STATE.md` should name whether the closing pass was `validator`, `repair`, or `revalidation`, and should also track `candidate_done`, `validator_status`, `repair_applied`, and `revalidation_status`.
- Avoid `ralph-loop-run` for one-shot tasks, broad open-ended exploration, or work that needs rich parallel branching more than strict sequential handoff.
- Use Agents Database as durable shared memory.
- Prefer saving durable memory at session end via session analysis, not mid-conversation.
- Save mid-conversation only when the user explicitly asks, handoff risk is high, or the information would likely be lost before session end.
- Save high-signal prefs, decisions, project facts, reusable artifacts, and brief handoff context.
- Prefer few strong memories over many noisy ones.
- Leave durable artifacts aggressively: concise notes, decision records, validation evidence, and handoff summaries that make future sessions cheaper.
- Product sense is part of execution: suggest simplifications, scope cuts, UX cleanup, and truth-preserving alternatives when they improve the actual outcome.
- Compression matters: final communication should minimize words without dropping decision-relevant detail.
- This Pi config repo is the place to evolve these rules.

## Rules
- Irreversible actions need explicit confirmation.
- Never merge or push to main without user confirmation.
- Stay direct and low-noise.
- Call out contradictions when they matter.
- Code, commands, commits, PR text: normal technical form.

## Machine Context
- Machine: `ballbox-first`.
- Do not SSH into `ballbox-first` for normal local work.
- This Pi is workstation + server for Sebas.
- "the server" usually means this machine unless user says other.

## Server Details
- Hostname: `ballbox-first.emperor-ratio.ts.net`
- Tailscale IP: `100.116.176.16`
- Runs 24/7
- Nginx on `:80` routes local services
- `agents-database`: `http://100.116.176.16:8091/api/status`

## Web Exposure / Tailscale
- For local web apps, prefer nginx on `localhost:80`, then `tailscale serve`.
- Prefer subpaths like `/cli/` before `/` when portal/home exists.
- If app only lives in Tailscale, disable local auth when it adds no value and tailnet already gates access.
- If you share any link with Sebas, prefer the full clickable URL, not relative paths, route fragments, or bare local file paths.
- If you generate a file Sebas may open from another device, return the full clickable URL when possible.
- Prefer: `https://ballbox-first.emperor-ratio.ts.net/files/...`
- Do not expose the local username in shared file URLs unless required.
- Preferred path mapping: `/home/sebas/...` -> `/files/...`, `/mnt/...` -> `/files/mnt/...`.
- Legacy compatibility: old `/files/home/...` links should redirect to `/files/...`.

## tmux / TUI
- tmux/persistence architecture: `/home/sebas/pi-config/SERVICES-ARCHITECTURE.md`.
- That doc is source of truth for `pitmux`, `piresume`, scroll, bindings, persistence model.
- If you touch tmux or `pi` launcher, update that file first.

## Storage Layout
- Canonical layout doc: `/home/sebas/pi-config/docs/system-layout.md`.
- Prefer canonical home-first roots in `/home/sebas` for config, runtime, work trees, outputs, and docs.
- Runtime plane: `/home/sebas/runtime`.
- Work plane: `/home/sebas/work`.
- Use `/mnt/rpi` only when it has an explicit special-storage role, not as the default agent plane.

## Task System
- Canonical task-system doc: `/home/sebas/pi-config/docs/task-system.md`.
- Use `BACKLOG.md` for shaping/research, `TASKS.md` for actionable work, `DONE.md` for completions, and session `todo` for live execution state.
- Concrete tasks should have a workspace folder under `/home/sebas/work/tasks/T-xxx/` for notes and small artifacts.
- Repo-local task systems are allowed; global docs track cross-session outcome/priority, repo-local docs track implementation detail.

## /tmp Cleanup
- Use `bin/tmp-cleanup` for top-level `/tmp` files older than 3 days.
- Install via `scripts/install-tmp-cleanup-cron.sh`.

## Laptop Helpers
- CLI helpers exist for Sebas's laptop via Tailnet SSH-over-TCP.
- Default host: `brag-pipe-fur-kneel.emperor-ratio.ts.net`.
- Default port: `2222`.
- Default key: `~/.ssh/id_ed25519_laptop_agent`.
- Helpers:
  - `laptop-read <remote-path>`: remote cat over SSH.
  - `laptop-run <cmd ...>`: remote command over SSH.
  - `laptop-rsync <src> <dest> [extra args]`: rsync via SSH.
  - `laptop-mount`, `laptop-umount`, `laptop-write`: access/copy flows.
- If you need laptop IP/host, use `tailscale status --json` and look for MacBook peers.
- If task says "files on the laptop", use these helpers instead of manual SSH.

[11 more lines in file. Use offset=121 to continue.]


**Looking for sources**

I need to think about searching for sources on the laptop. The user mentioned resolving doubts before starting, so it might help to ask a few precise questions. I’m also considering inspecting RFC (Request for Comments) documents to help formulate what I need to know. It feels important to get things right for the user. Let’s make sure we clarify everything to ensure we're giving accurate information!


# TCN API-driven machine ads RFC

## Goal
Move Ballbox machine ad/media control from hardcoded repo mappings to API-managed desired state so future changes do not require rebuilding or reinstalling the Android sidecar.

## Reality confirmed on device
- Installed sidecar can sync successfully on Android 7.1.2 once `minSdk` and storage behavior are fixed.
- Correct target root on the machine is `/sdcard/TcnFolder`.
- `ImageScreen/` is the fullscreen standby slot.
- `VideoAndImageAd/` is the smaller top video slot.
- Both folders accept looped video files.
- Current sidecar prune behavior can delete stale files inside managed folders.
- Freshly synced media may require restarting the main vending app or rebooting Android before visible playback updates reliably apply.
- The implementation plan should assume both actions are useful: restart vending app and reboot Android.
- High-resolution/high-fps fullscreen video can decode poorly on the machine; a 2160x3840 60fps test clip played in slow motion for the first seconds.
- A safer fullscreen profile worked better operationally: 30fps with lower decode load. Current compromise test moved from 720x1280 30fps to a higher-quality 1080x1920 30fps version to preserve visual quality while staying below the failing 60fps profile.

## Problem with current MVP
Current backend manifest generation is hardcoded in `lib/machine-ads-manifest.ts`.
That means every content change currently needs a code edit and deploy.
This is too slow for operator use and does not scale to arbitrary file replacement/prune.

## Target state
Ballbox should own a per-machine desired state model.
The sidecar should:
1. wait ~10 seconds after boot before first sync
2. fetch manifest
3. download listed files
4. verify hashes
5. write exact target paths
6. prune stale files inside managed directories
7. continue periodic sync afterward
8. keep a manual operator menu accessible at all times from some discoverable place

Changing content should mean changing Ballbox backend state, not Android code.

## Proposed manifest shape
```json
{
  "machineId": "2601070188",
  "generatedAt": "2026-06-08T00:00:00.000Z",
  "version": "...",
  "restartPolicy": "app",
  "targetRootHint": "/sdcard/TcnFolder",
  "managedDirs": ["ImageScreen", "VideoAndImageAd"],
  "files": [
    {
      "target": "ImageScreen/foo.mp4",
      "url": "https://ballbox.app/machine-assets/.../foo.mp4",
      "sha256": "...",
      "bytes": 123,
      "restartRequired": "app"
    }
  ]
}
```

## Desired backend model
Short term:
- file-backed machine config in repo
- one JSON document per machine
- assets still served from `public/machine-assets/...`

Medium term:
- DB-backed machine asset entries
- admin-authenticated upload and assignment UI/API
- no code edits required for normal operator changes

## Minimal data model
Per machine config:
- `machineId`
- `targetRootHint`
- `managedDirs[]`
- `restartPolicy`
- `entries[]`

Per entry:
- `target`
- `publicPath`
- `restartRequired`
- optional future metadata: `label`, `active`, `slot`, `contentType`

## Rollout plan
### Phase 1
- move hardcoded manifest config into file-backed JSON
- expose `managedDirs` and `targetRootHint` in manifest
- update sidecar default target root to `/sdcard/TcnFolder`
- keep sidecar reinstalls rare

### Phase 2
- sidecar runs automatically after boot with ~10 second delay
- sidecar repeats sync periodically in background
- sidecar keeps a manual operator menu reachable from an accessible entrypoint instead of hiding sync behind install-time flows
- operator menu includes at least:
  - sync now
  - open logs/status
  - restart vending app
  - reboot Android system

### Phase 3
- add admin mutation path in Ballbox backend
- validate target paths against allowed machine directories
- allow add/replace/remove entries per machine
- add upload flow and stored asset references
- optionally track asset history and rollback

## Safety constraints
- prune only inside explicitly managed directories
- never allow arbitrary absolute target paths from user input
- validate machine target prefixes against allowlist
- keep manifest truthful: only list assets that exist and hash correctly
- operator UX must make restart/reboot requirements explicit when runtime cache prevents hot swap
- reboot action is irreversible enough operationally that the UI should make intent obvious and avoid accidental taps

## Current implementation decision
Start with a repo-backed config file because it is the cheapest path from hardcoded code to API-driven desired state.
That gives immediate leverage while keeping migration path open to DB/admin UI.

## Immediate implementation steps
1. add machine config JSON files under repo data directory
2. refactor manifest builder to read config instead of hardcoded map
3. include `managedDirs` and `targetRootHint` in manifest response
4. update Android sidecar default root to `/sdcard/TcnFolder`
5. constrain fullscreen transcode defaults to machine-safe profiles like 24/30fps and lower resolution instead of assuming source originals are decodable in real time
6. add boot receiver / startup path that waits ~10 seconds before first sync
7. add periodic background sync scheduling
8. add persistent operator-accessible menu entry with restart-app and reboot-system actions
9. later add admin write path


**Evaluating project options**

I might need to check if the source code exists on the laptop, but the user has chosen the APK path. It could still be helpful to search for the project. However, given the ambiguity, I should clarify whether I need to modify the decompiled APK or if another app is required. I also need to determine the necessary device access details. So, I think it’s best to ask the user for 2-3 specific items.

questionnaire

Prompt: Dijiste "puede ser app distinta". Si el APK no contiene el código/stack necesario para este RFC, ¿qué hago?

Buscar el proyecto real en la laptop y seguir

Implementarlo en otra app si esa es la correcta funcionalmente

Prompt: ¿Cómo valido en el equipo real?

Prompt: Para entregar APK instalable, si hay que reinstalar o reemplazar la app actual:


APK target: user selected: 1. Parar y consultarte
Acceso equipo: user selected: 4. No sé todavía
Instalación: user selected: 3. Cualquiera sirve

Prompt: Dijiste "puede ser app distinta". Si el APK no contiene el código/stack necesario para este RFC, ¿qué hago?

Prompt: ¿Cómo valido en el equipo real?

Prompt: Para entregar APK instalable, si hay que reinstalar o reemplazar la app actual:


**Inspecting file info**

I'm looking into the file's information and possibly checking the package name. This step seems important for making sure everything is in order and ready for further analysis or processing. I wonder if there's anything specific I'll find that could help clarify what's needed next. Let's keep exploring this to ensure I have all the right details covered!

bash

laptop-run 'python3 - <<"PY"
from pathlib import Path
p=Path("/Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk")
print("exists", p.exists())
print("size", p.stat().st_size if p.exists() else None)
PY'


exists True
size 67289627


**Exploring package inspection options**

I’m considering whether I need to inspect a package with tools like aapt or apkanalyzer. It seems like these tools could help with analyzing the package remotely, but I'm not sure if they’re readily available. I’ll need to look into how I can access them for my task. Let's see what I can find out about these options to help me proceed effectively!

laptop-run 'sh -lc '"'"'for x in aapt apkanalyzer apktool jadx; do command -v "$x" && echo TOOL:$x; done'"'"''


(no output)

Command exited with code 1


**Inspecting APK files**

I need to unpack the APK file and check the AndroidManifest binary, which might involve using Python's Androguard if it's available. Alternatively, I could use some simple commands like `strings` and `grep` to inspect strings in the file. It seems helpful to list classes and packages too, so I might try using `unzip -l` to see what's inside. Let’s see how this unfolds!

laptop-run 'unzip -l "/Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk" | sed -n "1,120p"'


Archive:  /Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk
  Length      Date    Time    Name
---------  ---------- -----   ----
 12472532  06-04-2026 15:02   resources.arsc
     1304  06-04-2026 15:02   res/color-v22/selector_white_555_4dp.xml
     1376  06-04-2026 15:02   res/color-v22/selector_02a7f0_5top.xml
      963  06-04-2026 15:02   res/mipmap-mdpi/xia.png
      909  06-04-2026 15:02   res/mipmap-mdpi/un_you.png
      816  06-04-2026 15:02   res/mipmap-mdpi/shipment_fail.webp
      934  06-04-2026 15:02   res/mipmap-mdpi/shang.png
     1604  06-04-2026 15:02   res/mipmap-mdpi/goods_out_onthing_img.webp
      983  06-04-2026 15:02   res/mipmap-mdpi/you.png
      690  06-04-2026 15:02   res/mipmap-mdpi/wx_face_icon.webp
      941  06-04-2026 15:02   res/mipmap-mdpi/un_xia.png
     4670  06-04-2026 15:02   res/mipmap-mdpi/wx_pay_bg.webp
      700  06-04-2026 15:02   res/mipmap-mdpi/alipay_pay_face.webp
     1018  06-04-2026 15:02   res/mipmap-mdpi/zuo.png
      947  06-04-2026 15:02   res/mipmap-mdpi/un_zuo.png
      904  06-04-2026 15:02   res/mipmap-mdpi/pay_face_logo.webp
      506  06-04-2026 15:02   res/mipmap-mdpi/scan_weixin.webp
      512  06-04-2026 15:02   res/mipmap-mdpi/scan_alipay.webp
      924  06-04-2026 15:02   res/mipmap-mdpi/un_to_left.webp
      460  06-04-2026 15:02   res/mipmap-mdpi/scan_pay.webp
      960  06-04-2026 15:02   res/mipmap-mdpi/un_down.webp
      824  06-04-2026 15:02   res/mipmap-mdpi/up.webp
      907  06-04-2026 15:02   res/mipmap-mdpi/un_shang.png
     1246  06-04-2026 15:02   res/mipmap-mdpi/to_down.webp
      938  06-04-2026 15:02   res/mipmap-mdpi/un_top_placement.webp
     1118  06-04-2026 15:02   res/mipmap-mdpi/bottom_ci.webp
      801  06-04-2026 15:02   res/mipmap-mdpi/ic_launcher.png
      996  06-04-2026 15:02   res/mipmap-mdpi/shipment_success.webp
     1702  06-04-2026 15:02   res/mipmap-mdpi/coke_img_x.webp
     1220  06-04-2026 15:02   res/mipmap-mdpi/to_left.webp
      660  06-04-2026 15:02   res/mipmap-mdpi/qr_icon.webp
      228  06-04-2026 15:02   res/mipmap-mdpi/goods_jiao.webp
      836  06-04-2026 15:02   res/mipmap-mdpi/un_to_right.webp
     1686  06-04-2026 15:02   res/mipmap-mdpi/backgroud_dialog_snake_pay.webp
     1230  06-04-2026 15:02   res/mipmap-mdpi/top_placement.webp
     1158  06-04-2026 15:02   res/mipmap-mdpi/to_right.webp
      820  06-04-2026 15:02   res/mipmap-mdpi/down.webp
     8368  06-04-2026 15:02   res/layout-1820x1080-v22/background_menu_settings_layout_tcn_stand.xml
    12292  06-04-2026 15:02   res/layout-1820x1080-v22/bstand_v2_fragment_debug_high_state_set.xml
    30364  06-04-2026 15:02   res/layout-1820x1080-v22/background_snake_cargo_edit.xml
     5156  06-04-2026 15:02   res/layout-1820x1080-v22/app_wm_product_dialog.xml
    12664  06-04-2026 15:02   res/layout-1820x1080-v22/app_stand_wm_slot_ui_type_fenye.xml
    11852  06-04-2026 15:02   res/layout-1820x1080-v22/app_dialog_pay_wm.xml
    18240  06-04-2026 15:02   res/layout-1820x1080-v22/bgj_activity_slot_v2_edit.xml
    17300  06-04-2026 15:02   res/layout-1820x1080-v22/bstand_v2_fragment_debug_state_set.xml
     3480  06-04-2026 15:02   res/layout-1820x1080-v22/bstand_activity_local_goods_warehouse.xml
    18452  06-04-2026 15:02   res/layout-1820x1080-v22/sales_info_fragment_v2.xml
    12692  06-04-2026 15:02   res/layout-1820x1080-v22/app_stand_wm_slot_ui_type.xml
     8120  06-04-2026 15:02   res/layout-1820x1080-v22/bstand_activity_slot_edit.xml
     8100  06-04-2026 15:02   res/layout-1820x1080-v22/fragment_v2_background_operations_shhf_stock.xml
    12376  06-04-2026 15:02   res/layout-1820x1080-v22/app_dialog_pay_wm_shopcar.xml
    33772  06-04-2026 15:02   res/layout-1820x1080-v22/bstand_activity_slot_v2_edit.xml
    15832  06-04-2026 15:02   res/layout-1820x1080-v22/app_stand_wm_car_slot_ui_type.xml
    15784  06-04-2026 15:02   res/layout-1820x1080-v22/app_stand_wm_car_slot_ui_type_fenye.xml
    17408  06-04-2026 15:02   res/layout-1820x1080-v22/bstand_fragment_version_update_new.xml
    11836  06-04-2026 15:02   res/layout-1820x1080-v22/app_dialog_pay_wm_y.xml
    15224  06-04-2026 15:02   res/layout-1820x1080-v22/bstand_v2_fragment_debug_current_10c_set.xml
     2888  06-04-2026 15:02   res/layout-1366x768/base_dialog.xml
     1644  06-04-2026 15:02   res/layout-1366x768/layout_title.xml
      632  06-04-2026 15:02   res/layout-1366x768/app_tcn_input_keyboard_small.xml
     6880  06-04-2026 15:02   res/layout-1366x768/app_dialog_pay_y.xml
     3504  06-04-2026 15:02   res/layout-1366x768/app_layout_commodity_item_80_goods.xml
     9124  06-04-2026 15:02   res/layout-1366x768/background_menu_settings_layout_tcn_stand.xml
     3948  06-04-2026 15:02   res/layout-1366x768/app_mainact_large_ad_top_and_stby_ad_full_y_new.xml
     2384  06-04-2026 15:02   res/layout-1366x768/app_mainact_large_ad_bottom_and_stby_ad_hf.xml
     4108  06-04-2026 15:02   res/layout-1366x768/app_layout_commodity_item_goods.xml
     1840  06-04-2026 15:02   res/layout-1366x768/error_info_dialog.xml
     2900  06-04-2026 15:02   res/layout-1366x768/fragment_operation_all.xml
     5768  06-04-2026 15:02   res/layout-1366x768/app_set_device_info.xml
     3552  06-04-2026 15:02   res/layout-1366x768/addresser_background_first_four.xml
     1412  06-04-2026 15:02   res/layout-1366x768/app_fragment_help.xml
     1636  06-04-2026 15:02   res/layout-1366x768/app_tcn_input_keyboard.xml
     3568  06-04-2026 15:02   res/layout-1366x768/app_fragment_commodity_selection_full.xml
    71776  06-04-2026 15:02   res/layout-1366x768/other_pay.xml
     2056  06-04-2026 15:02   res/layout-1366x768/update_dialog_item.xml
    22060  06-04-2026 15:02   res/layout-1366x768/fragment_basic_set.xml
     2400  06-04-2026 15:02   res/layout-1366x768/addresser_background_first_three.xml
    12228  06-04-2026 15:02   res/layout-1366x768/bstand_v2_fragment_debug_high_state_set.xml
     3556  06-04-2026 15:02   res/layout-1366x768/date_select_dialog.xml
     1364  06-04-2026 15:02   res/layout-1366x768/fragment_debugging_all.xml
     4224  06-04-2026 15:02   res/layout-1366x768/frist_three_set_wd_dialog.xml
     9228  06-04-2026 15:02   res/layout-1366x768/fragment_version_1004.xml
     2680  06-04-2026 15:02   res/layout-1366x768/app_mainact_large_ad_top_and_stby_ad_full_y.xml
     2824  06-04-2026 15:02   res/layout-1366x768/app_item_skin_bg_adapter.xml
     8104  06-04-2026 15:02   res/layout-1366x768/fragment_development.xml
    48084  06-04-2026 15:02   res/layout-1366x768/fragment_pay_fors.xml
    12200  06-04-2026 15:02   res/layout-1366x768/bstand_v2_fragment_debug_10c_location_set.xml
     6428  06-04-2026 15:02   res/layout-1366x768/bstand_fragment_hint_info.xml
     2984  06-04-2026 15:02   res/layout-1366x768/activity_goods_aisle_add_manage.xml
     6048  06-04-2026 15:02   res/layout-1366x768/app_dialog_result_face_wx.xml
     1644  06-04-2026 15:02   res/layout-1366x768/fragment_operation_add.xml
     1436  06-04-2026 15:02   res/layout-1366x768/date_select_item.xml
     1008  06-04-2026 15:02   res/layout-1366x768/fragment_versions.xml
     2312  06-04-2026 15:02   res/layout-1366x768/dialog_goods_type.xml
     1184  06-04-2026 15:02   res/layout-1366x768/fragment_lazy_loading.xml
     3240  06-04-2026 15:02   res/layout-1366x768/addresser_background_first_one.xml
     2228  06-04-2026 15:02   res/layout-1366x768/language_dialog_layout.xml
     3244  06-04-2026 15:02   res/layout-1366x768/app_layout_commodity_item_20_goods.xml
     1256  06-04-2026 15:02   res/layout-1366x768/status_info_layout_item.xml
     4472  06-04-2026 15:02   res/layout-1366x768/layout_goods_aisle_03_item.xml
    31388  06-04-2026 15:02   res/layout-1366x768/fragment_debugging.xml
     2048  06-04-2026 15:02   res/layout-1366x768/app_mainact_large_ad_bottom_and_stby_ad_full.xml
    12812  06-04-2026 15:02   res/layout-1366x768/app_dialog_pay_face.xml
     2948  06-04-2026 15:02   res/layout-1366x768/hint_dialog.xml
     1252  06-04-2026 15:02   res/layout-1366x768/fragment_debugging_coffee.xml
     2608  06-04-2026 15:02   res/layout-1366x768/face_select_dialog.xml
     3564  06-04-2026 15:02   res/layout-1366x768/app_layout_commodity_item_10_goods.xml
    17192  06-04-2026 15:02   res/layout-1366x768/bstand_v2_fragment_debug_state_set.xml
     1004  06-04-2026 15:02   res/layout-1366x768/cash_item.xml
     3780  06-04-2026 15:02   res/layout-1366x768/app_fragment_commodity_selection.xml
     3336  06-04-2026 15:02   res/layout-1366x768/background_dialog_update_select.xml
     4976  06-04-2026 15:02   res/layout-1366x768/cashpay_mdb_dialog.xml
     2828  06-04-2026 15:02   res/layout-1366x768/login_dialog.xml
     2292  06-04-2026 15:02   res/layout-1366x768/fragment_set_up.xml
    15360  06-04-2026 15:02   res/layout-1366x768/background_information.xml
     1872  06-04-2026 15:02   res/layout-1366x768/app_layout_commodity_item_goods_bottom.xml
     1808  06-04-2026 15:02   res/layout-1366x768/error_info_layout_item.xml


**Exploring main app structures**

I think I should focus on the main app. I need to inspect the classes for the package names. I’m wondering if I should sync any existing resources. It seems like using strings from classes.dex could be useful for this task. I'm trying to figure out how to approach this. Okay, let’s explore the classes and see what I can find!

laptop-run 'python3 - <<"PY"
import zipfile,re
p="/Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk"
with zipfile.ZipFile(p) as z:
    names=[n for n in z.namelist() if n.startswith("classes") and n.endswith(".dex")]
    print("dex", names)
    data=z.read(names[0])
# pull ascii-ish package names
cand=set(re.findall(rb'([A-Za-z][A-Za-z0-9_$/]{8,})', data))
for s in sorted({c.decode("latin1", "ignore") for c in cand if b'/' in c or b'.' in c})[:250]:
    if any(k in s.lower() for k in ["ballbox","tcn","machine","sync","boot","reboot"]):
        print(s)
PY'


/bin/bash: -c: line 9: syntax error near unexpected token `('
/bin/bash: -c: line 9: `cand=set(re.findall(rb'([A-Za-z][A-Za-z0-9_$/]{8,})', data))'

Command exited with code 2


cat <<'SH' >/tmp/inspect_apk_remote.sh
python3 - <<'PY'
import zipfile,re
p='/Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk'
with zipfile.ZipFile(p) as z:
    names=[n for n in z.namelist() if n.startswith('classes') and n.endswith('.dex')]
    print('dex', names)
    data=z.read(names[0])
pat=re.compile(rb'([A-Za-z][A-Za-z0-9_$/\.:-]{8,})')
vals=sorted({m.decode('latin1','ignore') for m in pat.findall(data)})
for s in vals:
    low=s.lower()
    if any(k in low for k in ['ballbox','tcn','machine','sync','boot','reboot']):
        print(s)
PY
SH
laptop-run "bash /tmp/inspect_apk_remote.sh"


bash: /tmp/inspect_apk_remote.sh: No such file or directory

Command exited with code 127


laptop-run "python3 - <<'PY'
import zipfile,re
p='/Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk'
with zipfile.ZipFile(p) as z:
    names=[n for n in z.namelist() if n.startswith('classes') and n.endswith('.dex')]
    print('dex', names)
    data=z.read(names[0])
pat=re.compile(rb'([A-Za-z][A-Za-z0-9_$/\.:-]{8,})')
vals=sorted({m.decode('latin1','ignore') for m in pat.findall(data)})
for s in vals:
    low=s.lower()
    if any(k in low for k in ['ballbox','tcn','machine','sync','boot','reboot']):
        print(s)
PY"


Lcom/tcn/cpt_board/vend/controller/CameraControl$1
Lcom/tcn/cpt_board/vend/controller/CameraControl$1$1
Lcom/tcn/cpt_board/vend/controller/CameraControl$2
Lcom/tcn/cpt_board/vend/controller/CarToAES
Lcom/tcn/cpt_board/vend/controller/CarToAES$ShipSlotInfo
Lcom/tcn/cpt_board/vend/controller/CarToCard
Lcom/tcn/cpt_board/vend/controller/CarToCard$ShipSlotInfo
Lcom/tcn/cpt_board/vend/controller/ConfigInfo
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheck
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheck$1
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheck$IResult
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheck$ReadThread
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheck$ReadThread1
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheck$ReadThread2
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheck$ReadThread3
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckBcc
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckBcc$1
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckBcc$IResult
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew$1
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew$IResult
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew2
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew2$1
Lcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew2$IResult
Lcom/tcn/cpt_board/vend/controller/ErrCodeControl
Lcom/tcn/cpt_board/vend/controller/HandlerThreadCommon
Lcom/tcn/cpt_board/vend/controller/HandlerThreadCommon$1
Lcom/tcn/cpt_board/vend/controller/HandlerThreadServer
Lcom/tcn/cpt_board/vend/controller/HandlerThreadServer$1
Lcom/tcn/cpt_board/vend/controller/HandlerThreadVend
Lcom/tcn/cpt_board/vend/controller/HandlerThreadVend$1
Lcom/tcn/cpt_board/vend/controller/HandlerThreadVend$2
Lcom/tcn/cpt_board/vend/controller/HandlerThreadVend$DBHandler
Lcom/tcn/cpt_board/vend/controller/HandlerThreadVend$PayHandler
Lcom/tcn/cpt_board/vend/controller/MsgSend
Lcom/tcn/cpt_board/vend/controller/OtherDriverAutoCheck
Lcom/tcn/cpt_board/vend/controller/OtherDriverAutoCheck$1
Lcom/tcn/cpt_board/vend/controller/OtherDriverAutoCheck$IResult
Lcom/tcn/cpt_board/vend/controller/PayControl
Lcom/tcn/cpt_board/vend/controller/PayControl$PayReceiveHandler
Lcom/tcn/cpt_board/vend/controller/PriceMegeInfo
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$1
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$10
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$10$1
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$11
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$12
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$13
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$13$1
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$14
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$15
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$16
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$17
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$18
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$19
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$2
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$20
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$21
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$22
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$23
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$24
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$25
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$26
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$27
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$28
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$29
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$3
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$30
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$31
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$32
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$33
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$33$1
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$34
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$35
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$35$1
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$35$2
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$35$3
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$4
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$5
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$6
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$6$1
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$7
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$7$1
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$8
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$9
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$DBListener
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$ModifyPIDListener
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$PayListener
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$ServerListener
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$ShipListener
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$ShipTestListener
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$SlotMarketInfo
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$VendEventListener
Lcom/tcn/cpt_board/vend/controller/TcnBoardIF$VendListener
Lcom/tcn/cpt_board/vend/controller/VendControl
Lcom/tcn/cpt_board/vend/controller/VendControl$1
Lcom/tcn/cpt_board/vend/controller/VendControl$10
Lcom/tcn/cpt_board/vend/controller/VendControl$11
Lcom/tcn/cpt_board/vend/controller/VendControl$12
Lcom/tcn/cpt_board/vend/controller/VendControl$13
Lcom/tcn/cpt_board/vend/controller/VendControl$14
Lcom/tcn/cpt_board/vend/controller/VendControl$15
Lcom/tcn/cpt_board/vend/controller/VendControl$16
Lcom/tcn/cpt_board/vend/controller/VendControl$17
Lcom/tcn/cpt_board/vend/controller/VendControl$18
Lcom/tcn/cpt_board/vend/controller/VendControl$19
Lcom/tcn/cpt_board/vend/controller/VendControl$2
Lcom/tcn/cpt_board/vend/controller/VendControl$20
Lcom/tcn/cpt_board/vend/controller/VendControl$21
Lcom/tcn/cpt_board/vend/controller/VendControl$22
Lcom/tcn/cpt_board/vend/controller/VendControl$23
Lcom/tcn/cpt_board/vend/controller/VendControl$24
Lcom/tcn/cpt_board/vend/controller/VendControl$25
Lcom/tcn/cpt_board/vend/controller/VendControl$26
Lcom/tcn/cpt_board/vend/controller/VendControl$27
Lcom/tcn/cpt_board/vend/controller/VendControl$28
Lcom/tcn/cpt_board/vend/controller/VendControl$29
Lcom/tcn/cpt_board/vend/controller/VendControl$29$1
Lcom/tcn/cpt_board/vend/controller/VendControl$29$2
Lcom/tcn/cpt_board/vend/controller/VendControl$29$3
Lcom/tcn/cpt_board/vend/controller/VendControl$29$4
Lcom/tcn/cpt_board/vend/controller/VendControl$3
Lcom/tcn/cpt_board/vend/controller/VendControl$4
Lcom/tcn/cpt_board/vend/controller/VendControl$5
Lcom/tcn/cpt_board/vend/controller/VendControl$6
Lcom/tcn/cpt_board/vend/controller/VendControl$7
Lcom/tcn/cpt_board/vend/controller/VendControl$8
Lcom/tcn/cpt_board/vend/controller/VendControl$9
Lcom/tcn/cpt_board/vend/controller/VendControl$DBHandler
Lcom/tcn/cpt_board/vend/controller/VendControl$MDBHandler
Lcom/tcn/cpt_board/vend/controller/VendControl$PayHandler
Lcom/tcn/cpt_board/vend/controller/VendControl$TCNFFMPEGHandler
Lcom/tcn/cpt_board/vend/controller/VendControl$VendHandler
Lcom/tcn/cpt_board/vend/controller/VendEventInfo
Lcom/tcn/cpt_board/vend/controller/VendSaveControl
Lcom/tcn/cpt_board/vend/controller/VendServer
Lcom/tcn/cpt_board/vend/controller/VendServer$1
Lcom/tcn/cpt_board/vend/controller/VendServer$ServerHandler
Lcom/tcn/cpt_board/vend/controller/VendServer$ServerHandler$1
Lcom/tcn/cpt_board/vend/controller/VendServerControl
Lcom/tcn/cpt_board/vend/eximport/ExImport
Lcom/tcn/cpt_board/vend/eximport/ExImportFactory
Lcom/tcn/cpt_board/vend/eximport/ExImportImp
Lcom/tcn/cpt_board/vend/eximport/ExImportRecipe
Lcom/tcn/cpt_board/vend/paramconfig/ParamConfigControl
Lcom/tcn/cpt_board/vend/paramconfig/ParamConfigControl$1
Lcom/tcn/cpt_board/vend/provider/TcnVendProvider
Lcom/tcn/cpt_board/vend/provider/TcnVendProvider$1
Lcom/tcn/cpt_board/vend/provider/TcnVendProvider$2
Lcom/tcn/cpt_board/vend/provider/TcnVendProvider$3
Lcom/tcn/cpt_board/vend/provider/TcnVendProvider$4
Lcom/tcn/cpt_board/vend/provider/TcnVendProvider$5
Lcom/tcn/cpt_board/vend/server/EncrypInfo
Lcom/tcn/cpt_board/vend/server/FileServerUtility
Lcom/tcn/cpt_board/vend/server/PayShipBean
Lcom/tcn/cpt_board/vend/server/ServerController
Lcom/tcn/cpt_board/vend/server/ServerController$1
Lcom/tcn/cpt_board/vend/server/ServerController$ServerHandler
Lcom/tcn/cpt_board/vend/server/ServerShipInfo
Lcom/tcn/cpt_board/vend/server/SlotInfo
Lcom/tcn/cpt_board/vend/server/TcnServerUtility
Lcom/tcn/cpt_board/vend/server/UtilEncryp
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$1
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$CopyImageGoods
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$CopyLog
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$ExitImageGoods
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$OutPutExcel
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$ReadDriverEcel
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$ReadEcel
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$ReadEcel$1
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$ReadUsbEcel
Lcom/tcn/cpt_board/vend/usbconfig/ConfigControl$ReadWMEcel
Lcom/tcn/cpt_board/vend/usbconfig/ExcelOutPutUtil
Lcom/tcn/cpt_board/vend/usbconfig/ProductDriverInfo
Lcom/tcn/cpt_board/vend/usbconfig/ProductInfo
Lcom/tcn/cpt_board/vend/usbconfig/ProductWMInfo
Lcom/tcn/cpt_board/vend/usbconfig/UsbConfigBean
Lcom/tcn/cpt_board/vend/usbconfig/UsbConfigChildBean
Lcom/tcn/cpt_board/vend/usbconfig/UsbConfigDataBean
Lcom/tcn/cpt_board/vend/usbconfig/UsbFileUtil
Lcom/tcn/cpt_board/vend/usbconfig/UsbFileUtil$1
Lcom/tcn/cpt_board/vend/usbconfig/UsbFileUtil$2
Lcom/tcn/cpt_board/vend/usbconfig/UsbFileUtil$3
Lcom/tcn/cpt_board/vend/usbconfig/UsbFileUtil$4
Lcom/tcn/cpt_board/visual_inspection/VisualControl
Lcom/tcn/cpt_board/visual_inspection/VisualControl$1
Lcom/tcn/cpt_board/voice/TextSpeaker
Lcom/tcn/cpt_board/voice/TextSpeaker$1
Lcom/tcn/cpt_board/voice/VoiceController
Lcom/tcn/cpt_board/voice/VoiceController$TTSProgressListener
Lcom/tcn/cpt_board/ziqugui/AudioMngHelper
Lcom/tcn/cpt_board/ziqugui/AudioMngHelper$FLAG
Lcom/tcn/cpt_board/ziqugui/AudioMngHelper$TYPE
Lcom/tcn/cpt_board/ziqugui/CameraControl
Lcom/tcn/cpt_board/ziqugui/CameraControl$1
Lcom/tcn/cpt_board/ziqugui/CameraControl$2
Lcom/tcn/cpt_board/ziqugui/CameraControl$3
Lcom/tcn/cpt_board/ziqugui/CameraControl$4
Lcom/tcn/cpt_board/ziqugui/CameraControl$4$1
Lcom/tcn/cpt_board/ziqugui/CameraControl$4$2
Lcom/tcn/cpt_board/ziqugui/CameraControl$5
Lcom/tcn/cpt_board/ziqugui/CameraControl$6
Lcom/tcn/cpt_board/ziqugui/CameraControl$CameraLoop
Lcom/tcn/cpt_board/ziqugui/CameraControl$OnCrameInterFace
Lcom/tcn/cpt_board/ziqugui/CameraPreview
Lcom/tcn/cpt_board/ziqugui/HiKangFileBean
Lcom/tcn/cpt_board/ziqugui/VisualBoxConctrol
Lcom/tcn/cpt_board/ziqugui/VisualBoxConctrol$1
Lcom/tcn/cpt_board/ziqugui/VisualBoxConctrol$CmdInfo
Lcom/tcn/cpt_board/ziqugui/VisualBoxRequest
Lcom/tcn/cpt_board/ziqugui/VisualBoxRequest$1
Lcom/tcn/cpt_board/ziqugui/VisualBoxRequest$OnHttpInterFace
Lcom/tcn/cpt_board/ziqugui/VisualBoxTimerConctrol
Lcom/tcn/cpt_board/ziqugui/VisualBoxTimerConctrol$1
Lcom/tcn/cpt_board/ziqugui/VisualUploadInfo
Lcom/tcn/cpt_board/ziqugui/VisualUploadInfo$CodeBean
Lcom/tcn/cpt_board/ziqugui/ZQControl
Lcom/tcn/cpt_board/ziqugui/ZQControl$1
Lcom/tcn/cpt_board/ziqugui/ZQControl$2
Lcom/tcn/cpt_board/ziqugui/ZQControl$3
Lcom/tcn/cpt_board/ziqugui/ZQControl$4
Lcom/tcn/cpt_board/ziqugui/ZQControl$5
Lcom/tcn/cpt_board/ziqugui/ZQControl$6
Lcom/tcn/cpt_board/ziqugui/ZQControl$7
Lcom/tcn/cpt_board/ziqugui/ZQControl$8
Lcom/tcn/cpt_board/ziqugui/ZQControl$OnCrameInterFace
Lcom/tcn/cpt_board/ziqugui/ZQControl$UpdataPriceTageThread
Lcom/tcn/cpt_board/ziqugui/ZQTrans
Lcom/tcn/cpt_board/ziqugui/ZQTrans$1
Lcom/tcn/cpt_board/ziqugui/ZQTrans$Work
Lcom/tcn/cpt_controller/ActionDEF
Lcom/tcn/cpt_controller/AppVendService
Lcom/tcn/cpt_controller/AppVendService$1
Lcom/tcn/cpt_controller/AppVendService$ServerServiceHandler
Lcom/tcn/cpt_controller/BuildConfig
Lcom/tcn/cpt_controller/ComVendService
Lcom/tcn/cpt_controller/ComVendService$1
Lcom/tcn/cpt_controller/ComVendService$ComServiceHandler
Lcom/tcn/cpt_controller/ComponentController
Lcom/tcn/cpt_controller/ControlBroadcastReceiver
Lcom/tcn/cpt_controller/ControlBroadcastReceiver$1
Lcom/tcn/cpt_controller/ControlBroadcastReceiver$2
Lcom/tcn/cpt_controller/CrashHandlerCom
Lcom/tcn/cpt_controller/CrashHandlerVend
Lcom/tcn/cpt_controller/ImportTrayPreferences
Lcom/tcn/cpt_controller/PayAppUninstallControl
Lcom/tcn/cpt_controller/PayAppUninstallControl$1
Lcom/tcn/cpt_controller/PayAppUninstallControl$2
Lcom/tcn/cpt_controller/PayAppUninstallControl$3
Lcom/tcn/cpt_controller/ProviderControl
Lcom/tcn/cpt_controller/ProviderControl$1
Lcom/tcn/cpt_controller/ProviderControl$2
Lcom/tcn/cpt_controller/R
Lcom/tcn/cpt_controller/R$anim
Lcom/tcn/cpt_controller/R$animator
Lcom/tcn/cpt_controller/R$array
Lcom/tcn/cpt_controller/R$attr
Lcom/tcn/cpt_controller/R$bool
Lcom/tcn/cpt_controller/R$color
Lcom/tcn/cpt_controller/R$dimen
Lcom/tcn/cpt_controller/R$drawable
Lcom/tcn/cpt_controller/R$id
Lcom/tcn/cpt_controller/R$integer
Lcom/tcn/cpt_controller/R$interpolator
Lcom/tcn/cpt_controller/R$layout
Lcom/tcn/cpt_controller/R$plurals
Lcom/tcn/cpt_controller/R$raw
Lcom/tcn/cpt_controller/R$string
Lcom/tcn/cpt_controller/R$style
Lcom/tcn/cpt_controller/R$styleable
Lcom/tcn/cpt_controller/R$xml
Lcom/tcn/cpt_controller/TcnMediaReceiver
Lcom/tcn/cpt_controller/TcnVendIF
Lcom/tcn/cpt_controller/TcnVendIF$1
Lcom/tcn/cpt_controller/TcnVendIF$2
Lcom/tcn/cpt_controller/TcnVendIF$3
Lcom/tcn/cpt_controller/TcnVendIF$4
Lcom/tcn/cpt_controller/TcnVendIF$5
Lcom/tcn/cpt_controller/TcnVendIF$CommunicationListener
Lcom/tcn/cpt_controller/TcnVendIF$DBListener
Lcom/tcn/cpt_controller/TcnVendIF$ModifyPIDListener
Lcom/tcn/cpt_controller/TcnVendIF$ModifyPriceListener
Lcom/tcn/cpt_controller/TcnVendIF$PayListener
Lcom/tcn/cpt_controller/TcnVendIF$SelectSlotNoListener
Lcom/tcn/cpt_controller/TcnVendIF$ServerListener
Lcom/tcn/cpt_controller/TcnVendIF$ShipListener
Lcom/tcn/cpt_controller/TcnVendIF$ShipTestListener
Lcom/tcn/cpt_controller/TcnVendIF$ThirdPartyListener
Lcom/tcn/cpt_controller/TcnVendIF$VendEventListener
Lcom/tcn/cpt_controller/TcnVendIF$VendListener
Lcom/tcn/cpt_controller/VendControl
Lcom/tcn/cpt_controller/VendControl$1
Lcom/tcn/cpt_controller/VendControl$ReceiveMessHandler
Lcom/tcn/cpt_controller/VendControl$VendHandler
Lcom/tcn/cpt_controller/VendControlWork
Lcom/tcn/cpt_controller/VendControlWork$1
Lcom/tcn/cpt_controller/VendControlWork$VendHandler
Lcom/tcn/cpt_controller/VendEventInfo
Lcom/tcn/cpt_controller/WatchDog
Lcom/tcn/cpt_controller/bean/NetWorkBean
Lcom/tcn/cpt_controller/bean/PayResult
Lcom/tcn/cpt_controller/bean/PayResult$PayStatus
Lcom/tcn/cpt_controller/bean/TestShip
Lcom/tcn/cpt_controller/bean/TestShip$Detail
Lcom/tcn/cpt_controller/bean/UploadLogBean
Lcom/tcn/cpt_controller/bean/ViewWMInfo
Lcom/tcn/cpt_controller/bean/ViewWMInfo$DataBean
Lcom/tcn/cpt_controller/bean/WM_View_info
Lcom/tcn/cpt_controller/bean/WM_slot_info
Lcom/tcn/cpt_controller/bean/YYBean
Lcom/tcn/cpt_controller/controller/ConfigControl
Lcom/tcn/cpt_controller/controller/ConfigControl$1
Lcom/tcn/cpt_controller/controller/ConfigControl$ReadWMEcel
Lcom/tcn/cpt_controller/controller/ConfigControl$ReadWMSlotEcel
Lcom/tcn/cpt_controller/controller/FaceHttpRequest
Lcom/tcn/cpt_controller/controller/FaceHttpRequest$1
Lcom/tcn/cpt_controller/controller/FaceHttpRequest$2
Lcom/tcn/cpt_controller/controller/ImageController
Lcom/tcn/cpt_controller/controller/SendMsgUtil
Lcom/tcn/cpt_controller/controller/UIGoodsInfo
Lcom/tcn/cpt_controller/def/TcnCMDDef
Lcom/tcn/cpt_controller/http/EngineCallBack
Lcom/tcn/cpt_controller/http/EngineCallBack$1
Lcom/tcn/cpt_controller/http/HttpUtils
Lcom/tcn/cpt_controller/http/IHttpEngine
Lcom/tcn/cpt_controller/http/LocationUtils
Lcom/tcn/cpt_controller/http/LocationUtils$1
Lcom/tcn/cpt_controller/http/OkHttpEngine
Lcom/tcn/cpt_controller/http/OkHttpEngine$1
Lcom/tcn/cpt_controller/http/OkHttpEngine$2
Lcom/tcn/cpt_controller/http/SSLSocketclient
Lcom/tcn/cpt_controller/http/SSLSocketclient$1
Lcom/tcn/cpt_controller/http/SSLSocketclient$2
Lcom/tcn/cpt_controller/http/model/HttpCallBack
Lcom/tcn/cpt_controller/http/model/MachineInfoBean
Lcom/tcn/cpt_controller/usb/scangun/ScanGunController
Lcom/tcn/cpt_controller/usb/scangun/ScanGunController$1
Lcom/tcn/cpt_controller/usb/scangun/ScanGunKeyEventHelper
Lcom/tcn/cpt_controller/usb/scangun/ScanGunKeyEventHelper$1
Lcom/tcn/cpt_controller/usb/scangun/ScanGunKeyEventHelper$2
Lcom/tcn/cpt_controller/usb/scangun/ScanGunKeyEventHelper$3
Lcom/tcn/cpt_controller/utils/TcnGetDeviceId
Lcom/tcn/cpt_controller/v4/FileOperation
Lcom/tcn/cpt_controller/v4/V4Util
Lcom/tcn/cpt_controller/v4/V4Util$1
Lcom/tcn/cpt_controller/v4/V4Util$2
Lcom/tcn/cpt_drives/ActionDEF
Lcom/tcn/cpt_drives/BuildConfig
Lcom/tcn/cpt_drives/ComponentDrives
Lcom/tcn/cpt_drives/DriveControl/DoorGPIOControl
Lcom/tcn/cpt_drives/DriveControl/DoorGPIOControl$1
Lcom/tcn/cpt_drives/DriveControl/DoorGPIOControl$ReadThread
Lcom/tcn/cpt_drives/DriveControl/DriveControl
Lcom/tcn/cpt_drives/DriveControl/DriveControl$1
Lcom/tcn/cpt_drives/DriveControl/DriveControlCoff
Lcom/tcn/cpt_drives/DriveControl/DriveControlDjs
Lcom/tcn/cpt_drives/DriveControl/DriveControlHanBao
Lcom/tcn/cpt_drives/DriveControl/DriveControlHefan
Lcom/tcn/cpt_drives/DriveControl/DriveControlHfDoub
Lcom/tcn/cpt_drives/DriveControl/DriveControlIceBox
Lcom/tcn/cpt_drives/DriveControl/DriveControlIceb
Lcom/tcn/cpt_drives/DriveControl/DriveControlLattice
Lcom/tcn/cpt_drives/DriveControl/DriveControlLiftZjqh
Lcom/tcn/cpt_drives/DriveControl/DriveControlLifter
Lcom/tcn/cpt_drives/DriveControl/DriveControlLifter$1
Lcom/tcn/cpt_drives/DriveControl/DriveControlLifterRowCol
Lcom/tcn/cpt_drives/DriveControl/DriveControlLifterSx
Lcom/tcn/cpt_drives/DriveControl/DriveControlShaob
Lcom/tcn/cpt_drives/DriveControl/DriveControlYL
Lcom/tcn/cpt_drives/DriveControl/DriveKouhong
Lcom/tcn/cpt_drives/DriveControl/DrivePfRice
Lcom/tcn/cpt_drives/DriveControl/DriveShakeCheck
Lcom/tcn/cpt_drives/DriveControl/DriveSnake
Lcom/tcn/cpt_drives/DriveControl/DriveUtility
Lcom/tcn/cpt_drives/DriveControl/LightBarTCN140602
Lcom/tcn/cpt_drives/DriveControl/aucma/DriveAcm
Lcom/tcn/cpt_drives/DriveControl/base/DriveBase
Lcom/tcn/cpt_drives/DriveControl/base/DriveBase$1
Lcom/tcn/cpt_drives/DriveControl/base/DriveBase$DriveHandler
Lcom/tcn/cpt_drives/DriveControl/base/DriveBase$ThreadDrive
Lcom/tcn/cpt_drives/DriveControl/base/DriveBase0203Bcc
Lcom/tcn/cpt_drives/DriveControl/base/DriveInterface
Lcom/tcn/cpt_drives/DriveControl/base/DriveMediator
Lcom/tcn/cpt_drives/DriveControl/base/DriveSpringBase
Lcom/tcn/cpt_drives/DriveControl/base/DriveStandBase
Lcom/tcn/cpt_drives/DriveControl/basket/DriveControlBasket
Lcom/tcn/cpt_drives/DriveControl/bodycheck/BodyCheck
Lcom/tcn/cpt_drives/DriveControl/bodycheck/GpioBodyCheck
Lcom/tcn/cpt_drives/DriveControl/bodycheck/GpioBodyCheck$1
Lcom/tcn/cpt_drives/DriveControl/cfmkx/DriveCfmKx
Lcom/tcn/cpt_drives/DriveControl/cmx/CmxBBDrive
Lcom/tcn/cpt_drives/DriveControl/cmx/CmxBBDrive$1
Lcom/tcn/cpt_drives/DriveControl/cmx/CmxBBDrive$HeatHandler
Lcom/tcn/cpt_drives/DriveControl/coco/DriveCoCo
Lcom/tcn/cpt_drives/DriveControl/coffee/CoffeePayInfo
Lcom/tcn/cpt_drives/DriveControl/coffee/DriveCoffee
Lcom/tcn/cpt_drives/DriveControl/communication/Utility
Lcom/tcn/cpt_drives/DriveControl/control/BoardGroupControl
Lcom/tcn/cpt_drives/DriveControl/control/CfgLEDInfo
Lcom/tcn/cpt_drives/DriveControl/control/CfgRfgHetInfo
Lcom/tcn/cpt_drives/DriveControl/control/CmdInfo
Lcom/tcn/cpt_drives/DriveControl/control/DataInfo
Lcom/tcn/cpt_drives/DriveControl/control/DriveStandBase
Lcom/tcn/cpt_drives/DriveControl/control/EnShipInfo
Lcom/tcn/cpt_drives/DriveControl/control/IceSlotInfo
Lcom/tcn/cpt_drives/DriveControl/control/MTShipInfo
Lcom/tcn/cpt_drives/DriveControl/control/VendProtoControl
Lcom/tcn/cpt_drives/DriveControl/control/VendProtoControl$1
Lcom/tcn/cpt_drives/DriveControl/control/WriteThread
Lcom/tcn/cpt_drives/DriveControl/data/MsgKey
Lcom/tcn/cpt_drives/DriveControl/data/MsgToSend
Lcom/tcn/cpt_drives/DriveControl/data/MsgToWrite
Lcom/tcn/cpt_drives/DriveControl/data/ProtoCMDDef
Lcom/tcn/cpt_drives/DriveControl/data/TradeInfo
Lcom/tcn/cpt_drives/DriveControl/dex/DexEA3Data
Lcom/tcn/cpt_drives/DriveControl/dex/DriveDex
Lcom/tcn/cpt_drives/DriveControl/dex/DriveDex$1
Lcom/tcn/cpt_drives/DriveControl/dex/DriveDex$ReadThreadDex
Lcom/tcn/cpt_drives/DriveControl/dex/FileSellUtility
Lcom/tcn/cpt_drives/DriveControl/dropcheck/DropCheckConrol
Lcom/tcn/cpt_drives/DriveControl/fdzk/DriveControlFdZk
Lcom/tcn/cpt_drives/DriveControl/fdzp/DriveBaseHefanZp
Lcom/tcn/cpt_drives/DriveControl/fdzp/DriveBaseZp
Lcom/tcn/cpt_drives/DriveControl/fdzp/DriveControlHefanZp
Lcom/tcn/cpt_drives/DriveControl/fdzp/DriveMultipleMicroZp
Lcom/tcn/cpt_drives/DriveControl/fdzp/MultMicroStatus
Lcom/tcn/cpt_drives/DriveControl/fdzp/MultMicroStatusShip
Lcom/tcn/cpt_drives/DriveControl/hwater/DriveHWater
Lcom/tcn/cpt_drives/DriveControl/icec/DriveIcec
Lcom/tcn/cpt_drives/DriveControl/icec/DriveIcec$2
Lcom/tcn/cpt_drives/DriveControl/kimma/DriveKimMa
Lcom/tcn/cpt_drives/DriveControl/kimma/DriveKimMa$1
Lcom/tcn/cpt_drives/DriveControl/kimma/DriveKimMa$DriveHandler
Lcom/tcn/cpt_drives/DriveControl/kimma/DriveKimMa$ThreadDrive
Lcom/tcn/cpt_drives/DriveControl/mbl/DriveControlMBL
Lcom/tcn/cpt_drives/DriveControl/meituan/ActionBean
Lcom/tcn/cpt_drives/DriveControl/meituan/DriveMiTuan
Lcom/tcn/cpt_drives/DriveControl/meituan/DriveMiTuan$1
Lcom/tcn/cpt_drives/DriveControl/meituan/DriveMiTuan0203Bcc
Lcom/tcn/cpt_drives/DriveControl/meituan/DriveMiTuanSpring
Lcom/tcn/cpt_drives/DriveControl/meituan/DriveMiTuanV2
Lcom/tcn/cpt_drives/DriveControl/meituan/DriveMiTuanV2$1
Lcom/tcn/cpt_drives/DriveControl/meituan/MeiTuanProto
Lcom/tcn/cpt_drives/DriveControl/meituan/MiTuanActionHistory
Lcom/tcn/cpt_drives/DriveControl/meituan/SocketInputThread
Lcom/tcn/cpt_drives/DriveControl/meituan/TCPClientSSL
Lcom/tcn/cpt_drives/DriveControl/meituan/modules/Body
Lcom/tcn/cpt_drives/DriveControl/meituan/modules/CMessage
Lcom/tcn/cpt_drives/DriveControl/meituan/modules/LayoutInfo
Lcom/tcn/cpt_drives/DriveControl/meituan/modules/MessageHead
Lcom/tcn/cpt_drives/DriveControl/meituan/modules/MessageType
Lcom/tcn/cpt_drives/DriveControl/meituan/modules/RackStatusBody
Lcom/tcn/cpt_drives/DriveControl/meituan/modules/Stash
Lcom/tcn/cpt_drives/DriveControl/meituan/netty/FutureListener
Lcom/tcn/cpt_drives/DriveControl/meituan/netty/NettyClient
Lcom/tcn/cpt_drives/DriveControl/meituan/netty/NettyClient$1
Lcom/tcn/cpt_drives/DriveControl/meituan/netty/NettyClient$2
Lcom/tcn/cpt_drives/DriveControl/meituan/netty/NettyClient$3
Lcom/tcn/cpt_drives/DriveControl/meituan/netty/NettyListener
Lcom/tcn/cpt_drives/DriveControl/meituan/netty/SslContextUtil
Lcom/tcn/cpt_drives/DriveControl/miq/DriveMiq
Lcom/tcn/cpt_drives/DriveControl/nwobanli/NowBanLiDrive
Lcom/tcn/cpt_drives/DriveControl/nwobanli/XiquHanBaoDrive
Lcom/tcn/cpt_drives/DriveControl/redbd/DriveRedBoard
Lcom/tcn/cpt_drives/DriveControl/stand/DriveBase
Lcom/tcn/cpt_drives/DriveControl/stand/DriveHandBase
Lcom/tcn/cpt_drives/DriveControl/stand/DriveHandBase$1
Lcom/tcn/cpt_drives/DriveControl/stand/DriveUpgradeStand
Lcom/tcn/cpt_drives/DriveControl/stand/StandBase
Lcom/tcn/cpt_drives/DriveControl/stand/StandBase$DriveHandler
Lcom/tcn/cpt_drives/DriveControl/stand/StandBase$ThreadDrive
Lcom/tcn/cpt_drives/DriveControl/stand/StandCmdBase
Lcom/tcn/cpt_drives/DriveControl/stand/StandDrive
Lcom/tcn/cpt_drives/DriveControl/stand5inch/DriveHandle5inch
Lcom/tcn/cpt_drives/DriveControl/stand5inch/PageFlag
Lcom/tcn/cpt_drives/DriveControl/stand5inch/Stand5inchDrive
Lcom/tcn/cpt_drives/DriveControl/stand5inch/Stand5inchDrive$1
Lcom/tcn/cpt_drives/DriveControl/stand5inch/Stand5inchDrive$2
Lcom/tcn/cpt_drives/DriveControl/tyc/DriveTyc
Lcom/tcn/cpt_drives/DriveControl/tyc/DriveTyc$1
Lcom/tcn/cpt_drives/DriveControl/tyc/DriveTyc$DriveHandler
Lcom/tcn/cpt_drives/DriveControl/tyc/DriveTyc$ReadThread
Lcom/tcn/cpt_drives/DriveControl/tyc/DriveTyc$ThreadDrive
Lcom/tcn/cpt_drives/DriveControl/ulits/CoinUtility
Lcom/tcn/cpt_drives/DriveControl/ulits/CoinUtility$CurrencyBean
Lcom/tcn/cpt_drives/DriveControl/ulits/DetailsInfo
Lcom/tcn/cpt_drives/DriveControl/ulits/DetailsInfo$Infos
Lcom/tcn/cpt_drives/DriveControl/ulits/DriveUtility
Lcom/tcn/cpt_drives/DriveControl/upgrade/CrcUtil
Lcom/tcn/cpt_drives/DriveControl/upgrade/DriveUpDate
Lcom/tcn/cpt_drives/DriveControl/upgrade/DriveUpgrade
Lcom/tcn/cpt_drives/DriveControl/wrdgs/DriveControWrdGs
Lcom/tcn/cpt_drives/DriveControl/ysdrive/YsDriveControl
Lcom/tcn/cpt_drives/R
Lcom/tcn/cpt_drives/R$anim
Lcom/tcn/cpt_drives/R$animator
Lcom/tcn/cpt_drives/R$array
Lcom/tcn/cpt_drives/R$attr
Lcom/tcn/cpt_drives/R$bool
Lcom/tcn/cpt_drives/R$color
Lcom/tcn/cpt_drives/R$dimen
Lcom/tcn/cpt_drives/R$drawable
Lcom/tcn/cpt_drives/R$id
Lcom/tcn/cpt_drives/R$integer
Lcom/tcn/cpt_drives/R$interpolator
Lcom/tcn/cpt_drives/R$layout
Lcom/tcn/cpt_drives/R$plurals
Lcom/tcn/cpt_drives/R$raw
Lcom/tcn/cpt_drives/R$string
Lcom/tcn/cpt_drives/R$style
Lcom/tcn/cpt_drives/R$styleable
Lcom/tcn/cpt_drives/R$xml
Lcom/tcn/cpt_drives/Utils/TcnDrivesUtils
Lcom/tcn/cpt_drives/Utils/YsAes256
Lcom/tcn/cpt_drives/Utils/YsAes256$1
Lcom/tcn/cpt_drives/Utils/YsAes256$aes256_context
Lcom/tcn/cpt_drives/constants/DrivesConstants
Lcom/tcn/cpt_drives/constants/TcnProtoDef
Lcom/tcn/cpt_drives/constants/TcnProtoResultDef
Lcom/tcn/cpt_ui_res/R$string
Lcom/tcn/drivers/control/AidlBroadcastReceiver
Lcom/tcn/drivers/control/TcnDrivesAidlControl
Lcom/tcn/logger/TcnLog
Lcom/tcn/sql/bean/icec/IceBean
Lcom/tcn/sql/control/VendEventInfo
Lcom/tcn/sql/sqlite/control/RoomDbControl
Lcom/tcn/sql/sqlite/control/VendDBControl
Lcom/tcn/sql/sqlite/db/YsDatabase
Lcom/tcn/tools/AppToComControl
Lcom/tcn/tools/ComToAppControl
Lcom/tcn/tools/CusOkhttpUtils/Callback
Lcom/tcn/tools/CusOkhttpUtils/OkHttpRequestBuilder
Lcom/tcn/tools/CusOkhttpUtils/OkHttpUtils
Lcom/tcn/tools/CusOkhttpUtils/PostFormBuilder
Lcom/tcn/tools/CusOkhttpUtils/RequestCall
Lcom/tcn/tools/CusOkhttpUtils/StringCallback
Lcom/tcn/tools/CusOkhttpUtils/TrustAllCerts
Lcom/tcn/tools/CusOkhttpUtils/TrustAllHostnameVerifier
Lcom/tcn/tools/PrintReceiptUtils
Lcom/tcn/tools/R$string
Lcom/tcn/tools/TcnUpdateInfo
Lcom/tcn/tools/VendFileControl
Lcom/tcn/tools/WM_Coil_info
Lcom/tcn/tools/bean/AbnormaRecord
Lcom/tcn/tools/bean/AdvertInfo
Lcom/tcn/tools/bean/AliFaceVerInfo
Lcom/tcn/tools/bean/BeepPayInfo
Lcom/tcn/tools/bean/BoradGrounpInfo
Lcom/tcn/tools/bean/BoradGrounpInfo$saleDriverVersion
Lcom/tcn/tools/bean/CFSSXYDControl
Lcom/tcn/tools/bean/CartridgePosition
Lcom/tcn/tools/bean/CfRealTmDBean
Lcom/tcn/tools/bean/CmxYDControl
Lcom/tcn/tools/bean/CoffeeBean
Lcom/tcn/tools/bean/CoffeeBeanDate
Lcom/tcn/tools/bean/CoffeeRecipeInfo
Lcom/tcn/tools/bean/CoffeeWeight
Lcom/tcn/tools/bean/Coil_info
Lcom/tcn/tools/bean/DiscountExtraData
Lcom/tcn/tools/bean/DiscountInfo
Lcom/tcn/tools/bean/DistriOperationConfiBean
Lcom/tcn/tools/bean/DistriOperationConfiBean$Counters
Lcom/tcn/tools/bean/DistriOperationConfiBean$Counters$TempSys
Lcom/tcn/tools/bean/FacePayInfo
Lcom/tcn/tools/bean/FacePayMessageBean
Lcom/tcn/tools/bean/FeedingStatisticsMaterial
Lcom/tcn/tools/bean/GoodsCarBean
Lcom/tcn/tools/bean/Goods_info
Lcom/tcn/tools/bean/GroupInfo
Lcom/tcn/tools/bean/HeatClass
Lcom/tcn/tools/bean/IceInfo
Lcom/tcn/tools/bean/IcecDataBean
Lcom/tcn/tools/bean/IcecShopData
Lcom/tcn/tools/bean/IcecStatusBean
Lcom/tcn/tools/bean/Key_info
Lcom/tcn/tools/bean/MachineConfiBean
Lcom/tcn/tools/bean/MachineConfiBean$Counters
Lcom/tcn/tools/bean/MachineConfiBean$Counters$Extra
Lcom/tcn/tools/bean/MachineConfiBean$DoorAndSnos
Lcom/tcn/tools/bean/MachineConfiBean$Doors
Lcom/tcn/tools/bean/MachineConfiBean$Layers
Lcom/tcn/tools/bean/MachineConfiBean$Snos
Lcom/tcn/tools/bean/MachineConfiBean$Trays
Lcom/tcn/tools/bean/MarketingBean
Lcom/tcn/tools/bean/OnErrorInterFace
Lcom/tcn/tools/bean/OrderTransaction
Lcom/tcn/tools/bean/OrderV4
Lcom/tcn/tools/bean/OssConfigBean
Lcom/tcn/tools/bean/ParameterCargoDriveControlBean
Lcom/tcn/tools/bean/PayBean
Lcom/tcn/tools/bean/PayCashInfoDex
Lcom/tcn/tools/bean/PayShipInfoDex
Lcom/tcn/tools/bean/PayoutBean
Lcom/tcn/tools/bean/PayoutCashInfoDex
Lcom/tcn/tools/bean/PrintItemBean
Lcom/tcn/tools/bean/PrintProductBean
Lcom/tcn/tools/bean/PrintReceiptBean
Lcom/tcn/tools/bean/QRPayBean
Lcom/tcn/tools/bean/QRPayBean$DataBean
Lcom/tcn/tools/bean/ReceiveCashBean
Lcom/tcn/tools/bean/SeleMethodInfo
Lcom/tcn/tools/bean/SellTotalBean
Lcom/tcn/tools/bean/SerialBean
Lcom/tcn/tools/bean/ShipResultVideo
Lcom/tcn/tools/bean/ShipResultVideoItem
Lcom/tcn/tools/bean/ShipSlotInfo
Lcom/tcn/tools/bean/SlotNeedHeat
Lcom/tcn/tools/bean/StandYYControl
Lcom/tcn/tools/bean/StandYYControl$TempData
Lcom/tcn/tools/bean/V2ExtraData
Lcom/tcn/tools/bean/chestnut/ChestnutTime
Lcom/tcn/tools/bean/coff/MaterialInfo
Lcom/tcn/tools/bean/coff/MaterialInfo$BucketInfo
Lcom/tcn/tools/bean/coff/MaterialInfo$CartridgeInfo
Lcom/tcn/tools/bean/coff/MaterialInfo$CupDropperInfo
Lcom/tcn/tools/bean/coff/MaterialInfo$StatusInfo
Lcom/tcn/tools/bean/coff/MaterialInfo$TemperatureInfo
Lcom/tcn/tools/bean/coff/SlotFormulaInfo
Lcom/tcn/tools/bean/coff/SlotFormulaInfo$FormulaInfo
Lcom/tcn/tools/bean/coffee/CoffeeFormulaBean
Lcom/tcn/tools/bean/drive/MessageChestnut
Lcom/tcn/tools/bean/drive/MessageDeviceFromUI
Lcom/tcn/tools/bean/drive/MessageDeviceFromUI2
Lcom/tcn/tools/bean/drive/MessageFromDevice
Lcom/tcn/tools/bean/drive/MessageFromDevice2
Lcom/tcn/tools/bean/drive/MessageFromDrive
Lcom/tcn/tools/bean/drive/MessageFromServer
Lcom/tcn/tools/bean/drive/MessageFromUI
Lcom/tcn/tools/bean/drive/MessageFromUI0203Bcc
Lcom/tcn/tools/bean/drive/MessageFromUI0203Crc
Lcom/tcn/tools/bean/drive/MessageVisualBox
Lcom/tcn/tools/bean/face/BaseInfo
Lcom/tcn/tools/bean/face/FacePayBean
Lcom/tcn/tools/bean/face/FacePayBean$carBean
Lcom/tcn/tools/bean/face/OrderBean
Lcom/tcn/tools/bean/face/OrderBean$SlotsBean
Lcom/tcn/tools/bean/face/RefundBean
Lcom/tcn/tools/bean/face/ShipMentInfo
Lcom/tcn/tools/bean/heat/CoilInfoExtData
Lcom/tcn/tools/bean/heat/FractionalHeating
Lcom/tcn/tools/bean/heat/FractionalUtils
Lcom/tcn/tools/bean/heat/HeatShipData
Lcom/tcn/tools/bean/heat/HeatShipStrategy
Lcom/tcn/tools/bean/heat/MagnetronIsOpen
Lcom/tcn/tools/bean/icec/IceLogoutBean
Lcom/tcn/tools/bean/icec/IceParamBean
Lcom/tcn/tools/bean/icec/IcecParameter
Lcom/tcn/tools/bean/icec/MachineStateBean
Lcom/tcn/tools/bean/icehf/IceHFSlotOtherBean$Data
Lcom/tcn/tools/bean/mdb/MdbInfo
Lcom/tcn/tools/bean/noodle/FormulaBean
Lcom/tcn/tools/bean/noodle/SoupAndWater
Lcom/tcn/tools/bean/noodle/SoupBean
Lcom/tcn/tools/bean/self_pick/CameraParameters
Lcom/tcn/tools/bean/self_pick/DoorSwitchInfo
Lcom/tcn/tools/bean/self_pick/HiKangFileBean
Lcom/tcn/tools/bean/self_pick/MachineConfiguration
Lcom/tcn/tools/bean/self_pick/MessageAliOSS
Lcom/tcn/tools/bean/v4/CommonControl
Lcom/tcn/tools/codec/binary/Base64
Lcom/tcn/tools/codec/digest/HmacUtils
Lcom/tcn/tools/constants/Formatter
Lcom/tcn/tools/constants/MyThread
Lcom/tcn/tools/constants/PayMethod
Lcom/tcn/tools/constants/ResourceCache
Lcom/tcn/tools/constants/TcnConstant
Lcom/tcn/tools/constants/TcnDriveType
Lcom/tcn/tools/constants/TcnSavaData
Lcom/tcn/tools/constants/TcnSavaData$MAIN_Activity
Lcom/tcn/tools/drives/DriveMessage
Lcom/tcn/tools/eventbusbean/AppDataInfo
Lcom/tcn/tools/lang/SkinUtil
Lcom/tcn/tools/pay/CustomConfiguare
Lcom/tcn/tools/pay/HttpPayBase
Lcom/tcn/tools/pay/OnHttpResult
Lcom/tcn/tools/pay/OrderInfo
Lcom/tcn/tools/pay/PayBeanMsg
Lcom/tcn/tools/pay/union_pay/UnionPayReceiveBean
Lcom/tcn/tools/sign/AES_Helper
Lcom/tcn/tools/sign/CrcUtil
Lcom/tcn/tools/sign/DigestUtils
Lcom/tcn/tools/sign/Encrypt3DESUtils
Lcom/tcn/tools/sign/SM3Digest
Lcom/tcn/tools/sign/rsa/RSA
Lcom/tcn/tools/sign/rsa/SignUtil
Lcom/tcn/tools/utils/AliNewAndroidSDK
Lcom/tcn/tools/utils/AppUtils
Lcom/tcn/tools/utils/Base64Utils
Lcom/tcn/tools/utils/BusinessJudgeUtil
Lcom/tcn/tools/utils/CoffeeRepleniNewShment
Lcom/tcn/tools/utils/CoffeeRepleniNewShment$BoxNameBean
Lcom/tcn/tools/utils/CoffeeRepleniShment
Lcom/tcn/tools/utils/CoffeeRepleniShment$BoxNameBean
Lcom/tcn/tools/utils/CoffeeType
Lcom/tcn/tools/utils/CoffeeUtils
Lcom/tcn/tools/utils/CoilInfoUtils
Lcom/tcn/tools/utils/DataUtils
Lcom/tcn/tools/utils/DingChangAndroidSDK
Lcom/tcn/tools/utils/ExcelUtils
Lcom/tcn/tools/utils/ExecutorManager
Lcom/tcn/tools/utils/FaultManager
Lcom/tcn/tools/utils/FileMdbUtility
Lcom/tcn/tools/utils/FileServerUtility
Lcom/tcn/tools/utils/FileUtils
Lcom/tcn/tools/utils/GpioUtils
Lcom/tcn/tools/utils/MD5
Lcom/tcn/tools/utils/NumtoUs
Lcom/tcn/tools/utils/PizzaOssUtil
Lcom/tcn/tools/utils/PlatformUtils
Lcom/tcn/tools/utils/QrCode
Lcom/tcn/tools/utils/SHAUtil
Lcom/tcn/tools/utils/SendMsgUtil
Lcom/tcn/tools/utils/ShipTestBean
Lcom/tcn/tools/utils/SystemInfo
Lcom/tcn/tools/utils/TCNThreadTimer
Lcom/tcn/tools/utils/TCNThreadTimer$OnThreadTickListener
Lcom/tcn/tools/utils/TcnUpdateApp
Lcom/tcn/tools/utils/TcnUpdateApp$AppDownloadListener
Lcom/tcn/tools/utils/TcnUpdateApp$OnDownloadListener
Lcom/tcn/tools/utils/TcnUtility
Lcom/tcn/tools/utils/TempAdjustUtils
Lcom/tcn/tools/utils/ThreadPoolManager
Lcom/tcn/tools/utils/TiemCalculationUtils
Lcom/tcn/tools/utils/Utils
Lcom/tcn/tools/utils/WifiShareConctrol
Lcom/tcn/tools/utils/fileUtil/TcnBoxLogUtil
Lcom/tcn/tools/utils/positioning/BaseStationPositioning
Lcom/tcn/tools/ysConfig/JsonUitl
Lcom/tcn/tools/ysConfig/TcnCommon
Lcom/tcn/tools/ysConfig/TcnShareUseData
Lcom/tcn/tools/ysConfig/TcnShareUseSdcardData
Lcom/tcn/vending/aidl/IMConnectionControl
Lcom/tcn/vending/control/TcnVendingAidlControl
LightBarTCN140602
LightBarTCN140602.java
Lio/netty/bootstrap/AbstractBootstrap
Lio/netty/bootstrap/Bootstrap
Lio/opentelemetry/sdk/metrics/internal/state/DefaultSynchronousMetricStorage$AggregatorHolder
Ljava/lang/VirtualMachineError
Ljava/util/concurrent/SynchronousQueue
LockMachineLastShipFailSlotNo:
Ltech/beepbeep/beep_commons/MachineState
MACHINE_INFO_ROLLBACK_PATH
MACHINE_INPUT
MACHINE_ORDER_ITEM_FAIL
MACHINE_ORDER_ITEM_SUCCESS
MACHINE_QRCODE
MACHINE_TYPE_5INCH
MACHINE_TYPE_COFFEE_CHEAP
MACHINE_TYPE_DMJ
MACHINE_TYPE_FREEZ_SIDE_DELIVERY
MACHINE_TYPE_HEX_09
MACHINE_TYPE_HEX_11
MACHINE_TYPE_HEX_11_AND_09
MACHINE_TYPE_LIFT_COOL_5G
MACHINE_TYPE_NONE
MACHINE_TYPE_NONE_RFG
MACHINE_TYPE_RFG
MACHINE_TYPE_SNAKE
MACHINE_TYPE_SPRING
MACHINE_TYPE_STEAMEDBUNS
MLcom/tcn/cpt_board/board/device/temp/TempController2$CheckTempControlHandler
MLcom/tcn/cpt_board/pos/union_scan_b2c/UnionSweepHttpPayRequest$TrustAllCerts
MLcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew2$CommunicationHandler1
MLcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew2$CommunicationHandler2
MLcom/tcn/cpt_board/vend/controller/DriverAutoCheckNew2$CommunicationHandler3
MLcom/tcn/cpt_board/vend/controller/HandlerThreadServer$TcnPhoneStateListener
MLcom/tcn/cpt_board/vend/controller/HandlerThreadVend$TCNCommunicationHandler
MLcom/tcn/cpt_board/vend/controller/OtherDriverAutoCheck$CommunicationHandler
MLcom/tcn/cpt_drives/DriveControl/stand5inch/Stand5inchDriveCmdBase$MoneyBean
MLio/opentelemetry/sdk/metrics/internal/state/DefaultSynchronousMetricStorage
Machine.txt
Machine4.txt
MachineCode
MachineConfig/Machine_Config.xls
MachineData
MachineData/Local
MachineData/Server
MachineData/Server/GzxxUpload.txt
MachineData/Server/Machine.txt
MachineData/Server/Machine4.txt
MachineData/Server/PayCashInfoUpload.txt
MachineData/Server/PayShipInfoUpload.txt
MachineData/db
MachineID
MachineID:
MachineIcon
MachineInfo.json
MachineInfoBean.java
MachineKey
MachineKey:
MachineType
NLcom/tcn/cpt_board/board/device/power/PowerController$CheckTempControlHandler
NLcom/tcn/cpt_board/otherpay/ccbpay/CCBHttpPayRequest$TrustAllHostnameVerifier
NLcom/tcn/cpt_board/update/service/UpdateManagerService$UpdateDownloadListener
NLcom/tcn/cpt_drives/DriveControl/control/VendProtoControl$AnalyseDataListener
NLcom/tcn/cpt_drives/DriveControl/control/VendProtoControl$ThreadCommunication
NLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive
OLcom/tcn/cpt_board/otherpay/gopay/GoPayHttpPayRequest$TrustAllHostnameVerifier
OLcom/tcn/cpt_board/otherpay/ksher/KsherHttpPayRequest$TrustAllHostnameVerifier
OLcom/tcn/cpt_board/otherpay/vnPay/VnPayHttpPayRequest$TrustAllHostnameVerifier
OLcom/tcn/cpt_drives/DriveControl/communication/communication8c/Communication8C
OLcom/tcn/cpt_drives/DriveControl/control/VendProtoControl$CommunicationHandler
OLcom/tcn/cpt_drives/DriveControl/control/VendProtoControl$MainBaudrateListener
OLio/opentelemetry/sdk/metrics/internal/state/DefaultSynchronousMetricStorage$1
Ohttp://tfs.android.tcnvmms.com:4103/Android/YsService/update.xml/com.ys.service
OnBalanceTcnCard
OnGetMachineData
OnMachineQrCodeGenerate
OnQueryMachineInfo
OnShipWithTcnCard
OnTcnCardReverse
PLcom/tcn/cpt_board/otherpay/danapay/DANAHttpPayRequest$TrustAllHostnameVerifier
PLcom/tcn/cpt_board/ziqugui/third_party_visual_service_provider/HikangController
PLcom/tcn/cpt_controller/usb/scangun/ScanGunKeyEventHelper$OnScanSuccessListener
PLcom/tcn/cpt_drives/DriveControl/control/VendProtoControl$ThreadCommunication$1
PLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$1
PLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$2
PLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$3
PLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$4
PLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$5
PLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$6
PaperMoneyMachineType
QLcom/tcn/cpt_drives/DriveControl/communication/communication8c/Communication8C$1
QLcom/tcn/cpt_drives/DriveControl/communication/communication8c/Communication8C$2
QLcom/tcn/cpt_drives/DriveControl/stand5inch/Stand5inchDrive$CommunicationHandler
QLio/opentelemetry/sdk/metrics/InstrumentBuilder$SynchronousInstrumentConstructor
QR_CODE_MACHINE_OFFLINE
REBOOT_DEVICE
REBOOT_NUM_WX
REMOUT_AD_SYNC
REMOUT_POLL_GETMACHINE_DATA
REQ_SYNC_SLOT_GOODS
RLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$BuyerBean
RLcom/tcn/cpt_board/pos/union_scan_code_C_to_B/UnionAppScanController$UnionHandler
RebootCountDisconnectServer:
SEND_MACHINE_AMOUNT
SEND_MACHINE_FAULTS
SERVER_DOWNLOAD_MACHINE
SERVER_TCNCARD
SET_AIDL_MACHINE_INFO
SHIPMENT_PAYTYPE_TCNCARD_OFFLINE
SHIPMENT_PAYTYPE_TCNCARD_ONLINE
SHIP_TYPE_PAY_TCNCARD
SLcom/tcn/cpt_board/otherpay/gteaweb/GateWayHttpPayRequest$TrustAllHostnameVerifier
SLcom/tcn/cpt_board/pos/union_scan_code_C_to_B/UnionScanController$QueryTradeThread
SV_CMD_ASK_SERVER_MACHINE_CONFIGURATION
SV_CMD_LOCK_MACHINE_FAULTS
SV_CMD_MACHINE_ID
SV_CMD_REPORT_MACHINE_CONFIGURATION
SV_CMD_UNLOCK_MACHINE_FAULTS
SV_RCV_MACHINE_ACTION
SwitchMap$com$tcn$cpt_board$macaupay$MacauECRController$States
SynchronousInstrumentConstructor
SynchronousMetricStorage.java
TCN171111-1_slot
TCNBoxLog
TCNCommunicationHandler
TCNDEVICE
TCNFFMPEGHandler
TCNIPCamerHandler
TCN_ADTYPE
TCN_CONFIG
TCN_CONFIG_DEX
TCN_CONFIG_FILE_2004
TCN_CONFIG_FILE_2006
TCN_CONFIG_FILE_CAMER_PARAMETER
TCN_CONFIG_FILE_CFSSX
TCN_CONFIG_FILE_CMX_LED
TCN_CONFIG_FILE_GET_PAY_ICON_TITLE
TCN_CONFIG_FILE_MACHINE_CONFIGURATION
TCN_CONFIG_FILE_STAND
TCN_CONFIG_FILE_TMEP_STAND
TCN_CONFIG_PATH_PAY_ICON
TCN_DEVICES_FILE_NAME
TCN_DriveInfo.xls
TCN_product.xls
Tcn.action.config.json
Tcn.action.config.json.feed.back
Tcn.action.drives.start
TcnBoardIF
TcnBoardIF.getInstance
TcnBoardIF.java
TcnCMDDef.java
TcnConstantLift.java
TcnDBDef.java
TcnDBResultDef.java
TcnDeviceControl
TcnDeviceControl.java
TcnDeviceControl2
TcnDeviceControl2.java
TcnDriveCmdType.CMD_QUERY_STATUS---
TcnDrivesConstant.BOARD_LIFT_HEFAN_DOUB
TcnDrivesConstant.BOARD_STAND_BOARD
TcnDrivesUtils.java
TcnFolder
TcnFolder/Coffee/RepleniShment.txt
TcnFolder/ImageBackground
TcnFolder/ImageHelp
TcnFolder/ImagePay
TcnFolder/ImageScreen
TcnFolder/MiTuan/
TcnFolder/Offline_key.pem
TcnFolder/VideoAndImageAd
TcnFolder/ZiQuGui/
TcnFolder/online_key.pem
TcnFolder/payment/
TcnFolder/tcn_wm_product.xls
TcnFutureListener
TcnGetDeviceId.java
TcnHttp.db
TcnMDBDef.java
TcnMDBResultDef.java
TcnMediaReceiver
TcnMediaReceiver.java
TcnNettyListener
TcnPayDef.java
TcnPayResultDef.java
TcnPhoneStateListener
TcnPowerDeviceControl
TcnPowerDeviceControl.java
TcnPriceTage
TcnProtoControl
TcnProtoDef.java
TcnProtoResultDef.java
TcnSerHandThread
TcnServerUtility.java
TcnVendCMDDef.java
TcnVendDef.java
TcnVendHandThread
TcnVendIF
TcnVendIF.java
TcnVendProvider
TcnVendProvider.java
TcnVendResultDef.java
TcnVending
TcnVending.apk
TcnVideo/
UPDATE_APKNAME_TCN_VENDING
UPDATE_APKURL_TCN_VENDING
USE_TCN_OR_CUSTOMER_IP
V4_MACHINE_ID
VEND_MACHINE_INFO
VLcom/tcn/cpt_board/otherpay/danapay/DaNaCodeInfo$ResponseBean$BodyBean$ResultInfoBean
VLcom/tcn/cpt_board/pos/union_scan_code_C_to_B/UnionAppScanController$QueryTradeThread
VLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$My1Task
VLcom/tcn/cpt_drives/DriveControl/self_picking_cabinet/SelfPickingCabinetDrive$My2Task
WLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$ResultInfoBean
WLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$TimeDetailBean
WLcom/tcn/cpt_board/pos/unionpay_qrcode/sdk/BaseHttpSSLSocketFactory$MyX509TrustManager
XLcom/tcn/cpt_board/board/device/epricetag/EPriceTagController$EPriceTagControllerHolder
XLcom/tcn/cpt_board/pos/union_scan_b2c/UnionSweepHttpPayRequest$TrustAllHostnameVerifier
YLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean
YLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$PaymentViewsBean
YLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$StatusDetailBean
action.tcn.UPDATE.SERVICE
alipayplus/acquiring/refund/syncRefund.htm
api/MachinePaymentIcon/GetMachinePaymentIcon
api/MachinePaymentIcon/SetDistributionRecord
app_machine_memory
app_machine_storage
background_ChoosePOSmachine
background_Ice_cream_machine_mode_start
background_addressingmachine_settings
background_card_machine
background_clean_lock_machine
background_coff_clean_machine
background_coffee_machine_reset
background_coffee_machinetest
background_coin_machine
background_drive_query_machine
background_falling_glass_machine
background_goodcode_reboot_device
background_ice_machine_setting
background_icec_lock_machine
background_icec_machine_start
background_info_reboot_time
background_lock_machine
background_machine_card_fail_balance
background_machine_card_fail_time
background_machine_cargo_positioning
background_machine_control_to_bg
background_machine_control_to_select_pay
background_machine_dragcabinet_num
background_machine_drink_num
background_machine_food_num
background_machine_full_screen
background_machine_id
background_machine_id_tip
background_machine_no
background_machine_pizza_hint
background_machine_pizza_hint1
background_machine_pizza_hint2
background_machine_pizza_hint3
background_machine_pizza_hint4
background_machine_reboot
background_machine_reboot_regularly
background_machine_screen_protection
background_machine_select_type
background_machine_show_shopping
background_machine_type
background_machine_useprinter
background_machine_voice_prompt
background_machinenumber
background_paper_machine
background_reboot_now
background_spring_query_machine_version
background_switching_machine_setting
background_tcn_add
background_tcn_delete
background_tip_reboot_device
background_tip_reboot_device_poff
base_tcn_log
basket_board_reboot
bcoffee_machine_door
bcoffee_machine_open_door
bcomm_machine_id
bind_machine
board_lock_machine_mode1
board_lock_machine_mode2
board_lock_machine_mode3
board_lock_machine_mode4
board_tcn_vending
board_tip_machine_locked
boot_time
bootstrap
bstand_please_wait_for_machine_login
bstand_setting_finish_reboot
bstand_sync_success
buildDoubleAsynchronousInstrument
buildLongAsynchronousInstrument
buildSynchronousInstrument
callAsync
checkErrCodeHeatMachine
clearing_machine_faults
com.android.action.REBOOT
com.box.intent.OPENAPI_REBOOT
com.fourfaith.reboot
com.tcn.cpt_board
com.tcn.cpt_board.sale.DBManager
com.tcn.cpt_controller
com.tcn.cpt_drives
com.tcn.drivers
com.tcn.pay
com.tcn.tcnstand
com.tcn.vend
com.tcn.vending
com.tcn.vending.MainAct
com.tcn.vending.fileprovider
com.tcn.watchdog.feed
com.tcn.watchdog.set_param
com.tcn.watchdog.start
com.tcn.watchdog.stop
complete_machine_stu
dana.acquiring.refund.syncRefund
deleteMachineData
deleteTcnLog
downLoadMachineID
electric_machinery
eventAsync
gLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean$PayAmountBean
getAdMachineID
getBeforeRebootTime
getDisplayingMachineId
getDownLoadMachineIDCount
getDownLoadMachineIDMessage
getLockMachineLastShipFailSlotNoInfo
getMachineCode
getMachineGroupInfo
getMachineGroupInfo5inchFirst
getMachineGroupListAll
getMachineGroupListLattice
getMachineGroupListSpring
getMachineGrpId
getMachineGrpInfo
getMachineGrpInfoList
getMachineID
getMachineID:
getMachineIcon
getMachineIndex
getMachineInfo
getMachineInfo---
getMachineMode
getMachineOnLine
getMachineQrCode
getMachineSelf_test
getMachineType
getMachined
getPermMachineId
getRebootCountDisconnectServer
getRebootTime
getRebootTime:
getSaveMachineInfo
getSelectSlotNoJudgeLockMachineErrMsg
getServerTcnIpAdress
getTcnDataType
getTcnPayBasePayType
getTempMachineIndex
hLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean$VoidAmountBean
hasBasketMachine
hasCocoMachine
hasCoffMachine
hasFDZKMachine
hasHanBaoMachine
hasIceBoxMachine
hasIceMachine
hasKimaMachine
hasLatMachine
hasLiftDjsMachine
hasLiftHefanCfmKxMachine
hasLiftHefanDoubMachine
hasLiftHefanMachine
hasLiftHefanZpMachine
hasLiftMachine
hasLiftPfRiceMachine
hasLiftPfYlTHMachine
hasLiftShaobMachine
hasLiftSxMachine
hasLiftWrsdbMachine
hasLiftZjqhMachine
hasMBlMachine
hasMachine
hasRedBMachine
hasSnakeMachine
hasSprMachine
hasStandBoardJSMachine
hasStandBoardMachine
hasWrdGsMachine
hasYsBoardMachine
http://newapi.zhihuishitang.net/gateway/openApi/user/V2/sync/get
http://tfs.android.tcnvmms.com:4103/Android/YsService/update.xml
https://WWW.TCNVMMS.COM/A
iLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean$OrderAmountBean
iMachineBoardType:
iRebootTime:
initTcnShareData
isAidlMachineType
isCanUseByMachineIndex
isCanUseByMachineIndex485
isConfigSyncDataStart
isFirstMachineSring
isFolderHasVaildMachineID
isLockMachine
isLockMachineErrCode
isMachineLocked
isNotHotMachine
isTcnGoodsImgInLocalServerAddress
isTcnImage
isTcnImageWithGif
isTcnServerAddress
isTcnServerShip
isTcnVideo
isTcnVideoOrImage
isUSBConfigCannotReboot
isYsNNMachine
is_the_coin_machine_connected
jLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean$ChargeAmountBean
jLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean$RefundAmountBean
kLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean$ConfirmAmountBean
lLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$PaymentViewsBean$PayOptionInfosBean
lambda$buildDoubleAsynchronousInstrument$0
lambda$buildLongAsynchronousInstrument$1
lambda$collect$0$AsynchronousMetricStorage
lambda$collect$1$AsynchronousMetricStorage
lambda$collect$1$DefaultSynchronousMetricStorage
lambda$collect$2$AsynchronousMetricStorage
lastMachineState
logs/machines/
mLio/opentelemetry/sdk/metrics/internal/state/-$$Lambda$AsynchronousMetricStorage$StSM1fIr9J-fVxhqCF5J8mZ7dRo
mLio/opentelemetry/sdk/metrics/internal/state/-$$Lambda$AsynchronousMetricStorage$bJ-PE8BpSEioq2SGoPSJbyCoVxU
mLio/opentelemetry/sdk/metrics/internal/state/-$$Lambda$AsynchronousMetricStorage$oPRiEgYRDdj7_RWPwYDDYnkFbi0
mMachineConfiguration
mMachineId
mTcnFutureListener
mTcnNettyListener
m_bHaveMachineID
m_bIsConfigSyncDataStart
m_bIsTcnServerShip
m_iMachineType
m_iMachineType:
m_iTempMachineIndex
m_iTempMachineIndex:
m_isMachineConnect
m_machineId
m_machineType
m_strMachineID
m_strMachineID:
machineAction
machineAction5Inch
machineCounterNo
machineDoorNo
machineGravityNo
machineID
machineID:
machineId
machineId:
machineIndex
machineInfo:
machineMode
machineType
machineTypeHex:
machine_grp_id
machine_id
machine_not_on_sale
machinestatus:
migrateTcnConfig2MMKV
mnt/sdcard/TcnLog
mnt/sdcard/YsConfig/TcnPriceTage/PriceTage
motor_board_reboot
nLcom/tcn/cpt_board/otherpay/danapay/DanaQueryInfo$ResponseBean$BodyBean$AmountDetailBean$ChargebackAmountBean
need_machine_learning
new_lift_machine_busy
onEventAsync
onQueryMachineStatus
open_fenye_need_reboot
permMachineId
please_select_boot_time
query_machine_running_status_command
reMachineSlefTest
rebootDevice
rebootDevice.
rebootIPCamer1
rebootIPCamer2
rebootIPCamer3
rebootIPCamer4
rebootNetWork
rebootTime
rebooting
registMachineId
registerSynchronousMetricStorage
reqAidlMachineInfo
reqCleanMachine
reqMachineInfo
reqMachineSelfTest
reqMachineSelf_test
reqQueryMachineInfo
reqQueryMachineStatus
reqSetMachineId
reqSyncSlotGoods
rollback/Machine_Config_Rollback_Novel.json
rollback/Machine_Config_Rollback_Old.json
sLio/opentelemetry/sdk/metrics/internal/state/-$$Lambda$DefaultSynchronousMetricStorage$_sSSTHh77R9_wur3eBSFwA0rnGI
sLio/opentelemetry/sdk/metrics/internal/state/-$$Lambda$DefaultSynchronousMetricStorage$epa0CMKrPxX8PkGrtRgHgXR-J4Q
sMachineID:
saveMachineImageInfo
saveMachineInfo
sdcard/Tcnmvt
sdcard/Tcnmvt/
sendAidlMachineInfo
sendMachineInfo
sendMachineMessage
sendQueryMachineInfo
sendQueryMachineStatusCmd
setAndShowLockMachineErrCodeMsg
setBeforeRebootTime
setConfigSyncDataStart
setDownLoadMachineIDCount
setLockMachineErrCodeMsg
setLockMachineLastShipFailSlotNoInfo
setMachineFailure
setMachineGrpId
setMachineHeartState
setMachineID
setMachineIcon
setMachineInfo
setMachineModel
setMachineOnLine
setMachineStates
setMachineTemp
setMachineType
setMachine_id
setPermMachineId
setRebootCountDisconnectServer
setRebootTime
setTcnDataType
setTcnServerShip
setUSBConfigCannotReboot
shipCmdTcnCard
shipWithTcnCard
showLockMachineErrCodeMsg
sql_tcn_coffee
sql_tcn_vending
strMachineNo
strMachineNo:
sync/openApi/user/V2/getDetail
syncAdvertByName
syncFlash
syncFolderContent
syncFused
syncSlotGoods
synchronizedonEventAsync
tcn---APP_RECEIVE_SELECT_GOODS:
tcn---AppService
tcn---ComVendService
tcn---ImportTrayPreferences
tcn---initialize
tcn---what:
tcn---writeData
tcn--MyApplication
tcn--checkUpdate
tcn--downloadFile
tcn--initCurVersion
tcn--startApp
tcn--writeFile2Disk
tcn-drives-
tcnConfig
tcnConfig:
tcnThreadTimer
tcn_config_file
tcn_config_file:
tcnpay_set01
tcnpay_set02
tcnpay_text
tcnvmms.com
tst.tcnvmms.com
ui_base_menu_vending_machine_production
ui_base_menu_vending_machine_set
updateMachineInput
updateMachineState
whether_study_five_height_machine
whether_study_four_height_machine
whether_study_height_machine
whether_study_one_height_machine
whether_study_seven_height_machine
whether_study_six_height_machine
whether_study_three_height_machine
whether_study_two_height_machine
whether_study_whole_machine
www.tcnvmms.com

[Showing lines 789-2118 of 2118 (50.0KB limit). Full output: /tmp/pi-bash-5b41298c2a55423e.log]


Dudas resueltas hasta acá:

- Ese APK sí parece ser la app principal TCN, no el sidecar.
- Tiene señales claras de ads/media en `TcnFolder`, `ImageScreen`, `VideoAndImageAd`, reboot, sync.
- Pero hay 2 bloqueos reales:

1. **No tengo source/build project**
   - Solo APK.
   - Se puede intentar vía decompile/patch/rebuild.
   - Mucho más frágil que tocar fuente real.

2. **Validación en equipo no está definida**
   - Dijiste que el equipo existe.
   - Pero no sabemos si tengo `adb` USB/red o si la validación será manual.

Antes de arrancar, elegí una:

1. **Seguir con APK decompilada**
   - Más riesgo.
   - Si pega, entrego APK recompilada.

2. **Buscar source real en la laptop**
   - Menos riesgo.
   - Si no lo encuentro, paro y te digo.

3. **Parar acá**
   - Hasta que me pases source o acceso al equipo.

Mi recomendación: **2**.
Si querés igual modo bruto con APK, decí: **“seguí con la APK”**.


no tengo codigo fuente asiq ue va a ser por decompile
la instalo por usb, no aclare


**Planning tool usage**

I've clarified what needs to be done, and I think it's important to proceed. I need to use a to-do list, and maybe I should inspect what's available locally for tools like apktool or jadx. Should I install them? It might be good to check memory, but then again, it doesn’t seem necessary. I think I can just go directly to the next step!

todo

Patch decompiled TCN APK for Ballbox sync RFC

Decompile main TCN APK from laptop, inspect ad/media and settings entrypoints, implement manual sync/restart/reboot UI plus boot-delay and periodic sync if feasible, rebuild APK, and prepare USB-installable artifact. Stop if decompiled APK proves wrong target or patching is not viable.


Created #1: Patch decompiled TCN APK for Ballbox sync RFC (pending)


Updated #1 (pending → in_progress)


bash

command -v apktool || true; command -v jadx || true; command -v java || true; command -v apksigner || true; command -v uber-apk-signer || true; command -v adb || true

laptop-run 'command -v adb || true; command -v java || true; command -v apktool || true; command -v apksigner || true'


/usr/bin/apktool
/usr/bin/java
/usr/bin/apksigner


mkdir -p /home/sebas/work/tasks/T-001-tcn-apk && laptop-rsync '/Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk' '/home/sebas/work/tasks/T-001-tcn-apk/'


sending incremental file list
rsync: [sender] change_dir "/Users/sebas/Downloads" failed: No such file or directory (2)

sent 19 bytes  received 12 bytes  62.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.4.1]

Command exited with code 23


type laptop-rsync; type laptop-read; type laptop-run


laptop-rsync is /home/sebas/pi-config/bin/laptop-rsync
laptop-read is /home/sebas/pi-config/bin/laptop-read
laptop-run is /home/sebas/pi-config/bin/laptop-run


#!/usr/bin/env bash
set -euo pipefail
host="${LAPTOP_HOST:-brag-pipe-fur-kneel.emperor-ratio.ts.net}"
port="${LAPTOP_PORT:-2222}"
key="${LAPTOP_SSH_KEY:-$HOME/.ssh/id_ed25519_laptop_agent}"
ssh_cmd=(ssh -p "$port" -o BatchMode=yes -o IdentitiesOnly=yes)
if [[ -f "$key" ]]; then
  ssh_cmd+=( -i "$key" )
fi
if [[ $# -lt 2 ]]; then
  echo "usage: laptop-rsync <src> <dest> [extra rsync args...]" >&2
  echo "examples:" >&2
  echo "  laptop-rsync ${host}:/Users/sebas/Downloads/file ./" >&2
  echo "  laptop-rsync ./file ${host}:/Users/sebas/Downloads/" >&2
  exit 2
fi
rsync -av --progress -e "${ssh_cmd[*]}" "$@"


mkdir -p /home/sebas/work/tasks/T-001-tcn-apk && laptop-rsync 'brag-pipe-fur-kneel.emperor-ratio.ts.net:/Users/sebas/Downloads/TCN-SD-05-BallBox-QR-AR-v5205 (1).apk' '/home/sebas/work/tasks/T-001-tcn-apk/'


receiving file list ... 1 file to consider
TCN-SD-05-BallBox-QR-AR-v5205 (1).apk

              0   0%    0.00kB/s    0:00:00
      4,128,768   6%    3.92MB/s    0:00:15
      8,716,288  12%    4.15MB/s    0:00:13
     12,550,144  18%    3.97MB/s    0:00:13
     16,941,056  25%    4.02MB/s    0:00:12
     20,676,608  30%    3.93MB/s    0:00:11
     23,756,800  35%    3.56MB/s    0:00:11
     28,213,248  41%    3.70MB/s    0:00:10
     35,160,064  52%    4.26MB/s    0:00:07
     40,632,320  60%    4.42MB/s    0:00:05
     43,974,656  65%    4.49MB/s    0:00:05
     46,956,544  69%    4.17MB/s    0:00:04
     50,593,792  75%    3.46MB/s    0:00:04
     57,376,768  85%    3.96MB/s    0:00:02
     65,732,608  97%    5.05MB/s    0:00:00
     67,289,627 100%    4.34MB/s    0:00:14 (xfr#1, to-chk=0/1)

sent 42 bytes  received 67,314,464 bytes  4,342,871.35 bytes/sec
total size is 67,289,627  speedup is 1.00


cd /home/sebas/work/tasks/T-001-tcn-apk && rm -rf decompiled && apktool d -f 'TCN-SD-05-BallBox-QR-AR-v5205 (1).apk' -o decompiled